Commit Graph

288 Commits

Author SHA1 Message Date
whitequark
afee03b89c Commit missing parts of 4fb1de33. 2015-12-19 06:41:32 +08:00
whitequark
4fb1de33c9 Initial invocation of a @kernel function can now return a value (fixes #197). 2015-12-19 05:26:18 +08:00
0832c71a66 coredevice/comm_tcp: support retrieving analyzer data 2015-12-18 18:22:50 +08:00
whitequark
52102a1a79 Fix handling of default values for RPC arguments (fixes #190). 2015-12-18 18:03:07 +08:00
eeb53c5aa5 coredevice/comm: compare software and gateware versions. Closes #97 2015-12-11 22:56:40 +08:00
whitequark
16ae0fb6eb compiler.embedding: instantiate RPC method types (fixes #180). 2015-11-27 16:29:13 +08:00
whitequark
e1cd2ccd40 compiler: pull in dependencies in more finely grained way (fixes #181). 2015-11-24 17:32:04 +08:00
whitequark
bd5b324fc2 Merge branch 'master' into new-py2llvm 2015-10-13 19:24:45 +03:00
5f89d1a78f doc: document core device driver. Closes #119 2015-10-06 18:12:57 +08:00
whitequark
7a6fc3983c Make delay component of function type unifyable. 2015-09-30 18:41:14 +03:00
whitequark
3e1348a084 Merge branch 'master' of github.com:m-labs/artiq into new-py2llvm 2015-09-27 18:22:28 +03:00
Raghavendra Srinivas
b3831d3387 dds: support amplitude tuning on AD9914
Closes #108
2015-09-05 13:15:09 -06:00
6e5b71a43e coredevice/comm_tcp: disable socket timeout after connect
Reads may block indefinitely.
2015-09-03 09:59:24 -06:00
whitequark
2df8b946f9 Factor out the code to pretty-print diagnostics. 2015-08-31 22:52:39 -06:00
whitequark
501ba912c2 Implement {delay,now,at}{,_mu} and {mu,seconds}_to_{seconds,mu}. 2015-08-31 09:59:33 -06:00
a36a50ba0d comm_tcp: add connect timeout 2015-08-28 16:23:23 +08:00
whitequark
9605e8215f coredevice.ttl: update for new int semantics. 2015-08-28 02:11:26 -05:00
whitequark
7c1abb25ec compiler.embedding: test all diagnostics.
Also, unify and improve diagnostic messages.
2015-08-28 00:47:28 -05:00
whitequark
d80be482fc Allow clearing core device log buffer.
This is useful to get a fresh environment, such as when
running tests that print to log buffer.
2015-08-28 00:37:46 -05:00
0fe0f4d433 dds: fix phase computation. Closes #79. 2015-08-27 11:09:33 +08:00
1991b3c910 coredevice/TTLClockGen: fix attribute init 2015-08-27 09:48:11 +08:00
whitequark
9b9fa1ab7c Allow embedding and RPC sending host objects. 2015-08-25 21:56:01 -07:00
whitequark
673512f356 coredevice.core: fix imports. 2015-08-19 12:37:31 -07:00
c625f2e7c9 ttl: minor docstring cleanup 2015-08-17 23:50:24 +08:00
c71d207e90 core/break_realtime: only increase now 2015-08-17 23:41:21 +08:00
dee844510c comm_tcp: enable TCP keepalive on host side as well 2015-08-15 16:03:00 +08:00
f073dfaee5 ttl: add input/output doc 2015-08-13 12:20:12 +08:00
whitequark
62e6f8a03d compiler.embedding.Stitcher: refactor. 2015-08-10 20:26:07 +03:00
whitequark
46476516ba ARTIQException: tell linecache where to look for runtime sources.
Runtime sources can appear in the backtrace when
artiq_raise_from_c is used.
2015-08-10 20:26:07 +03:00
whitequark
c72267ecf5 Implement syscalls for the new compiler. 2015-08-10 20:26:06 +03:00
whitequark
75532d10aa Display full core device backtraces. 2015-08-10 15:12:22 +03:00
whitequark
d4270cf66e Implement receiving data from RPCs. 2015-08-09 20:17:00 +03:00
whitequark
02b1543c63 Implement receiving exceptions from RPCs. 2015-08-09 16:16:41 +03:00
whitequark
8b7d38d203 Add ARTIQ_DUMP_ASSEMBLY. 2015-08-09 15:47:29 +03:00
whitequark
b26af5df60 Implement sending RPCs. 2015-08-09 02:17:19 +03:00
whitequark
13ad9b5d08 Allow to dump ARTIQ/LLVM IR for stitched code. 2015-08-08 21:47:20 +03:00
671a3f1833 doc: precision about dds batch time 2015-08-08 23:05:00 +08:00
0a6fcd9fa0 Revert "comm_generic: cleanup"
This reverts commit be55487d2d.
2015-08-08 21:24:23 +08:00
whitequark
27d2390fed Add zero-cost exception support to runtime and host. 2015-08-08 16:01:31 +03:00
whitequark
ecdebc0b8a session.c: refactor. 2015-08-08 13:21:43 +03:00
whitequark
d6ab567242 coredevice.comm_*: refactor. 2015-08-07 16:44:16 +03:00
be55487d2d comm_generic: cleanup 2015-08-07 21:12:00 +08:00
whitequark
353f454a29 Add basic support for embedded functions with new compiler. 2015-08-07 11:44:49 +03:00
whitequark
b5cf1e395d runtime: avoid race condition when running kernel.
Also, don't bother passing kernel name: entry point is already
recorded in DT_INIT when the kernel is linked.
2015-08-07 08:51:33 +03:00
whitequark
4a8e397a77 Fold llvmlite patches into m-labs/llvmlite repository. 2015-08-05 03:49:01 +03:00
whitequark
62fdc75d2d Integrate libdyld and libunwind.
It is currently possible to run the idle experiment, and it
can raise and catch exceptions, but exceptions are not yet
propagated across RPC boundaries.
2015-08-02 15:43:03 +03:00
1d34c06d79 rtio: detect collision errors 2015-07-29 19:43:35 +08:00
90368415a6 ttl: remove timestamp function
The general idea is that functions that work with absolute timestamps exist only in machine units versions, to help prevent floating point losses of precision. Time differences should be computed in machine units and then converted, e.g. mu_to_seconds(t2-t1).

This function would have had problems after ~50 days of running the device.
2015-07-29 11:11:16 +08:00
5f5227f01f ttl: add timestamp() 2015-07-28 16:20:05 -06:00
e95b66f114 ttl: remove spurious _mu 2015-07-28 16:20:05 -06:00
f836465585 coredevice: environment -> runtime 2015-07-15 11:20:41 +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
56fc7a484c TTLInOut: timestamp -> timestamp_mu 2015-07-13 23:21:29 +02:00
32d141f5ac refactor ddb/pdb/rdb 2015-07-13 22:21:32 +02:00
34aacd3c5f complete AD9914 support (no programmable modulus, untested) 2015-07-08 17:22:43 +02:00
8a33d8c868 never stop RTIO counter 2015-07-07 15:29:38 +02:00
58c0150822 ttl: improve clockgen doc 2015-07-05 19:07:13 +02:00
65ec6c28f4 ttl/clockgen: expose acc_width 2015-07-04 19:21:25 +02:00
753d61b38f complete support for TTL clock generator 2015-07-04 18:36:01 +02:00
9d6287a6a3 expose machine units to user 2015-07-01 22:22:53 +02:00
c71fe29792 simplify unit system and use floats by default 2015-06-26 16:34:37 +02:00
e6a4c2fb36 dds: make it easier to specify phase 2015-06-26 12:05:11 +02:00
87ea1433d3 dds: all working 2015-06-20 18:42:39 -06:00
5a9bdb2e33 DDS monitoring 2015-06-19 15:30:17 -06:00
Yann Sionneau
575dfade38 flash_storage comm: use OK/ERROR replies instead of specific FLASH_WRITE_REPLY 2015-05-29 11:10:40 +02:00
Yann Sionneau
4bf7875b87 flash_storage: refactor + unit tests + artiq_coreconfig.py CLI + doc 2015-05-27 18:06:12 +08:00
ce4b5739ed runtime: reset all DDSes upon startup 2015-05-09 17:12:38 +08:00
1ceb06fb16 dds: use context manager for batches 2015-05-09 14:47:40 +08:00
5c08423b29 dds: support batches in driver 2015-05-08 22:17:06 +08:00
55f2fef576 runtime: support DDS batches 2015-05-08 16:51:54 +08:00
53c6339307 runtime: break ttl-specific functions from rtio 2015-05-08 16:20:12 +08:00
a36c51eb83 DDS over RTIO (batch mode not supported yet) 2015-05-08 14:44:39 +08:00
2adf9d91df recover_underflow -> break_realtime 2015-05-03 20:45:28 +08:00
4048568d8e support kernel handover with coherent time 2015-05-02 23:41:49 +08: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
967145f2dc watchdog support on core device (broken by bug similar to issue #19) 2015-04-29 12:58:37 +08:00
e5f7fcc339 coredevice/comm_tcp: raise exception on connection closed 2015-04-29 11:18:51 +08:00
9b62e7e77b runtime,coredevice: support session reset for serial 2015-04-28 02:11:58 +08:00
8a19766278 runtime,comm_generic: improve and fix list encoding 2015-04-28 01:31:55 +08:00
934a6b0495 runtime,coredevice: Ethernet support (buggy) 2015-04-23 23:22:40 +08:00
18106cc014 comm: refactor to support lwip event model 2015-04-22 01:31:31 +08:00
9f52277245 coredevice/core: set default for ref_period 2015-04-22 01:12:01 +08:00
0c1d256fef comm_dummy: remove unneeded import 2015-04-19 11:41:20 +08:00
c98e08fe36 fix transforms unittest 2015-04-19 11:40:49 +08:00
546996f896 coredevice,runtime: put ref_period into the ddb 2015-04-16 15:15:38 +08:00
ecf6b29279 coredevice/rtio: minor docstring cleanup 2015-04-15 13:53:00 +08:00
4c10182c9f rtio: refactor, use rtlink 2015-04-14 19:44:45 +08:00
88e0aae16d coredevice: add comm_tcp 2015-04-10 01:22:03 +08:00
f427041ae9 coredevice/comm_serial: minor cleanup 2015-04-10 01:21:47 +08:00
cb2596bd81 coredevice/comm: split protocol to allow reuse for Ethernet 2015-04-10 00:59:35 +08:00
fda4ee1a83 coredevice: add compile method 2015-04-07 15:40:25 +08:00
72f9f7ed79 runtime: implement mailbox, use it for kernel startup, exceptions and termination 2015-04-05 22:07:34 +08:00
833178462d remove gpio driver 2015-04-04 22:06:54 +08:00
3108ffeef6 coredevice/comm_serial: use lazy formatting in logging 2015-03-27 18:54:19 +01:00
f4cb97b709 comm_serial: fix baud rate change logging 2015-03-25 17:57:53 -06:00
7a1d60ee15 coredevice,runtime,language: add parameters to runtime exceptions, include information with RTIO errors 2015-03-13 14:55:18 +01:00
84732a469d coredevice/gpio: fix indentation 2015-03-13 14:31:50 +01:00
0f007cb1a7 language/db: remove implicit_core 2015-03-08 11:37:53 +01:00
e10390d142 coredevice: add get_rtio_time 2015-02-18 09:56:30 -07:00
37feaf1cea comm_serial: use serial.serial_for_url 2015-01-30 11:47:20 +08:00
891c0d12f2 refactor device/parameter management, immediate parameter updates, start introducing results 2015-01-12 18:51:23 +08:00
f7232fd3d1 support exceptions raised by RPCs 2014-12-20 21:33:22 +08:00
Yann Sionneau
e4897132ad comm_serial.py: Use cross-platform pyserial 2014-12-20 10:19:06 +08:00
0d10ae7580 rpc: support all data types as parameters 2014-12-19 12:46:24 +08:00
059608d1fd dds: fix phase modes 2014-12-09 13:50:33 +08:00
cb48dba29c coredevice: fix external clock ref_period computation 2014-12-09 11:22:55 +08:00
bfe980d458 py2llvm: distinguish between llvmlite Module and ModuleRef 2014-12-06 15:14:39 +08:00
159f632a65 switch to llvmlite 2014-12-05 17:05:43 +08:00
2a95d27770 device and parameter database 2014-12-03 18:20:30 +08:00
a41009f92a coredevice/comm_dummy: support clock-switching functions 2014-12-03 18:16:18 +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
83d3b97b23 coredevice/comm_serial: give up on garbage received after baudrate change 2014-12-02 16:04:41 +08:00
649fedd656 coredevice/core: fix recover_underflow 2014-12-02 15:31:09 +08:00
fc690ead75 runtime: support clock switching 2014-12-02 14:06:32 +08:00
94218f785e comm_serial: cleanup 2014-12-02 11:09:02 +08:00
Yann Sionneau
20adb57140 comm_serial: allow to use dynamic baudrate 2014-12-02 10:42:14 +08:00
57d633f48e rtio: remove unnecessary attributes 2014-12-01 17:47:24 +08:00
cd587e4f12 rtio: do housekeeping in gateware 2014-12-01 17:32:36 +08:00
d50dbc0e73 coredevice/runtime_exceptions: update RTIO exception behaviour doc 2014-12-01 13:57:25 +08:00
901073acf3 asynchronous RTIO 2014-11-30 00:13:54 +08:00
914bdd95d5 runtime: use booleans in syscalls 2014-11-20 12:49:09 -08:00
dfd779c7c5 core: add underflow recovery function 2014-11-20 12:38:52 -08:00
1780759327 dds: phase control (mostly untested) 2014-11-20 12:32:56 -08:00
b736c30cdb coredevice/core: core_com -> comm 2014-11-19 17:44:06 -08:00
75df0ae94a coredevice/gpio: replace set() with on()/off() to make API consistent 2014-11-19 12:33:33 -08:00
abae5c6728 coredevice/dds: round FTW instead of flooring 2014-11-17 18:36:00 -07:00
e02ca0b404 transforms: quantize time before interleaving 2014-11-15 15:26:35 -07:00
b163c9f7ea test: add optimization transform stack 2014-11-03 18:44:30 +08:00
9b93b0cedf unparse: string-based API 2014-11-03 18:14:33 +08:00
f54a2f93d2 remove kernel_attr (inline transform is now smart enough to autodetect) 2014-11-03 14:38:04 +08:00
217fe8251b coredevice/core: optimize further 2014-10-31 23:44:07 +08:00
1e8c9837ac transforms: add dead code removal 2014-10-29 20:23:58 +08:00
70cc0d1766 transform: add intermediate assignment removal 2014-10-29 17:09:45 +08:00
b96249339d doc: more precisions on RTIO error handling 2014-10-21 23:56:12 +08:00
97f9c9c34f doc: add precisions on RTIO error handling 2014-10-21 23:46:14 +08:00
5105b88302 rtio: raise input overflow exception 2014-10-21 23:41:02 +08:00
9a14081031 rtio: add pileup count reporting 2014-10-21 23:14:01 +08:00
61a50ee53c reorganize for devices/controllers 2014-10-19 23:51:49 +08:00