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
whitequark
dbe48d3cad
Fix 3313e997
.
2018-01-17 11:31:32 +00:00
whitequark
3313e997df
test: fix test_worker to work when deprecation warnings are emitted.
2018-01-17 11:27:56 +00:00
dc593ec0f0
Merge branch 'rtio-sed' into sed-merge
2018-01-10 12:04:54 +08:00
whitequark
4d915ad15b
compiler: do not permit str(...). ( #878 )
2017-12-27 03:10:50 +00: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
whitequark
fd3a09dd4d
Fix ca254ec5
.
2017-10-03 05:49:50 +00:00
whitequark
e59b301a3b
compiler: disallow op= on mutable values ( fix #835 ).
...
In general, we can't reallocate a value in earlier stack frames,
or fixup references to it. This mainly impacts lists.
2017-10-02 01:55:26 +00:00
whitequark
f86744c65c
compiler: implement ~ operator ( fix #836 ).
2017-10-01 19:33:18 +00:00
whitequark
491c7ef898
compiler: correct semantics of floating point % operator ( fix #830 ).
2017-10-01 18:57:45 +00:00
whitequark
62f2693e36
compiler: correct semantics of integer % operator ( #830 ).
2017-10-01 18:32:57 +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
d19e70595a
test_rpctool: always create new asyncio event loop
2017-08-29 04:00:09 -04:00
mntng
3952954c12
add unitttest for artiq_rpctool
2017-08-28 10:39:32 -04: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
471605ec1e
pdq: move to https://github.com/m-labs/pdq
2017-07-19 17:35:28 +02:00
d96c2abe44
pdq: read/write_reg -> get/set_reg
...
see also m-labs/pdq#14
2017-07-17 21:45:46 +02:00
whitequark
ea7549cfa4
compiler: coerce while
condition to bool.
...
Fixes #768 .
2017-07-01 18:59:07 +00: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
566ff73dff
pdq: unify spi-PDQ and usb-PDQ protocols
2017-06-10 15:03:25 +02:00
whitequark
ad2ee714c2
compiler: do not permit iterating str values.
...
This currently breaks badly on UTF-8, and doesn't even return
a value of a correct type.
2017-06-09 07:29:31 +00:00
whitequark
5d841d08e9
compiler: do not permit mutation of bytes values ( #714 ).
2017-06-09 07:29:28 +00:00
whitequark
284382b1f5
compiler: add support for bytearray values in RPC ( #714 ).
2017-06-09 07:15:25 +00:00
whitequark
9ed4e9c1cd
compiler: add support for printing of bytearray values ( #714 ).
2017-06-09 07:15:25 +00:00
whitequark
e9564b15c8
compiler: add support for bytearray type ( #714 ).
2017-06-09 07:15:24 +00:00
whitequark
5b4fde30a8
compiler: unbreak subscripts for bytes values ( #714 ).
2017-06-09 07:10:48 +00:00
whitequark
66a683f583
compiler: add support for bytes values in RPC ( #714 ).
2017-06-09 07:10:48 +00:00
whitequark
778e7dc2ab
compiler: add support for concatenating bytes values ( #714 ).
2017-06-09 07:10:48 +00:00
whitequark
7b2da5294f
compiler: add support for printing of bytes values ( #714 ).
2017-06-09 07:10:48 +00:00
whitequark
dba4e1a28b
compiler: add support for bytes type and b"x" literals ( #714 ).
2017-06-09 07:10:48 +00:00
2458da1ade
pdq: get new host driver, adapt
2017-05-31 00:20:10 +02: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
e7382f4753
fix test_ctlmgr
2017-05-22 15:04:46 +08:00
0ae5e6d8b1
test_lda: more thorough and consistent test of simulation mode
2017-05-22 00:26:05 +08:00
3ed70afaa1
Use commandline prefix for controllers
...
This keeps them better organized and consistent with the artiq_* naming scheme.
Tab completion from aqctl_ also lists all the controllers installed on a machine.
2017-05-22 00:22:10 +08:00
8cf0628435
fix lit tests
2017-05-18 23:41:01 +08:00
cd757c0f16
generate device database from executable python file
2017-05-18 23:14:55 +08:00
whitequark
c5d7445973
compiler: reject reachable implicit return if not returning TNone.
...
Fixes #718 .
2017-04-21 18:11:14 +00: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
whitequark
3a1fc729cf
compiler: refactor type annotations recognizing in kernels.
...
The new implementation is much more generic, more robust,
and shares code with the same for syscalls as well as RPCs.
Fixes #713 .
2017-04-13 08:26:10 +00:00
whitequark
31048f4b6a
compiler: fix monomorphization of coerced integer literals.
...
Fixes #703 .
2017-04-12 04:11:47 +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
3a1f14c16c
compiler: fix overly strict constness analysis.
...
Before this commit, the following code would fail to compile...
obj.foo.bar = True
... if foo is marked kernel_invariant in obj, even if bar is not
marked as such in obj.foo.
2017-02-26 01:58:21 +00:00
whitequark
d04e611232
firmware, compiler: rename rpc functions to be more consistent.
2017-02-25 14:12:58 +00:00
whitequark
25c9b8827a
firmware: mark __artiq_{re,}raise as #[unwind].
...
This is required for correctness.
2017-02-05 09:04:22 +00:00
whitequark
f94028b8df
Fix c39394b
.
2017-02-04 16:23:32 +00:00
whitequark
c39394b4d5
firmware: port the exception handling routines to Rust.
2017-02-04 08:21:07 +00:00
whitequark
b9cbedceb1
firmware: migrate last vestiges of the old runtime build system.
2017-02-03 12:59:35 +00:00
whitequark
fd8b11532f
compiler, firmware: use Pascal strings everywhere.
...
This removes a large amount of very ugly code, and also simplifies
the compiler and runtime.
2017-02-03 11:53:27 +00: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
0df8a24135
Fix c2cf60e
.
2017-02-02 01:08:20 +00:00
whitequark
ab71c9a0ba
compiler: the len builtin is not polymorphic, coerce the result.
...
Fixes #659 .
2017-01-31 21:28:20 +00:00
whitequark
2f37b1d1c0
compiler: support methods defined on singleton instances.
...
Fixes #638 .
2017-01-30 10:10:21 +00:00
657afd770e
artiq/test/gateware -> artiq/gateware/test
...
This allows gateware simulations to be skipped or not considered for coverage when using test discovery.
2017-01-30 09:00:55 +08: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
043780d603
drtio: fix DRTIOSatellite invokation in test
2017-01-15 17:30:02 -06:00
6805feb494
drtio: report truncated packets
2017-01-12 23:44:45 -06:00
e624f45369
drtio: remove FIFO empty local detection optimization
...
It optimizes a marginal case, it is difficult to get right
(need to know the size of the FIFO for each channel), and
it adds complexity and potential bug sources.
2017-01-10 14:31:46 -06:00
8be9a827ba
test: move dsp tests into their own folder
2017-01-05 18:25:38 +01:00
f5f662200b
fir: streamline, optimize DSP extraction, left-align inputs
2016-12-20 21:39:51 +01:00
jboulder
baac555f96
add device for Korad KA3005P programmable DC power supply
2016-12-19 09:31:21 +01:00
15b48be6e4
test/sawg: adapt to new latency spec
2016-12-14 19:43:30 +01:00
7be27d7116
fir: add upsample transfer function test
2016-12-14 19:16:07 +01:00
3b5abae935
drtio: fix clock domain conflict
2016-12-13 14:19:49 +08:00
c63fa46430
Merge branch 'phaser2'
...
* phaser2: (157 commits)
sawg/hbf: tweak pipeline for timing
fir: register multiplier output
conda/phaser: build-depend on numpy
sawg: reduce coefficient width
sawg: fix latency
test/fir: needs mpl. don't run by default
test/sawg: patch spline
sawg: use ParallelHBFCascade to AA [WIP]
fir: add ParallelHBFCascade
fir: add ParallelFIR and test
gateware/dsp: add FIR and test
README_PHASER: update
sawg: documentation
sawg: extract spline
sawg: document
sawg: demo_2tone
sawg: round to int64
gateware/phaser -> gateware/ad9154_fmc_ebz
phaser: fix typo
sawg: merge set/set64
...
2016-12-12 17:31:39 +01:00
4b61020b27
drtio: reset more local state
2016-12-12 18:48:10 +08:00
f4ceace253
test/fir: needs mpl. don't run by default
2016-12-08 15:49:50 +01:00
efc95043c4
test/sawg: patch spline
2016-12-08 15:49:23 +01:00
a629eb1665
fir: add ParallelHBFCascade
2016-12-08 15:30:26 +01:00
d303225249
fir: add ParallelFIR and test
2016-12-08 15:21:04 +01:00
7e0f3edca5
gateware/dsp: add FIR and test
2016-12-07 19:14:23 +01:00
eb8d630148
rtio: test DMA RTIO wait state
2016-12-05 18:01:48 +08:00
75ea13748a
rtio: fix DMA data MSB and stop signaling, self-checking unittest
2016-12-05 18:01:48 +08:00
43a5455058
rtio: DMA unittest WIP
2016-12-05 18:01:48 +08:00
74fe5c3ef0
test: make gateware simulations discoverable
2016-12-05 18:01:48 +08:00
whitequark
b5a684830d
compiler: fix parsing of TList annotations ( fixes #632 ).
2016-12-05 03:18:56 +00:00
88ad054ab6
Merge branch 'drtio'
2016-12-03 23:25:17 +08:00
a324f4faa1
Merge remote-tracking branch 'm-labs/master' into phaser2
...
* m-labs/master:
compiler: monomorphize int64(round(x)) to not lose precision.
2016-12-02 18:11:29 +01:00
whitequark
68de724554
compiler: monomorphize int64(round(x)) to not lose precision.
...
This applies to any expression with an indeterminate integer type
cast to int64(), not just round().
2016-12-02 15:02:44 +00:00
6e9bc7c05d
sawg: merge set/set64
2016-12-01 16:45:54 +01:00
93a853a0e0
test/sawg: non trivial coarse_ref_period
2016-12-01 16:00:06 +01:00
01057dfb6d
test/sawg: check 48 bit frequency
2016-11-30 11:21:25 +01:00
ea04fb2704
test/sawg: skip 2tone demo test
2016-11-30 11:02:41 +01:00
ed6d1e73cc
sawg: cleanup
2016-11-30 10:52:35 +01:00
dbf72f5fde
sawg: extend unittests
2016-11-29 20:52:51 +01:00
4f813c4977
test/sawg: rtio_output_wide fixes
2016-11-29 18:11:38 +01:00
313aa32779
sawg: artiq-python list scoping
2016-11-29 17:20:02 +01:00
23fd225947
sawg: spline knot packing/conversion, unittest
2016-11-29 14:49:07 +01:00
b2450c7c56
drtio: test large data
2016-11-27 12:57:12 +08:00
d381dd5384
drtio: remove stale signal from test
2016-11-25 18:33:55 +08:00
8b736ddbc9
drtio: update test
2016-11-24 00:37:53 +08:00
6799bb097a
sawg: adapt to int32/int64 change
2016-11-22 11:57:34 +01:00
3459793586
Merge branch 'master' into drtio
2016-11-22 15:15:22 +08:00
4160490e0a
Merge branch 'phaser' into phaser2
...
* phaser: (23 commits)
RELEASE_NOTES: update
pipistrello: add some inputs
Remove last vestiges of nist_qc1.
Fully drop AD9858 and kc705-nist_qc1 support (closes #576 ).
coredevice.dds: reimplement fully in ARTIQ Python.
compiler: unbreak casts to int32/int64.
analyses.constness: fix false positive on x[...].
inferencer: significantly improve the op-assignment diagnostic.
Fix tests.
Move mu_to_seconds, seconds_to_mu to Core.
artiq_devtool: don't crash on invalid utf-8.
artiq_devtool: detect a race condition during connect.
llvm_ir_generator: handle no-op coercions.
conda: use development version of migen/misoc
Revert accidentally committed code.
Revert "gateware: increase RTIO FIFO sizes for NIST_CLOCK. Closes #623 "
analyses.invariant_detection: implement (#622 ).
Fix whitespace.
coredevice.dds: work around the round(numpy.float64()) snafu.
coredevice.dds: update from obsolete int(width=) syntax (fixes #621 ).
...
2016-11-21 17:29:46 +01:00
f7e8961ab0
Merge branch 'master' into phaser
...
* master: (23 commits)
RELEASE_NOTES: update
pipistrello: add some inputs
Remove last vestiges of nist_qc1.
Fully drop AD9858 and kc705-nist_qc1 support (closes #576 ).
coredevice.dds: reimplement fully in ARTIQ Python.
compiler: unbreak casts to int32/int64.
analyses.constness: fix false positive on x[...].
inferencer: significantly improve the op-assignment diagnostic.
Fix tests.
Move mu_to_seconds, seconds_to_mu to Core.
artiq_devtool: don't crash on invalid utf-8.
artiq_devtool: detect a race condition during connect.
llvm_ir_generator: handle no-op coercions.
conda: use development version of migen/misoc
Revert accidentally committed code.
Revert "gateware: increase RTIO FIFO sizes for NIST_CLOCK. Closes #623 "
analyses.invariant_detection: implement (#622 ).
Fix whitespace.
coredevice.dds: work around the round(numpy.float64()) snafu.
coredevice.dds: update from obsolete int(width=) syntax (fixes #621 ).
...
2016-11-21 17:29:39 +01:00
whitequark
55ea68da7f
compiler: unbreak casts to int32/int64.
2016-11-21 14:20:28 +00:00
whitequark
35f4449ef2
inferencer: significantly improve the op-assignment diagnostic.
...
Before this commit, it displayed incorrect output if an error
appeared on 2nd run and beyond, and displayed messages for trying
to do "num32 -= num64" that made very little sense.
2016-11-21 14:20:24 +00:00
b226dbd257
sawg: unittest data format
2016-11-21 12:35:57 +01: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
7af41bd29c
llvm_ir_generator: handle no-op coercions.
2016-11-21 02:25:34 +00:00
d678bb3fb6
phaser: update sawg tests
2016-11-18 15:23:56 +01:00
bb047aabe9
drtio: simpler link layer
2016-11-17 22:32:39 +08:00
424a1f8f4e
dsp: move test tools
2016-11-16 13:39:19 +01:00
09363e1da8
drtio: aux controller unittest
2016-11-16 19:45:28 +08:00