f77a75ab17
test_ad9910: robustify w.r.t. profile synchronization
...
Signed-off-by: Robert Jördens <rj@quartiq.de>
2018-11-14 08:42:27 +01:00
c3178c2cab
ad9910: profile support
...
Signed-off-by: Robert Jördens <rj@quartiq.de>
2018-11-14 08:30:28 +01:00
a52d1be140
urukul: expose PROFILE setting
...
* add documentation
* add unittest
Signed-off-by: Robert Jördens <rj@quartiq.de>
2018-11-14 07:43:56 +01:00
14b6b63916
ad9910: rewire io_delay tuning
...
This now reliably locates the SYNC_CLK-IO_UPDATE edge by doing two
scans at different delays between start and stop IO_UPDATE.
It also works well when one delay is very close to the edge.
And it correctly identifies which (start or stop) pulse hit or crossed
the SYNC_CLK edge.
for #1143
Signed-off-by: Robert Jördens <rj@quartiq.de>
2018-11-09 18:38:27 +00:00
c990b5e4f1
Merge remote-tracking branch 'origin/master' into new
2018-11-08 20:21:56 +08:00
a0cc7311ad
test: tighten test_pulse_rate
2018-11-08 20:17:55 +08:00
fcb611d1d2
test_ad9910: don't expect large SYNC_IN delay margins
...
sinara-hw/Urukul#16
Signed-off-by: Robert Jördens <rj@quartiq.de>
2018-11-07 18:18:35 +01:00
172633c7da
test_ad9910: default to a useful seed
...
Signed-off-by: Robert Jördens <rj@quartiq.de>
2018-11-06 17:35:57 +01:00
0b2661a34d
ad9910: robustify SYNC window finding
...
don't integrate too long, find the window tip fast and early
a couple 100 SYNC pulses are sufficient
Signed-off-by: Robert Jördens <rj@quartiq.de>
2018-11-06 12:41:21 +00:00
73b7124091
test_ad9910: print sync scan for debugging
...
Signed-off-by: Robert Jördens <rj@quartiq.de>
2018-11-06 10:04:21 +01:00
31f68ddf6c
Merge branch 'urukul-sync'
...
* urukul-sync: (29 commits)
urukul: flake8 [nfc]
ad9910: flake8 [nfc]
urukul/ad9910 test: remove unused import
test_urukul: relax speed
urukul,ad9910: print speed metrics
kasli: add PTB2 (external clock and SYNC)
kasli: add sync to LUH, HUB, Opticlock
kasli_tester: urukul0 mmcx clock defunct
test_ad9910: relax ifc mode read
tests: add Urukul-AD9910 HITL unittests including SYNC
ad9910: add init bit explanation
test: add Urukul CPLD HITL tests
ad9910: fiducial timestamp for tracking phase mode
ad9910: add phase modes
ad9910: fix pll timeout loop
tester: add urukul sync
ptb: back out urukul-sync
ad9910: add IO_UPDATE alignment and tuning
urukul: set up sync_in generator
ad9910: add io_update alignment measurement
...
close #1143
2018-11-05 19:54:30 +01:00
6d525e2f9a
urukul/ad9910 test: remove unused import
...
Signed-off-by: Robert Jördens <rj@quartiq.de>
2018-11-05 19:40:57 +01:00
36c5a7cd04
test_urukul: relax speed
...
works fine at < 3µs here but needs <5 µs on buildbot-kasli-tester
Signed-off-by: Robert Jördens <rj@quartiq.de>
2018-11-05 19:37:20 +01:00
89fecfab50
urukul,ad9910: print speed metrics
...
Signed-off-by: Robert Jördens <rj@quartiq.de>
2018-11-05 19:37:18 +01:00
89fadab63d
test_ad9910: relax ifc mode read
...
Signed-off-by: Robert Jördens <rj@quartiq.de>
2018-11-05 19:37:08 +01:00
f522e211ba
tests: add Urukul-AD9910 HITL unittests including SYNC
...
for #1143
Signed-off-by: Robert Jördens <rj@quartiq.de>
2018-11-05 19:37:06 +01:00
bc04da15c5
test: add Urukul CPLD HITL tests
...
for #1143
Signed-off-by: Robert Jördens <rj@quartiq.de>
2018-11-05 19:37:00 +01:00
David Nadlinger
cbdef0225c
ttl: Add target RTIO time argument to timestamp/count functions
...
Software-based tracking of timestamps is problematic (e.g. when
using DMA, see GitHub #1113 ).
2018-11-03 20:33:19 +08:00
David Nadlinger
11e8c9d5f7
coredevice: Add Core.wait_until_mu()
...
(This supersedes TTLOut.sync(), see see GitHub #1113.)
2018-11-03 20:33:19 +08:00
ba6094c3e5
test: relax network transfer rates
...
Due to lower Kasli system clock frequency.
2018-08-27 16:47:48 +08:00
d707d2f4fe
test: relax TTL timing requirements to support DIO EEM
2018-08-17 13:35:16 +08:00
whitequark
e285fe0d56
test: tighten required TransferTest timings.
...
smoltcp performs significantly better with LTO.
2018-08-12 20:17:37 +00:00
whitequark
38d60100ff
firmware: optimize dma_record_output.
...
This removes a number of bounds checks and adds a fast path for
outputting exactly one word to DMA, which is the most common
operation.
2018-08-12 19:17:45 +00:00
whitequark
2648b1b7a1
firmware: migrate to Rust 1.28.0.
...
This also updates / is a prerequisite for updating smoltcp.
Rationale for changes made:
* compiler_builtins is now shipped in the rust prefix.
* rustc's libpanic_unwind no longer works for us because it
has a hard dependency on Box (and it's a horrible hack);
fortunately, we only ever needed a personality function
from it.
* panic and oom handlers are now set in a completely different
way.
* allocators are quite different (and finally stable).
* NLL caused internal compiler errors in runtime, so code using
NLL was rewritten to not rely on it and it was turned off.
2018-08-12 19:17:45 +00:00
052e400f12
test: skip test_dma_playback_time on Kasli ( #946 )
2018-08-09 18:08:21 +08:00
bbc98410e4
test: dds → ad9914dds
...
Prevent confusion with Urukul.
2018-08-09 16:55:09 +08:00
bf78e0c7d2
test: fix handling of missing devices
2018-08-09 16:51:12 +08:00
whitequark
93af5d2a03
compiler: handle async RPC as last statement in try block.
...
Fixes #1107 .
2018-08-07 07:06:53 +00:00
whitequark
7bd7b6592a
rpc_proto: serialize keywords correctly.
...
Fixes #1109 .
2018-08-07 06:47:09 +00:00
04cbc3237b
test_moninj: test injection monitoring
2018-08-02 19:34:14 +08:00
David Nadlinger
768b970deb
Fixup 4359a437
(tuples of lists), add regression tests
2018-07-10 01:18:51 +01:00
David Nadlinger
edc314524c
test_embedding: Remove unused reference to led
device
2018-07-10 01:11:47 +01:00
d2c8e62cb7
test_rtio: relax ClockGeneratorLoopback performance requirements
2018-07-09 18:07:25 +08:00
423929a125
test: relax min transfer rates from 2MB/s to 1.9MB/s
2018-07-09 18:00:24 +08:00
whitequark
9260cdb2e8
compiler: support conversion of list to bytearray and bytes.
...
Fixes #1077 .
2018-06-21 00:40:45 +00:00
whitequark
38dac16041
compiler: don't crash when quoting builtin functions.
...
Fixes #1051 .
2018-06-05 23:27:23 +00:00
3027951dd8
integrate new AD9914 driver
...
moninj, analyzer, docs, examples, tests.
2018-05-13 23:29:35 +08:00
whitequark
873324d52b
firmware: don't truncate queued RPCs ( fixes #985 ).
2018-04-21 19:39:46 +00:00
0d8145084d
test_spi: move to new spi2 core
2018-02-21 19:41:05 +01:00
67625fe912
test: check kernel overhead credibility
2018-01-28 01:02:03 +08:00
e8ed3475ea
test: add kernel overhead test ( #407 )
2018-01-28 01:00:59 +08:00
77f90cf93b
test: relax RTIO counter test and print result
2018-01-24 10:07:22 +08:00
ed0fbd5662
test: add test for RTIO counter ( #883 )
2018-01-24 00:28:39 +08:00
dc593ec0f0
Merge branch 'rtio-sed' into sed-merge
2018-01-10 12:04:54 +08:00
a44f8282dc
test_performance: relax network speed to 2 MB/s
...
At QUARTIQ I am getting 2.4/2.3 MB/s and with single switch at M-Labs we
apparently regularly met 2.2/2.2 MB/s. But with the current multiple
switches and one of them being a problematic switch that triggered #837
it looks like it is a tad slower.
http://buildbot.m-labs.hk/builders/artiq/builds/1818/steps/python_coverage_1/logs/stdio
2017-12-06 17:21:41 +01:00
4387b0be1e
clean up rtio_log
2017-11-03 00:52:53 +08:00
f3f83174b1
test: check that DMA can underflow
2017-10-31 00:10:13 +08:00
415fa00846
test: relax rtio test_loopback
2017-10-30 23:07:54 +08:00
20a5f095f8
test: use longer DMA sequence when playing it back repeatedly
...
The CPU has to keep up.
2017-10-30 23:06:38 +08:00
9bf189ca10
test: relax timing requirements when not using DMA handle
...
core_dma.playback() without handle incurs a round-trip with the comms
CPU and should not be used in critical real-time sections.
Closes #834 .
2017-10-30 22:57:12 +08:00
whitequark
7dfe7d8c93
test: verify no network performance regression from current 2.2 MB/s.
2017-10-30 04:25:58 +00:00
5437f0e3e3
rtio: make sequence errors consistently asychronous
2017-09-29 14:40:06 +08:00
4e31e9a9ac
test: relax test_rtio.test_loopback
...
With SED there are 8 additional FIFO output stages.
2017-09-26 17:13:02 +08:00
53860868f4
test/rtio: wait for counter >= now before checking for async errors
2017-09-16 17:52:39 +08:00
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