Commit Graph

209 Commits

Author SHA1 Message Date
Yann Sionneau
6c094b500d pxi6733: fix type issue 2015-06-08 17:56:44 +02:00
Yann Sionneau
d66117ed99 pxi6733: cleanup 2015-06-08 11:54:39 +02:00
Yann Sionneau
c251601204 pxi6733: refactor, allow multiple channels in one task, cancel any previous task 2015-06-05 20:12:46 +02:00
Yann Sionneau
140239fee4 pxi6733: allow to set the sampling frequency 2015-06-03 00:34:11 +02:00
Yann Sionneau
36cda96df0 pxi6733: add ping method to the driver 2015-05-25 22:16:31 +02:00
Yann Sionneau
d78a275655 pxi6733: use a method as DoneEvent callback 2015-05-22 16:08:07 +02:00
Yann Sionneau
c91cd0ab38 pxi6733: use a writeable and c_contiguous numpy ndarray 2015-05-21 18:05:32 +02:00
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
17f61b8e29 pxi6733: minor fixes 2015-04-21 16:23:09 +08:00
Yann Sionneau
69388ccc1a pxi6733: add driver and controller 2015-04-21 16:09:55 +08:00
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
7ea9250b31 wavesynth: interpolate->coefficients 2015-04-05 04:43:27 -06:00
9fd4594c53 interpolate: refactor discrete_compensate 2015-04-05 04:32:23 -06:00
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
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
Yann Sionneau
5ca5a3602e novatech409b: cleanup 2015-03-25 16:11:11 +01:00
6a0bc19279 pdq2/driver: document a few units 2015-03-23 20:31:37 -06:00
b597483913 thorlabs_tcube: spelling, fix ping 2015-03-23 17:24:12 +01:00
Yann Sionneau
2651050c83 Controller cleanups 2015-03-23 17:02:39 +01:00
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
1b7f71bda9 controllers: consistent device/simulation specification 2015-03-22 00:48:15 +01:00
7e61f66493 pdq2/mediator: get pdq devices from pdb 2015-03-22 00:24:42 +01:00
05781699b8 pdq2: driver and unittest
* parses wavesynth style programs
* verified with cosimulated gateware
2015-03-21 00:29:00 -06:00
fae7246f30 pdq2: merge from main pdq2 repo 2015-03-19 14:34:37 -06:00
0f007cb1a7 language/db: remove implicit_core 2015-03-08 11:37:53 +01: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
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
3e46a36a4d lda: do not print attenuation value in simulation 2015-02-27 00:16:56 -07:00
Yann Sionneau
b672a99174 lda: add support for ping 2015-02-26 09:30:30 -07:00
Yann Sionneau
5cfdac9c7c Lda: replace assert with direct exception raising 2015-02-20 10:21:15 -07:00
05824fd3be lda: style 2015-02-18 11:31:44 -07:00
Yann Sionneau
dc132bd248 lda: fixes 2015-02-18 11:23:24 -07:00
4558fb3e33 clarify controller terminology 2015-02-16 08:57:15 -07:00
021d0d312e novatech409b: do not specify type info in docstrings 2015-02-16 04:43:30 -07:00
Joe Britton
a3494c57cc add Novatech 409B controller 2015-02-15 17:31:37 -07:00
891c0d12f2 refactor device/parameter management, immediate parameter updates, start introducing results 2015-01-12 18:51:23 +08:00
Yann Sionneau
2ad063c377 Lda: sanity checks on attenuation value
- Plus use of dB unit
2015-01-10 00:27:21 +08:00
Yann Sionneau
d21211a473 lda: docstring style 2015-01-10 00:27:15 +08:00
dhslichter
ff37cdc26c Update driver.py 2015-01-05 17:40:37 -07:00
dhslichter
c971a6f1c6 Update driver.py
Fix 32dB limit bug
2015-01-05 15:52:47 -07:00
d315268ddb move controllers/clients to frontend 2014-12-11 14:10:15 +08:00
87fdad97ca devices/lda: break off main function 2014-12-10 12:01:31 +08:00
2a843ea436 language: replace AutoContext 'parameter' string with abstract attributes
This allows specifying default values for parameters, and other data.
2014-12-02 17:19:05 +08:00
Yann Sionneau
0c20445413 lda: allow to simulate without needing hidapi
This also fixes some old style string formating
2014-12-01 19:39:13 +08:00
9c41f98d70 lda_controller: fix memory leak 2014-11-29 11:19:03 +08:00
8f18d8d492 devices: use underscore in filenames to permit import 2014-11-29 11:03:52 +08:00
Yann Sionneau
81ab801fe4 lda: filter reports when waiting for command response 2014-11-29 10:50:41 +08:00
Yann Sionneau
075e540032 lda: separate simulation class 2014-11-29 10:50:12 +08:00
Yann Sionneau
b9e7fdb80e lda: add docstring 2014-11-29 10:49:43 +08:00
dc27c2e3ad lda: remove excessive verbosity 2014-11-25 19:59:53 +08:00
57e25c7af1 lda: minor fixes and refactoring 2014-11-25 19:56:28 +08:00
Yann Sionneau
744e7841c6 devices: initial LDA controller 2014-11-25 19:51:28 +08:00
9098d10766 use .py extension on all Python files 2014-11-18 13:50:47 -08:00
f54a2f93d2 remove kernel_attr (inline transform is now smart enough to autodetect) 2014-11-03 14:38:04 +08:00
4cae5531ec pc_rpc: server identification support 2014-10-28 15:45:56 +08:00
2946fa58b8 pc_rpc: factor out asyncio server code 2014-10-27 20:37:37 +08:00
1e5b05d4ec pdq2: fix commandline arguments 2014-10-27 20:34:33 +08:00
171ed70f2a pc_rpc: remove WaitQuit (use e.g. Ctrl-C on the controller side instead) 2014-10-27 14:33:45 +08:00
3f1391f7f2 devices: basic pdq2 controller/client 2014-10-25 11:38:42 +08:00
85b6a7ca24 pdq2: small improvements based on ML feedback 2014-10-22 17:31:33 +08:00
61a50ee53c reorganize for devices/controllers 2014-10-19 23:51:49 +08:00
caab81974a devices: add pdq2 (incomplete) 2014-10-17 00:13:09 +08:00
111bd3092c devices/rtio_core: add LLRTIOOut 2014-10-17 00:12:53 +08:00
27d1a5ffb9 devices/dds_core: rename rtio_channel to rtio_switch 2014-10-16 23:36:28 +08:00
cbf915c2cc devices/runtime: pretty-print 2014-10-14 19:49:39 +08:00
88ad4fbf23 pdq2: pep8 2014-10-14 17:02:25 +08:00
ea0773ccb5 pdq2: split CLI 2014-10-14 16:38:02 +08:00
de158e0aeb artiq/devices: add pdq2.py 2014-10-14 16:00:52 +08:00
d22c30650d rtio: add timestamp function 2014-10-14 15:54:10 +08:00
2449348f31 devices/runtime: allow 1ms for all initial DDS programming 2014-10-14 12:47:24 +08:00
a303293e8f devices/dds_core: fix merging of back-to-back pulses of different frequencies 2014-10-13 23:58:32 +08:00
0158de5ac9 devices/corecom_dummy: fix ref_period 2014-10-13 17:20:12 +08:00
74adb39157 devices/dds_core: add frequency_to_ftw and ftw_to_frequency 2014-10-13 17:05:35 +08:00
9925568473 devices/runtime: add returns_twice attribute on __eh_setjmp (fixes exception crashes) 2014-10-11 12:59:39 +08:00
Yann Sionneau
e3ef077cb2 Fix module installation
Allow to use setup.py for ARTIQ instead of PYTHONPATH.
Without this, the installation is incomplete.
2014-10-11 00:42:26 +08:00
e22301ea05 transforms: track units, now() returns seconds, implement time_to_cycles and cycles_to_time 2014-10-06 23:28:56 +08:00
8612a8a9ca devices/dds_core: remove stale kernel_attr 2014-10-06 17:23:00 +08:00
76fed11d59 rtio: raise RTIOSequenceError exceptions when events are not submitted in-order 2014-09-30 19:32:11 +08:00
73d0a84b44 doc: various cleanups 2014-09-30 18:10:40 +08:00
cb036a30c7 devices/dds_core: document 2014-09-30 17:38:52 +08:00
5099643f84 devices/rtio_core: rename RTIOCounter to RTIOIn and document 2014-09-30 16:42:07 +08:00
4572b7657f devices/runtime_exceptions: fix exception_map generation 2014-09-29 18:08:58 +08:00
035b541a73 language/core: add RuntimeException 2014-09-29 17:36:35 +08:00
af0cd902d3 get frequency from RTIO, support fractional frequencies 2014-09-26 17:24:06 +08:00
e0cd45b1ba devices/corecom_serial: do not use deprecated logger.warn 2014-09-25 12:58:11 +08:00
4f26b6281d host: support runtime device exceptions 2014-09-25 12:57:26 +08:00
af15f45bb9 runtime: do not use buggy llvm.eh.sjlj.* intrinsics 2014-09-23 22:09:08 +08:00
8b769a0417 devices/runtime: add more eh functions 2014-09-23 16:25:41 +08:00
bad87ef38b devices/corecom_serial: unpack unsigned chars 2014-09-22 13:23:39 +08:00
19abab3feb devices/runtime: rename syscall to build_syscall 2014-09-22 13:22:38 +08:00
5244a63b55 devices/runtime: register eh_raise service 2014-09-22 13:22:04 +08:00
3de24619b2 corecom: exception support 2014-09-21 23:36:10 +08:00
e821f9eb83 transforms/inline: encode exceptions 2014-09-21 23:30:40 +08:00
426d6dd979 corecom_serial: logger/debugging 2014-09-21 18:19:14 +08:00
0b1ebb1ba5 devices/core: raise loop unrolling limit 2014-09-17 19:52:18 +08:00
9af0e9c91a devices/runtime: support dumping of ELF object via ARTIQ_DUMP_OBJECT environment variable 2014-09-17 18:03:54 +08:00
af6457c5fa devices/core: enable unparser via ARTIQ_UNPARSE environment variable 2014-09-17 17:06:51 +08:00
140b4eb594 devices/rtio_core: set OE, implement gate/count 2014-09-15 22:48:22 +08:00