forked from M-Labs/artiq
1
0
Fork 0
Commit Graph

710 Commits

Author SHA1 Message Date
Sebastien Bourdeauducq 30dffb6644 rtio/phy: add wishbone adapter 2015-04-15 20:39:40 +08:00
Sebastien Bourdeauducq ecf6b29279 coredevice/rtio: minor docstring cleanup 2015-04-15 13:53:00 +08:00
Robert Jördens c0213c9f69 artiq_flash.sh: add pipistrello 2015-04-14 22:37:08 -06:00
Robert Jördens 9795e83bfc pdq2: continue work on coefficients 2015-04-14 18:18:49 -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
Sebastien Bourdeauducq 4c10182c9f rtio: refactor, use rtlink 2015-04-14 19:44:45 +08:00
Sebastien Bourdeauducq ff9a7727d2 rtio: add rtlink definition (currently unused) 2015-04-13 22:19:18 +08:00
Sebastien Bourdeauducq 07b8e1292f artiq_flash: fix stderr redirections 2015-04-11 23:43:33 +08:00
Sebastien Bourdeauducq 8a2b8fc634 artiq_flash: do not always assume permission problems 2015-04-11 22:54:17 +08:00
Yann Sionneau 8a3be4eca0 artiq_flash: add support for kc705 2015-04-11 22:38:11 +08:00
Sebastien Bourdeauducq 88e0aae16d coredevice: add comm_tcp 2015-04-10 01:22:03 +08:00
Sebastien Bourdeauducq f427041ae9 coredevice/comm_serial: minor cleanup 2015-04-10 01:21:47 +08:00
Sebastien Bourdeauducq cb2596bd81 coredevice/comm: split protocol to allow reuse for Ethernet 2015-04-10 00:59:35 +08:00
Sebastien Bourdeauducq efd1c24ed7 frontend: add artiq_compile tool to build default experiment 2015-04-07 15:41:32 +08:00
Sebastien Bourdeauducq ca89b6d0ed worker_db: support read-only mode 2015-04-07 15:40:57 +08:00
Sebastien Bourdeauducq fda4ee1a83 coredevice: add compile method 2015-04-07 15:40:25 +08:00
Sebastien Bourdeauducq 5e046dc5ce artiq_run: move parse_arguments and get_experiment to tools 2015-04-07 13:04:47 +08:00
Sebastien Bourdeauducq 7e591bb1c7 targets: use _Peripherals/UP/AMP class names, share QC1 IO defs 2015-04-07 00:07:53 +08:00
Sebastien Bourdeauducq 1ed60e0829 gateware/amp: use new ModuleTransformer API 2015-04-06 23:54:53 +08:00
Sebastien Bourdeauducq 72f9f7ed79 runtime: implement mailbox, use it for kernel startup, exceptions and termination 2015-04-05 22:07:34 +08:00
Robert Jördens 7ea9250b31 wavesynth: interpolate->coefficients 2015-04-05 04:43:27 -06:00
Sebastien Bourdeauducq 0bab73eece wavesynth/compute_samples: fix list mutation bug 2015-04-05 18:41:06 +08:00
Robert Jördens 9fd4594c53 interpolate: refactor discrete_compensate 2015-04-05 04:32:23 -06:00
Robert Jördens 75dfa95b4d wavesynth: move test code to unittests, fix mutability style 2015-04-05 04:24:44 -06:00
Sebastien Bourdeauducq 3257275782 worker_db: get_logger -> getLogger 2015-04-05 18:02:07 +08: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 1f545346e3 wavesynth: implement silence, add defaults, fix bias 2015-04-05 03:55:54 -06:00
Robert Jördens 051b01f58e wavesynth: refactor testing code 2015-04-05 03:55:54 -06:00
Sebastien Bourdeauducq 71b7fe38bc worker_impl: add missing import 2015-04-05 17:50:48 +08:00
Sebastien Bourdeauducq 9b46bc623a dbhub: do not use as context manager, turn close exceptions into warnings, do not close devices early in worker 2015-04-05 17:49:41 +08:00
Robert Jördens 0ec7e9a98c artiq_run: fix get_argparser() 2015-04-04 21:17:24 -06:00
Robert Jördens 1a1afd5410 artiq_run: refactor, support use from within experiments
You can always (under posix) use #!/usr/bin/env artiq_run as
shebang for experiments and make them executable.
Now, you can also do this (portable):

