770ce2658f
test: adapt SequenceError test to SED
2017-09-16 16:28:57 +08:00
mntng
ea135f9d06
add unittest for artiq_compile and ELF artiq_run ( #455 )
2017-08-15 08:13:11 -06:00
cf1de4b26a
test_spi: convert to Unix EOL
2017-08-04 11:48:20 +08:00
mntng
692dc0803b
test: add test for SPI core using SD card
2017-07-28 19:10:44 +08:00
whitequark
69fa9b38e0
test: actually run test_embedding.AsyncTest.
2017-06-25 05:28:32 +00:00
whitequark
31b52ff1b3
coredevice: do not desync kernel TCP stream on RPCReturnValueError.
...
And propagate the error upwards instead of trying to squeeze it
through the core device in futility.
2017-06-25 04:47:32 +00:00
6262969d46
test: relax test_dma_record_time
2017-06-21 18:33:58 +08:00
09d198c7a1
test: add test for exception on non-existent I2C bus
2017-06-19 15:32:09 +08:00
whitequark
284382b1f5
compiler: add support for bytearray values in RPC ( #714 ).
2017-06-09 07:15:25 +00:00
whitequark
66a683f583
compiler: add support for bytes values in RPC ( #714 ).
2017-06-09 07:10:48 +00:00
5fc953119e
fix usage of CommMgmt
2017-05-22 17:32:11 +08:00
5ccca74a3f
fold comm device into core device
2017-05-22 15:45:45 +08:00
whitequark
ed2b10c5aa
compiler: in codegen for delay(), round fp instead of truncating.
...
Consider delay(8*us). It results in the following computation...
>>> 8*1e-06/1e-09
7999.999999999999
with the result promptly getting truncated to 7999.
Fixes #706 .
2017-04-21 17:36:44 +00:00
whitequark
fd994ceef3
DMA: various fixes to bring tests in line.
2017-04-20 20:05:03 +00:00
e8f7f8ef9c
DMA: speed up playback
...
Time reduced from 1.53µs to 1.37µs.
2017-04-19 10:59:12 +08:00
whitequark
41c4de4556
DMA: add API for a much faster replay using handles.
2017-04-18 08:20:12 +00:00
whitequark
9dfe9c1248
DMA: improve recording performance.
...
This commit moves DMA serialization code to the kernel CPU
(to cope with the existence of rtio_output_wide) and batches
the resulting sequences. This results in less data being transferred
between kernel and comms CPUs (24 octets with one pointer before,
18 octets with no pointers now, for the common case of rtio_output),
but most importantly reduces cache flushes, which now happen
once per 64k octets.
On average, it now takes about 15us to record a single RTIO event
in a DMA trace.
Fixes #712 .
2017-04-15 07:29:52 +00:00
f314f8b8f5
relax test_rpc_timing
2017-04-08 22:45:08 +08:00
whitequark
14ae1cc100
runtime: advance now on DMA replay.
...
Fixes #700 .
2017-04-05 18:34:36 +00:00
whitequark
56918fb375
test: re-enable DMA tests as the feature is now stable.
2017-04-05 16:43:22 +00:00
whitequark
8b98e1ea6d
test: relax test_rpc_timing: rpc_time_mean <2ms → <3ms.
2017-03-31 20:41:47 +00:00
whitequark
245e186347
Commit missing parts of 948ed6fb
.
2017-03-29 18:34:08 +00:00
2e2d0be201
skip crashing DMA tests on buildbot
2017-03-29 09:36:51 +08:00
whitequark
7eb368fd5d
test: add DMA test that checks the analyzer trace.
2017-03-28 14:22:20 +00:00
6caab4d10b
test: verify that RTIO collisions appear in log
2017-03-27 18:08:03 +08:00
70343b244d
test: add more RTIO slack in test_clock_generator_loopback
2017-03-27 17:26:23 +08:00
58ee09dbdc
test: re-enable test_clock_generator_loopback
...
It passes now for some reason.
2017-03-27 17:26:02 +08:00
b74d6fb9ba
make collision and busy asynchronous errors, and simplify CPU/gateware handshake for output errors and reads
2017-03-27 16:32:23 +08:00
1ee3f96482
test: self.break_realtime → self.core.break_realtime
2017-03-27 16:31:11 +08:00
whitequark
ac9e8b8568
test: avoid underflow in DMA replay test.
2017-03-17 12:09:02 +00:00
whitequark
dbea679e96
Revert "test: relax test_rpc_timing on Windows."
...
This reverts commit e9cf451c0b
.
2017-03-17 11:34:45 +00:00
whitequark
e9cf451c0b
test: relax test_rpc_timing on Windows.
2017-03-17 11:20:16 +00:00
whitequark
7dc7dcda2c
test: relax test_pulse_rate_dds to only catch catastrophic slowdown.
2017-03-17 11:17:47 +00:00
f121ca20fe
test: relax test_pulse_rate_dds
2017-03-03 18:10:27 +08:00
whitequark
a4ece19614
Implement DMA playback.
2017-02-28 21:28:40 +00:00
9cfa3e704b
fix test_analyzer
2017-02-27 19:19:46 +08:00
3b386aa590
fix test_moninj import
2017-02-27 18:44:32 +08:00
7d6ebabc1b
reorganize core device communication code
2017-02-27 18:37:30 +08:00
d16073fcaa
test: add moninj unittest
2017-02-27 15:56:58 +08:00
whitequark
9c93c760fc
firmware: do not use PIC in Rust code.
...
This fixes test_pulse_rate and test_pulse_rate_dds by making
rtio_output slightly faster.
2017-02-02 12:22:55 +00:00
whitequark
609fd3d902
test: skip test_clock_generator_loopback as well.
...
Both tests pass locally, which means there's some conda screwup
that prevents them from working on CI.
2017-01-27 11:47:26 +00:00
whitequark
c529cefc89
conda: bump llvmlite-artiq dependency.
2017-01-27 11:14:53 +00:00
whitequark
477664f931
test: temporarily skip pulse_rate_dds.
2017-01-26 20:53:30 +00:00
whitequark
0b67396630
test: convert test_pulse_rate_dds to use mu.
...
Before this commit, this test was actually measuring soft-FP
performance.
2017-01-25 11:26:30 +00:00
whitequark
b5a684830d
compiler: fix parsing of TList annotations ( fixes #632 ).
2016-12-05 03:18:56 +00:00
whitequark
3485c83429
Fix tests.
2016-11-21 06:40:47 +00:00
whitequark
009d396740
Move mu_to_seconds, seconds_to_mu to Core.
2016-11-21 05:37:30 +00:00
whitequark
feed91d8b2
runtime: buffer RPC send packets.
...
This brings mean RPC time from ~45ms to ~2ms.
The cause of the slowness without buffering is, primarily, that lwip
is severely pessimized by small writes, whether with Nagle on or off.
(In fact, disabling Nagle makes it function *better* on many small
writes, which begs the question of what's the point of having Nagle
there in the first place.) In practical terms, the slowness appears
only when writing a 4-byte buffer (the synchronization segment);
writing buffers of other sizes does not trigger the problem.
This all is extremely confusing and the fix is partly palliative,
but since it seems to work reliably and we're migrating off lwip
I think it is unwise to spend any more time debugging this.
2016-11-12 23:06:33 +00:00
whitequark
6fcd57a41a
runtime: fix remaining async RPC bugs.
2016-11-01 10:33:57 +00:00
whitequark
6b2789e3db
test: add more RPC tests.
2016-10-06 12:54:08 +00:00
1cb8f642b4
test: level-based TTL APIs ( #218 )
2016-09-07 17:37:49 +08:00
whitequark
5a2306ae5a
compiler.embedding: implement type annotations for function arguments.
...
Fixes #318 .
2016-08-08 03:28:25 +00:00
whitequark
b6c12f2f56
test: relax RPCTiming rpc_time_stddev from 1ms to 2ms.
...
Even when given exclusive access to our buildserver it still gives
false positives with 1ms.
2016-07-14 10:47:51 +00:00
whitequark
653eeb476f
runtime: fix serialization of object lists.
...
Fixes #500 .
2016-07-07 12:40:50 +00:00
whitequark
d90fd7dc00
compiler: implement numpy.full ( #424 ).
2016-07-07 06:33:38 +00:00
whitequark
7a671fb2fd
embedding: treat numpy.{int32,int64,array} specially ( #424 ).
...
Also, remove them from prelude to not pollute the namespace.
2016-07-07 06:33:38 +00:00
whitequark
933ea53c77
compiler: add basic numpy array support ( #424 ).
2016-07-06 09:51:57 +00:00
whitequark
906db876a6
language: replace coredevice int with numpy.{int32,int64}.
...
Fixes #453 .
2016-07-06 04:44:21 +00:00
43681b37ec
test/rtio: relax constraints
2016-06-29 11:38:36 +08:00
e51928ee97
test/rtio: adapt to new handover behavior
2016-06-29 10:38:37 +08:00
c8dc6ca07c
inter-experiment smooth handover
2016-06-29 02:37:50 +08:00
917cc056f4
test: add test for seamless handover on exception termination
2016-06-19 19:15:10 +08:00
whitequark
e47538ca33
analyzer: explicitly delimit messages (with \x1D).
...
Fixes #461 .
2016-06-07 11:26:49 +00:00
136dc7039e
language/environment: update kernel_invariants in setattr_argument and setattr_device
2016-05-03 16:27:42 +08:00
whitequark
a88425b66b
compiler: allow RPCing builtin functions.
...
Fixes #366 .
2016-04-26 01:31:17 +00:00
whitequark
1464bae6b7
compiler: don't typecheck RPCs except for return type.
...
Fixes #260 .
2016-04-26 01:12:36 +00:00
caf774579a
environment: refactor
2016-04-16 19:31:07 +08:00
e1a229028d
test/analyzer: clear analyzer buffer after IO init
2016-04-15 01:18:36 +08:00
511913230f
test_analyzer: loop_out.off()
2016-04-14 22:57:16 +08:00
d42ef46471
test: set inputs to input(), should close #383
2016-04-12 18:17:53 +08:00
whitequark
12d6f1d963
Commit missing parts of bb064c67a
.
2016-04-06 23:46:19 +00:00
whitequark
9cc9e8b276
embedding: s/kernel_constant_attributes/kernel_invariants/g
...
Requested in #359 .
2016-04-06 22:38:31 +00:00
73795ff788
test_rtio: integer division
2016-04-06 02:26:20 +08:00
4bc5eaf9e8
test_rtio: scale speed test results to 'event' intervals
2016-04-06 00:55:13 +08:00
76dcccb33b
test_rtio: comments and correction
...
* add comments what is actually being measured in the two rate tests
* remove spurious factor of two
2016-04-05 20:51:03 +08:00
whitequark
14caa2713c
test_pulse_rate_dds: adjust bounds.
2016-04-05 01:52:34 +00:00
whitequark
10108e6d64
compiler: mark loaded pointers as !dereferenceable.
...
Also, lower the bound for test_pulse_rate_dds, since we generate
better code for it now.
2016-03-31 12:04:38 +00:00
0173031487
test/PulseRateDDS: run more iterations
2016-03-31 16:04:55 +08:00
whitequark
42609d057e
test_pulse_rate_dds: tighten upper bound to 400us.
2016-03-27 14:27:32 +00:00
whitequark
2a210d74fb
test_pulse_rate: tighten upper bound to 1500ns.
2016-03-26 22:45:24 +00:00
1c9b8a1d52
test/coredevice/portability/pulses: compute time differences in MU
2016-03-20 15:29:31 +08:00
ff697a47ce
test/coredevice/cache: fix exception import
2016-03-19 18:00:10 +08:00
whitequark
891e3cf1fe
Commit missing parts of 501de306
.
2016-03-18 22:48:26 +00:00
whitequark
dbc0a89903
dds.c: turn off batch mode before an underflow can be raised.
...
Fixes #334 .
2016-03-18 05:00:05 +00:00
9ffaf82877
test/analyzer: check that last message is StoppedMessage
2016-03-15 21:44:56 +08:00
f68c24094f
test_spi: drain errors and be more strict on where we expect errors
2016-03-10 12:25:10 +01:00
d0cf589229
test/rtio/Loopback: ensure loop_out is low before starting test
2016-03-10 13:24:00 +08:00
f3a2b3a67e
test/rtio: raise exception when pulse is not received
2016-03-10 12:16:18 +08:00
f4f95d330b
Merge branch 'master' of github.com:m-labs/artiq
2016-03-10 11:15:30 +08:00
1739e0f2f8
coredevice: put cache into separate file/device
2016-03-10 10:46:19 +08:00
10a09122ea
test_spi: break_realtime
2016-03-09 18:23:27 +01:00
8f6653ef72
test_spi: simplify test, add collision vs busy test
2016-03-09 17:58:42 +01:00
58e0e670fc
tests: test spi business
2016-03-09 15:40:26 +01:00
2953b069dc
rtio: when rtlink addresses are different, issue collision not replace ( fixes #320 )
2016-03-08 15:58:25 +08:00
71105fd0d7
rtio: collision_error -> collision
2016-03-08 15:38:35 +08:00
59d7f5f1e3
test/coredevice/time_keeps_running: start new session to prevent now_mu save/restore
2016-03-08 14:04:51 +08:00
whitequark
9ffa8cbb11
test_loopback: bump RTT limit to 60ns.
...
Turns out a short jumper wire on a backplane leads to RTT of 50ns
exactly.
2016-03-07 20:27:22 +00:00
683716017b
test: I2C/PCA9548 unittest
2016-03-05 19:01:35 +08:00
c7d48a1765
coredevice/TTLOut: add dummy output function
2016-03-01 19:03:10 +08:00
a5bf502917
test/LoopbackCount: request correct devices
2016-02-26 14:29:51 +08:00