cdcb57effe
coredevice/analyzer: basic VCD writing
2015-12-20 19:32:52 +08:00
46f59b673f
coredevice: analyzer message decoding
2015-12-20 14:34:16 +08:00
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