if __name__ == "__main__":
    from artiq.frontend.artiq_run import run
    run()

to make an experiment executable. The CLI options are all inherited.
Also:

* removed --elf: can be inferred from filename
* did some refactoring and cleanup
* use logging for all messages, except the result printing (use -v to get
parameter changes and dummy scheduler actions)
2015-04-04 20:51:48 -06:00
Robert Jördens 43893c6c1d worker_impl: use DBHub as context manager 2015-04-04 20:51:48 -06:00
Robert Jördens 7b86138fd2 DBHub: make it a context manager 2015-04-04 20:51:48 -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
Sebastien Bourdeauducq 833178462d remove gpio driver 2015-04-04 22:06:54 +08:00
Sebastien Bourdeauducq c6d3750076 runtime,amp: set kernel memory start to SDRAM+128K, use custom linker file to split memory 2015-04-03 16:03:38 +08: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
Florent Kermarrec 2995f0a705 remove use of _r prefix on CSRs 2015-04-02 18:30:44 +08:00
Sebastien Bourdeauducq 5bd8d414cf gateware/amp: add kernel CPU and mailbox modules 2015-04-02 16:49:36 +08:00
Yann Sionneau e7be00baa8 Add support for automatic build and upload of dev conda artiq packages to binstar by travis-ci
- SoC+BIOS are also built and integrated in the conda package
- artiq_flash.sh script is embedded to allow flashing ppro board
2015-03-30 19:51:52 +08:00
Sebastien Bourdeauducq 3108ffeef6 coredevice/comm_serial: use lazy formatting in logging 2015-03-27 18:54:19 +01:00
Robert Jördens f4cb97b709 comm_serial: fix baud rate change logging 2015-03-25 17:57:53 -06:00
Sebastien Bourdeauducq bd2f6ea9f9 thorlabs_tcube_controller: use simple_network_args 2015-03-25 16:20:08 +01:00
Yann Sionneau 5ca5a3602e novatech409b: cleanup 2015-03-25 16:11:11 +01:00
Robert Jördens 03139808bd [WIP] wavesynth/interpolate: wavesynth programming tools
* interpolate(t, v) will generate the channel data subset of a wavesynth
program

