Commit Graph

518 Commits

Author SHA1 Message Date
Sebastien Bourdeauducq 139072d402 Graceful experiment termination. Closes #76 2015-10-06 13:50:00 +08:00
Sebastien Bourdeauducq d94f0211a6 test/scheduler: cleanup 2015-10-06 13:35:30 +08:00
Sebastien Bourdeauducq 50a5a3baf0 environment: attr_* -> setattr_* 2015-10-04 00:18:21 +08:00
Sebastien Bourdeauducq 090a7e5871 test/sync_struct: cleanup 2015-10-03 19:40:11 +08:00
Sebastien Bourdeauducq f552d62b69 use Python 3.5 coroutines 2015-10-03 19:28:57 +08:00
Sebastien Bourdeauducq b117b9320d asyncio.async -> asyncio.ensure_future 2015-10-03 14:37:02 +08:00
whitequark 3e1348a084 Merge branch 'master' of github.com:m-labs/artiq into new-py2llvm 2015-09-27 18:22:28 +03:00
Robert Jördens 01416bb0be copyright: claim contributions
These are contributions of >= 30% or >= 20 lines (half-automated).

I hereby resubmit all my previous contributions to the ARTIQ project
under the following terms:

    This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

Closes #130

Signed-off-by: Robert Jordens <jordens@gmail.com>
2015-09-06 16:08:57 -06:00
whitequark 3af54f5ffc test.coredevice.rtio: simplify. 2015-09-01 08:38:53 -06:00
whitequark 995245b786 compiler.embedding: default RPC return annotation is -> TNone. 2015-09-01 08:38:38 -06:00
whitequark c9d8fd837e test.coredevice.rtio: update for new compiler. 2015-08-31 23:34:28 -06:00
whitequark 2df8b946f9 Factor out the code to pretty-print diagnostics. 2015-08-31 22:52:39 -06:00
whitequark cbd903a9dc compiler.embedding: add tests for quote serialization. 2015-08-28 05:24:57 -05:00
whitequark 72823cf521 test.{coredevice,coredevice_vs_host} → test.coredevice.{rtio,portability}. 2015-08-28 03:53:43 -05:00
Yann Sionneau 4a16ea111c worker, scheduler: fix unit tests on Windows 2015-08-27 18:23:26 +02:00
Yann Sionneau 977df7013d py2llvm: skip test_is_prime unit test on Windows
see http://irclog.whitequark.org/m-labs/2015-08-26#13821771;
2015-08-26 14:50:52 +02:00
Yann Sionneau 92390cfbe6 py2llvm: allow the unit test to run on Windows 2015-08-26 11:12:48 +02:00
Sebastien Bourdeauducq 278adf193d test/pc_rpc: use builtin_terminate 2015-08-17 23:17:13 +08:00
whitequark fd3c8a2830 language.core: remove {int,round}64, implement int with device semantics. 2015-08-11 12:57:17 +03:00
whitequark 200330a808 Remove parts of py2llvm that are implemented in the new compiler. 2015-08-10 20:36:39 +03:00
Sebastien Bourdeauducq 06badd1dc1 scheduler: refactor, fix pipeline hazards 2015-08-10 21:58:11 +08:00
Sebastien Bourdeauducq 52de6311a4 test/scheduler: add repo_msg 2015-08-10 20:07:24 +08:00
Sebastien Bourdeauducq 7ed8fe57fa Git support 2015-08-07 15:51:56 +08:00
whitequark 4a8e397a77 Fold llvmlite patches into m-labs/llvmlite repository. 2015-08-05 03:49:01 +03:00
Sebastien Bourdeauducq 1d34c06d79 rtio: detect collision errors 2015-07-29 19:43:35 +08:00
Sebastien Bourdeauducq b548d50a2f test/coredevice: use ttl_out for PulseRate (loop is less available) 2015-07-29 19:42:43 +08:00
whitequark fd46d8b11e Merge branch 'master' into new-py2llvm 2015-07-29 12:52:19 +03:00
Robert Jördens 2640a57af3 test/coredevice: let output() settle longer 2015-07-28 16:20:05 -06:00
whitequark 7903889082 Merge branch 'master' into new-py2llvm 2015-07-27 03:29:00 +03:00
Sebastien Bourdeauducq 05dd11a60d protocols/pyon: support numpy scalars (closes #53) 2015-07-25 12:28:56 +08:00
Sebastien Bourdeauducq 8bc1dd9f9c test/serialization: remove redundant test since Quantity was removed 2015-07-25 12:23:43 +08:00
whitequark c581af29d7 Merge remote-tracking branch 'origin/master' into new-py2llvm 2015-07-23 21:36:17 +03:00
Sebastien Bourdeauducq 84de2fb28b expid: experiment -> class_name 2015-07-15 11:08:12 +02:00
Sebastien Bourdeauducq 255aba9247 test/worker: remove stale handler 2015-07-15 11:07:48 +02:00
Yann Sionneau 90ba9f7bbf llvmlite: rename our package to be llvmlite_or1k to avoid collision with llvmlite package needed for numba 2015-07-14 01:01:56 +02:00
Sebastien Bourdeauducq 56fc7a484c TTLInOut: timestamp -> timestamp_mu 2015-07-13 23:21:29 +02:00
Sebastien Bourdeauducq 820ff2da2c test/coredevice: WA for lack of constant string support in compiler (see issue #68) 2015-07-13 22:22:26 +02:00
Sebastien Bourdeauducq 32d141f5ac refactor ddb/pdb/rdb 2015-07-13 22:21:32 +02:00
Sebastien Bourdeauducq 8b02b58a77 sync_struct/Notifier: do not pass root param to publish 2015-07-13 17:12:59 +02:00
Robert Jördens 80eea4ce6c test: relax test_time_keeps_running
on pipistrello this takes about 200-250ms
2015-07-09 16:30:37 -06:00
Sebastien Bourdeauducq 96a5d73c81 worker: split build stage from prepare 2015-07-09 13:18:12 +02:00
Sebastien Bourdeauducq f3e5197c14 test/coredevice/test_time_keeps_running: remove unnecessary close_devices, upper bound 2015-07-07 15:48:47 +02:00
Sebastien Bourdeauducq 8a33d8c868 never stop RTIO counter 2015-07-07 15:29:38 +02:00
Robert Jördens a3fe538067 test: fix get_from_ddb 2015-07-04 22:36:23 -06:00
Robert Jördens 409c66e966 test: convert lda/tcube/409b to hardware_testbench 2015-07-04 21:44:28 -06:00
Robert Jördens 6faa8ecd51 test: split full_stack into coredevice and coredevice_vs_host
also adapt it to hardware_testbench
closes: #62
2015-07-04 20:35:02 -06:00
Robert Jördens 4cbf280f1a test: return experiment not, rdb 2015-07-04 20:05:11 -06:00
Sebastien Bourdeauducq 753d61b38f complete support for TTL clock generator 2015-07-04 18:36:01 +02:00
Sebastien Bourdeauducq a615a3830a test/coredevice: minor fixes 2015-07-04 18:35:11 +02:00
Sebastien Bourdeauducq 74f07092c7 test/coredevice: fix timestamp conflict 2015-07-02 10:26:00 +02:00
Sebastien Bourdeauducq 771ad6cb26 test/coredevice: adapt to MU API 2015-07-01 22:34:49 +02:00
Sebastien Bourdeauducq 5ace0f8e7a Merge branch 'master' of https://github.com/m-labs/artiq 2015-07-01 22:23:10 +02:00
Sebastien Bourdeauducq 9d6287a6a3 expose machine units to user 2015-07-01 22:22:53 +02:00
Robert Jördens f7427dda39 test: make benchmarks unittest 2015-06-28 20:56:12 -06:00
Robert Jördens 593dafc118 test: hardware testbench 2015-06-28 20:55:59 -06:00
Sebastien Bourdeauducq 85c5b157a0 test/full_stack: tolerate FP rounding errors 2015-06-27 23:52:20 +02:00
Sebastien Bourdeauducq c71fe29792 simplify unit system and use floats by default 2015-06-26 16:34:37 +02:00
Robert Jördens 07a58dc0da wavesynth: cleanup, refactor 2015-06-20 23:29:26 -06:00
Joe Britton 83fd5fdf16 novatech409b: add unit test 2015-06-19 15:59:23 -06:00
Sebastien Bourdeauducq 76e034c913 protocols: add fire-and-forget RPC 2015-06-14 22:03:34 -06:00
Yann Sionneau 92999d0cc0 sync_struct: test append, insert, delitem and pop actions 2015-06-10 00:52:46 +02:00
Sebastien Bourdeauducq 26e737f61f style 2015-06-06 00:55:36 +08:00
Sebastien Bourdeauducq 37c7ea31c3 gui: TTL override support 2015-06-06 00:03:30 +08:00
Yann Sionneau 50a6da994e worker test: do not close the event loop twice 2015-06-04 13:44:07 +02:00
Yann Sionneau 60bdf74137 tests: use try/finally to close event loop + wait for process to die after killing it 2015-06-04 13:40:13 +02:00
Sebastien Bourdeauducq d73006652b test/worker: always close even if prepare() raises 2015-06-04 11:22:03 +08:00
Sebastien Bourdeauducq 82a2beaa32 style fixes 2015-06-04 10:42:37 +08:00
Yann Sionneau b27254ba80 sync_struct test: test more cases, pep8 fix, remove print 2015-06-03 15:54:50 +02:00
Yann Sionneau b8bdce5bd1 sync_struct test: don't poll, use Event instead 2015-06-03 15:40:58 +02:00
Yann Sionneau 21d88d8345 tests: use a different event loop for each test 2015-06-03 15:23:34 +02:00
Yann Sionneau e5f16b29fd sync_struct: fix test case name 2015-06-03 10:46:09 +02:00
Yann Sionneau c7953da7e1 test: add unittest for sync_struct 2015-06-03 10:43:01 +02:00
Sebastien Bourdeauducq 048782e26c test/scheduler: test flush 2015-05-29 20:16:47 +08:00
Sebastien Bourdeauducq 6ff2e1a083 test/scheduler: verify that a high priority timed experiment in the future is not run 2015-05-29 19:43:39 +08:00
Sebastien Bourdeauducq 737f6d4485 scheduler: support pipeline flush 2015-05-28 17:20:58 +08:00
whitequark c75fd6bc88 Replace builtin ast with pythonparser.ast. 2015-05-27 17:04:18 +03:00
Sebastien Bourdeauducq 0b05b54a87 test: add scheduler unittest 2015-05-27 19:25:50 +08:00
Sebastien Bourdeauducq f30d671359 test/worker: adapt to priority API 2015-05-24 23:38:05 +08:00
Sebastien Bourdeauducq 785623be26 test/worker: adapt to new scheduler API 2015-05-21 16:41:45 +08:00
Sebastien Bourdeauducq a62ae1d8d7 test/transforms: adapt to 'now' save on core device 2015-05-12 23:06:33 +08:00
Sebastien Bourdeauducq 65b4b7bb12 coredevice: rename rtio to ttl, integrated in+out driver, loopback on the same pin in tests 2015-05-02 10:35:21 +08:00
Sebastien Bourdeauducq 1684586ae8 test: add unittest for core device watchdog 2015-05-01 14:02:31 +08:00
Sebastien Bourdeauducq 283695e8aa language/core: integrate watchdogs 2015-04-28 23:23:59 +08:00
Sebastien Bourdeauducq dc14728264 test/full_stack: use Ethernet 2015-04-28 01:33:37 +08:00
Sebastien Bourdeauducq e27844e0f7 test/pxi6733: remove useless checks 2015-04-21 16:10:46 +08:00
Yann Sionneau 69388ccc1a pxi6733: add driver and controller 2015-04-21 16:09:55 +08:00
Sebastien Bourdeauducq c98e08fe36 fix transforms unittest 2015-04-19 11:40:49 +08:00
Robert Jördens 60baed68b4 wavesynth: get coefficients.py into useable state
SplineSource() supports spline interpolating multi-channel tabular data,
cropping it and generating wavesynth compatible segment data from it.

ComposingSplineSource() needs some verification still.
2015-04-18 01:23:15 -06:00
Robert Jördens 6a0e97f161 pdq2: refactor program_frame(), cleanup test, stall correctly
Once the Sequencer ack's a line, the Parser starts preparing the
next one. This includes jumping through the frame table if necessary.
To stall the Parser while the Sequencer executes the last line of a
frame and to ensure that the frame select lines can be set up and their
sampling is synchronized to a trigger, we add a triggered stall line
at the end of the frame.

When that line is triggered the Parser jumps through the table and starts
parsing the first line of the next frame. We let the duration of this
last stall line be 10 cycles (200ns@50MHz) to be able to distinguish this
sampling of the frame select lines from the triggering of the first line
in the next frame.

frame           f
parser     n     f 0
stb        __---________---___
trigger    ___----_______----_
ack        ____-__________-___
sequencer  n-1 n          0
2015-04-14 18:18:16 -06:00
Robert Jördens bc1acef355 test/pdq2: don't write vcd 2015-04-14 18:18:16 -06:00
Robert Jördens 75dfa95b4d wavesynth: move test code to unittests, fix mutability style 2015-04-05 04:24:44 -06:00
Robert Jördens 1d5f467da7 pdq2: implement changes in trigger/jump semantics, add unittest
The unittests now runs the compute_samples.Synthesizer against the actual
gateware and verifies similarity (up to integer rounding errors).
2015-04-05 03:55:54 -06:00
Robert Jördens e870b27830 wavesynth: new semantics, fix compensation
* "trigger" now means that the corresponding line will only start
  once the trigger line is high.
* "jump" is implicit as the last line in a frame must jump back.
* spline coefficients are now compensated for finite time step size
2015-04-05 03:55:54 -06:00
Robert Jördens 051b01f58e wavesynth: refactor testing code 2015-04-05 03:55:54 -06:00
Robert Jördens d1653589f9 pdq2: spelling fix 2015-04-04 14:26:32 -06:00
Robert Jördens 16ff190731 pdq2: cleanup unittest 2015-04-04 14:26:32 -06:00
Robert Jördens fb91955260 tests: make hardware-in-the loop flags positive logic
Explicitly having to disable unittests that require hardware
(ARTIQ_NO_HARDWARE) is cumbersome.
There is not even a sensible default for the
device or serial number of the devices requiring additional
variables (ARTIQ_LDA_DEVICE etc).

This patch reverts the logic by skipping unittests that
can not automatically determine whether the required hardware
is present and where it is.
2015-04-03 11:51:03 +08:00
Robert Jördens 05781699b8 pdq2: driver and unittest
* parses wavesynth style programs
* verified with cosimulated gateware
2015-03-21 00:29:00 -06:00
Sebastien Bourdeauducq f158711f7e test/worker: test watchdog in build() 2015-03-11 19:07:04 +01:00
Sebastien Bourdeauducq 4ba54ac929 test: do not close/recreate the asyncio event loop (WA for asyncio bugs when multiple tests are run) 2015-03-11 19:05:01 +01:00
Sebastien Bourdeauducq e037b930d8 test: add worker unittest 2015-03-11 18:26:04 +01:00
Sebastien Bourdeauducq 407477bc5a test: add ARTIQ_NO_PERIPHERALS environment variable to disable tests requiring non-core devices 2015-03-08 11:40:50 +01:00
Sebastien Bourdeauducq 0f007cb1a7 language/db: remove implicit_core 2015-03-08 11:37:53 +01:00
Sebastien Bourdeauducq ac697e3248 test/thorlabs_tcube: fix default serial port 2015-03-08 11:37:24 +01:00
Sebastien Bourdeauducq 9fad01d967 test/thorlabs_tcube: fix test discovery and style 2015-03-04 23:53:49 +00:00
Yann Sionneau bc19d6f7a8 thorlabs_tcube: add unit tests 2015-03-04 23:45:21 +00:00
Sebastien Bourdeauducq 5bb6a3d8a6 style 2015-02-18 11:34:00 -07:00
Sebastien Bourdeauducq de4a15c315 lda: add unit tests 2015-02-18 11:33:25 -07:00
Sebastien Bourdeauducq 3e22fe86b5 reorganize files as per discussion with Robert 2015-01-17 19:38:20 +08:00
Sebastien Bourdeauducq 891c0d12f2 refactor device/parameter management, immediate parameter updates, start introducing results 2015-01-12 18:51:23 +08:00
Sebastien Bourdeauducq f9dd5682ee pc_rpc: asyncio client 2015-01-05 16:07:12 +08:00
Sebastien Bourdeauducq d2a5dfa1ec pc_rpc: multiple target support 2014-12-31 20:13:10 +08:00
Sebastien Bourdeauducq f7232fd3d1 support exceptions raised by RPCs 2014-12-20 21:33:22 +08:00
Sebastien Bourdeauducq 5522378c1c support units in lists 2014-12-19 14:34:23 +08:00
Sebastien Bourdeauducq f31386d15d py2llvm: len() support on lists 2014-12-18 11:13:50 +08:00
Sebastien Bourdeauducq 8af0301185 transforms/tools/value_to_ast: list support 2014-12-17 22:22:44 +08:00
Sebastien Bourdeauducq f3b727b59d py2llvm: replace array with list 2014-12-17 21:54:10 +08:00
Sebastien Bourdeauducq 0dc4eb02ae setup: install frontend tools, remove nosetest dependency, minor fixes 2014-12-10 12:13:10 +08:00