Commit Graph

438 Commits

Author SHA1 Message Date
Sebastien Bourdeauducq 5ccca74a3f fold comm device into core device 2017-05-22 15:45:45 +08:00
Sebastien Bourdeauducq e7382f4753 fix test_ctlmgr 2017-05-22 15:04:46 +08:00
Sebastien Bourdeauducq 0ae5e6d8b1 test_lda: more thorough and consistent test of simulation mode 2017-05-22 00:26:05 +08:00
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 8cf0628435 fix lit tests 2017-05-18 23:41:01 +08:00
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 6caab4d10b test: verify that RTIO collisions appear in log 2017-03-27 18:08:03 +08:00
Sebastien Bourdeauducq 70343b244d test: add more RTIO slack in test_clock_generator_loopback 2017-03-27 17:26:23 +08:00
Sebastien Bourdeauducq 58ee09dbdc test: re-enable test_clock_generator_loopback
It passes now for some reason.
2017-03-27 17:26:02 +08:00
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 9cfa3e704b fix test_analyzer 2017-02-27 19:19:46 +08:00
Sebastien Bourdeauducq 3b386aa590 fix test_moninj import 2017-02-27 18:44:32 +08:00
Sebastien Bourdeauducq 7d6ebabc1b reorganize core device communication code 2017-02-27 18:37:30 +08:00
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 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