* still broken
2015-03-23 20:38:33 -06:00
Robert Jördens 6a0bc19279 pdq2/driver: document a few units 2015-03-23 20:31:37 -06:00
Sebastien Bourdeauducq 768fa21488 lda_controller: show default product type 2015-03-23 20:02:36 +01:00
Sebastien Bourdeauducq bd145bbabc use %(default) in argparse 2015-03-23 20:02:14 +01:00
Sebastien Bourdeauducq b597483913 thorlabs_tcube: spelling, fix ping 2015-03-23 17:24:12 +01:00
Yann Sionneau 91336f974d lda_controller: replace serial argument with device one 2015-03-23 17:02:39 +01:00
Yann Sionneau 2651050c83 Controller cleanups 2015-03-23 17:02:39 +01:00
Sebastien Bourdeauducq 0b174085c8 pdq2/mediator: rewrite, adapt to new PDQ RPC format, support anonymous segments, support uploading to controllers 2015-03-22 22:30:59 +01:00
Sebastien Bourdeauducq c18efa11b3 wavesynth: fix frame/segment terminology 2015-03-22 10:56:34 +01:00
Sebastien Bourdeauducq 1b7f71bda9 controllers: consistent device/simulation specification 2015-03-22 00:48:15 +01:00
Sebastien Bourdeauducq 7e61f66493 pdq2/mediator: get pdq devices from pdb 2015-03-22 00:24:42 +01:00
Robert Jördens 8cb77b0336 pdq2: rename url parameter to device and require it 2015-03-21 00:33:50 -06: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 200e20fb39 worker: close devices immediately after run and before analyze 2015-03-20 12:01:34 +01:00
Robert Jördens 577754c38f pdq2: fix argparser 2015-03-19 22:26:12 -06:00
Robert Jördens 222d0a9d37 pdq2_controller: add dump option 2015-03-19 21:38:46 -06:00
Robert Jördens 5ab3290ed4 pdq2: add refactored client code 2015-03-19 20:34:29 -06:00
Robert Jördens fae7246f30 pdq2: merge from main pdq2 repo 2015-03-19 14:34:37 -06:00
Sebastien Bourdeauducq 2257cfa952 wavesynth/compute_samples/: demonstrate dds clear 2015-03-15 18:13:47 +01:00
Sebastien Bourdeauducq 40bd101de0 wavesynth/compute_samples/SplinePhase: fix reduction 2015-03-15 18:13:09 +01:00
Sebastien Bourdeauducq 1d0fde7f13 wavesynth: program decoding 2015-03-15 18:05:03 +01:00
Sebastien Bourdeauducq 327448977c wavesynth/compute_samples: use set_coefficients 2015-03-15 16:48:24 +01:00
Sebastien Bourdeauducq 0d8260af6e wavesynth: basic sample computation 2015-03-15 16:30:07 +01:00
Sebastien Bourdeauducq 2b3641ac0a db,worker: fix realtime result initialization 2015-03-13 15:12:55 +01:00
Sebastien Bourdeauducq 7a1d60ee15 coredevice,runtime,language: add parameters to runtime exceptions, include information with RTIO errors 2015-03-13 14:55:18 +01:00
Sebastien Bourdeauducq 84732a469d coredevice/gpio: fix indentation 2015-03-13 14:31:50 +01:00
Sebastien Bourdeauducq 3122623c6f rtio: make 63-bit timestamp counter the default [soc] 2015-03-12 13:13:35 +01:00
Sebastien Bourdeauducq f158711f7e test/worker: test watchdog in build() 2015-03-11 19:07:04 +01:00
Sebastien Bourdeauducq 43a05c783d worker: split write_results action 2015-03-11 19:06:46 +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 5ca4821a29 ctlmgr: use workaround for asyncio.wait_for(process.wait()... Python bug 2015-03-11 16:48:16 +01:00
Sebastien Bourdeauducq d5795fd619 master: watchdog support
Introduces a watchdog context manager to use in the experiment code that
terminates the process with an error if it times out. The syntax is:

with self.scheduler.watchdog(20*s):
   ...

Watchdogs timers are implemented by the master process (and the worker
communicates the necessary information about them) so that they can be
enforced even if the worker crashes. They can be nested arbitrarily.
During yields, all watchdog timers for the yielding worker are
suspended [TODO]. Setting up watchdogs is not supported in kernels,
however, a kernel can be called within watchdog contexts (and terminating
the worker will terminate the kernel [TODO]).

It is possible to implement a heartbeat mechanism using a watchdog, e.g.:

for i in range(...):
    with self.scheduler.watchdog(...):
        ....

Crashes/freezes within the iterator or the loop management would not be
detected, but they should be rare enough.
2015-03-11 16:43:14 +01:00
Sebastien Bourdeauducq f2134fa4b2 master,worker: split prepare/run/analyze 2015-03-09 23:34:09 +01:00
Sebastien Bourdeauducq 4c280d5fcc master: use a new worker process for each experiment 2015-03-09 16:22:41 +01:00
Sebastien Bourdeauducq ec1d082730 remove timeout from run_params (to be replaced by a better mechanism) 2015-03-09 10:51:32 +01:00
Sebastien Bourdeauducq d95a9cac9a move realtime result registration into dbh, simplify syntax 2015-03-08 17:27:27 +01:00
Sebastien Bourdeauducq f2e3dfb848 Experiment base class, replace __artiq_unit__ with docstring 2015-03-08 15:55:30 +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 28bce9ee40 artiqlib -> artiq.gateware 2015-03-08 11:00:24 +01:00
Sebastien Bourdeauducq 9fad01d967 test/thorlabs_tcube: fix test discovery and style 2015-03-04 23:53:49 +00:00
Yann Sionneau c2831db253 thorlabs_tcube: add realistic values for status bits and dc status in driver sim 2015-03-04 23:45:22 +00:00
Yann Sionneau 5091098eb0 thorlabs_tcube: driver PEP8 fix 2015-03-04 23:45:21 +00:00
Yann Sionneau bc19d6f7a8 thorlabs_tcube: add unit tests 2015-03-04 23:45:21 +00:00
Yann Sionneau 5b8691f7f5 thorlabs_tcube: fix driver spelling issues 2015-03-04 23:45:21 +00:00
Yann Sionneau 14c759ff89 add Thorlabs T-Cube NDSP 2015-03-04 14:30:49 +00:00
Sebastien Bourdeauducq f307897bec units: fix strip_unit 2015-02-27 10:43:03 -07:00
Sebastien Bourdeauducq 0abd41a04a pc_rpc: trace support in server 2015-02-27 00:17:11 -07:00
Sebastien Bourdeauducq 3e46a36a4d lda: do not print attenuation value in simulation 2015-02-27 00:16:56 -07:00
Sebastien Bourdeauducq ee9d616733 language/units: add strip_unit function 2015-02-26 23:31:07 -07:00
Sebastien Bourdeauducq f855834810 gui/tools/DictSyncer: remove dead code 2015-02-26 22:10:53 -07:00
Yann Sionneau b672a99174 lda: add support for ping 2015-02-26 09:30:30 -07:00
Sebastien Bourdeauducq d51493fb5d language/core: fix interpreter implementations of time/cycle conversions 2015-02-25 21:15:46 -07:00
Yann Sionneau 1b5944257e units: add support for V (Volt) 2015-02-24 14:15:38 -07:00
Yann Sionneau 9485372277 units: add support for abs() on Quantity 2015-02-24 14:15:23 -07:00
Sebastien Bourdeauducq 651ed71b79 master: basic automatic experiment list 2015-02-21 20:34:31 -07:00
Sebastien Bourdeauducq 4267e0deab master,artiq_run: simplify unit autodetection 2015-02-21 20:26:58 -07:00
Sebastien Bourdeauducq 387de11e56 artiq_run: fix import 2015-02-21 20:09:46 -07:00
Sebastien Bourdeauducq 6601bebcfe master: make RIDs unique across restarts 2015-02-21 18:41:07 -07:00
Sebastien Bourdeauducq ceb02b42cb master: use full year in result folder name 2015-02-21 18:34:31 -07:00
Sebastien Bourdeauducq 965dd89b61 master: reorganize result output code 2015-02-21 14:28:18 -07:00
Sebastien Bourdeauducq 1aec6a0462 master: name results 'year-month-day/hour-minute/runid-experiment' 2015-02-21 13:42:26 -07:00
Sebastien Bourdeauducq cc172699ea master: use RID + unit class name for HDF5 filenames 2015-02-20 14:11:55 -07:00
Sebastien Bourdeauducq 65555a3a09 artiq_run,master: introduce __artiq_unit__ attribute to mark and name experiments 2015-02-20 14:01:34 -07:00
Yann Sionneau 5cfdac9c7c Lda: replace assert with direct exception raising 2015-02-20 10:21:15 -07:00
Sebastien Bourdeauducq 0dd5692c32 master,run: pass run_params to experiment 2015-02-19 20:05:12 -07:00
Sebastien Bourdeauducq 4d21b78314 master,client,gui: factor timeout into run_params 2015-02-19 20:03:55 -07:00
Sebastien Bourdeauducq d01ba8e644 artiq_run: provide dummy scheduler API 2015-02-19 12:09:37 -07:00
Sebastien Bourdeauducq c69c4d5ce9 master: expose scheduler API to experiments 2015-02-19 12:09:11 -07:00
Sebastien Bourdeauducq 9ffc370416 master,run: automatically call analyze function 2015-02-19 09:40:15 -07: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 05824fd3be lda: style 2015-02-18 11:31:44 -07:00
Yann Sionneau dc132bd248 lda: fixes 2015-02-18 11:23:24 -07:00
Yann Sionneau 3c50610f3d pyon: bytes support 2015-02-18 11:19:03 -07:00
Sebastien Bourdeauducq e10390d142 coredevice: add get_rtio_time 2015-02-18 09:56:30 -07:00
Sebastien Bourdeauducq ec84726858 py2llvm: support conversion of fractions to float 2015-02-18 09:56:07 -07:00
Sebastien Bourdeauducq d484b3a548 tools: add missing import 2015-02-18 08:52:31 -07:00
Sebastien Bourdeauducq 3543dc30c7 Revert "tools/file_import: use python 3.4 importlib API"
This reverts commit 614a96a3d7.

Conflicts:
	artiq/tools.py
2015-02-18 08:51:44 -07:00
Sebastien Bourdeauducq 170a626c76 tools/file_import: support import of modules importing from their directory 2015-02-17 16:13:00 -07:00
Sebastien Bourdeauducq 656099a331 artiq_run: sort result output alphabetically 2015-02-17 16:12:21 -07:00
Sebastien Bourdeauducq 614a96a3d7 tools/file_import: use python 3.4 importlib API 2015-02-17 13:07:09 -07:00
Sebastien Bourdeauducq 4558fb3e33 clarify controller terminology 2015-02-16 08:57:15 -07:00
Sebastien Bourdeauducq 61dc177bce units: support direct float conversion 2015-02-16 07:48:05 -07:00
Sebastien Bourdeauducq 021d0d312e novatech409b: do not specify type info in docstrings 2015-02-16 04:43:30 -07:00
Sebastien Bourdeauducq 8c4fb2d534 novatech409b: add sim mode help 2015-02-16 04:39:41 -07:00
Sebastien Bourdeauducq 17611e9899 lda_controller: add description 2015-02-15 17:32:08 -07:00
Joe Britton a3494c57cc add Novatech 409B controller 2015-02-15 17:31:37 -07:00
Sebastien Bourdeauducq e196ef9c48 lda_controller: style 2015-02-15 15:00:55 -07:00
Sebastien Bourdeauducq 17596f4ad8 tools,frontend: print default ports 2015-02-15 14:58:57 -07:00
Sebastien Bourdeauducq 79a5d8a12a tools,frontend: common network arguments 2015-02-15 14:55:43 -07:00
Sebastien Bourdeauducq 6d4b9e5fca frontend: remove lda_client (use artiq_rpctool instead) 2015-02-12 09:34:17 +08:00
Yann Sionneau af4be9a2e2 rpctool: change call syntax 2015-02-12 09:31:04 +08:00
Sebastien Bourdeauducq 39dfbb4162 ddb: support for best effort RPC client 2015-02-12 00:54:54 +08:00
Sebastien Bourdeauducq 1b3603d8bf pc_rpc/BestEffortClient: add docstrings 2015-02-12 00:50:48 +08:00
Yann Sionneau b396f5dd43 pc_rpc: support for method listing, frontend: artiq_rpctool, +fixes by SB 2015-02-12 00:38:30 +08:00
Sebastien Bourdeauducq 6d11da3887 pc_rpc/BestEffortClient: add logging 2015-02-12 00:21:39 +08:00
Sebastien Bourdeauducq a7405dea1c protocols/pc_rpc: add best effort client 2015-02-12 00:14:20 +08:00
Sebastien Bourdeauducq c91705c5d1 ctlmgr: support hostnames in DDB 2015-02-09 20:03:34 +08:00
Sebastien Bourdeauducq 542e047f5a ctlmgr: clean shutdown 2015-02-08 21:44:49 +08:00