Commit Graph

333 Commits

Author SHA1 Message Date
Robert Jördens b0de9ee90a coredevice: add RTIOBusy to __all__ 2016-03-09 12:27:45 +01:00
Robert Jördens 446dcfbfbc Merge commit '9d1903a' into rtiobusy
* commit '9d1903a':
  coredevice/i2c,ttl,spi: consistent device get
  examples/device_db: remove --no-localhost-bind
  Monkey-patch asyncio create_server (fixes #253).
  pipistrello: drop ttls on pmod, add leds back in
  pipistrello: try with fewer leds/pmod ttl
2016-03-09 11:55:08 +01:00
Sebastien Bourdeauducq f0b0b1bac7 support for multiple DDS buses (untested) 2016-03-09 17:12:50 +08:00
Sebastien Bourdeauducq 9d1903a4e2 coredevice/i2c,ttl,spi: consistent device get 2016-03-09 13:01:34 +08:00
Robert Jördens 2cb58592ff rtio: add RTIOBusy 2016-03-08 18:04:34 +01:00
Sebastien Bourdeauducq 71105fd0d7 rtio: collision_error -> collision 2016-03-08 15:38:35 +08:00
Sebastien Bourdeauducq c73b080019 doc/PCA9548: clarify channel selection 2016-03-07 00:17:45 +08:00
Sebastien Bourdeauducq 2770d9c729 doc: I2C/QC2 2016-03-05 19:02:03 +08:00
Sebastien Bourdeauducq 683716017b test: I2C/PCA9548 unittest 2016-03-05 19:01:35 +08:00
Robert Jördens f2b4b975a3 ad5360: add documentation and an example 2016-03-04 23:36:17 +01:00
Robert Jördens 18ccac717b ad5360: t16 is a max 2016-03-04 19:46:18 +01:00
Robert Jördens eb2ec40b3a ad5360: un-factor write_channels 2016-03-04 19:01:29 +01:00
Robert Jördens 725943fee2 ad5360: add busy and update timings 2016-03-04 18:53:05 +01:00
Robert Jördens e834a88340 ad5360: style 2016-03-04 18:15:35 +01:00
Robert Jördens 710717ca9b ad5360: add batched zero-length multi-channel set() 2016-03-04 18:14:31 +01:00
Robert Jördens 4ae3ca5f23 spi/ad5360: refactor, small fixes 2016-03-04 18:14:31 +01:00
Sebastien Bourdeauducq 200cddc346 coredevice/i2c: fix exception message 2016-03-05 00:51:13 +08:00
Sebastien Bourdeauducq 70f0a7447f coredevice/PCA9548: fix I2C address 2016-03-05 00:47:24 +08:00
Sebastien Bourdeauducq df71b82037 coredevice/i2c: fix imports 2016-03-05 00:43:13 +08:00
Sebastien Bourdeauducq 2f1a2782d2 coredevice: add I2C, PCA9548, TCA6424A drivers 2016-03-05 00:17:41 +08:00
Sebastien Bourdeauducq ff4a46c278 runtime/i2c: make syscalls more ARTIQ-Python-friendly 2016-03-05 00:16:23 +08:00
Sebastien Bourdeauducq 3364827744 ttl/TTLClockGen: fix FTW computation with ref_multiplier != 1 2016-03-04 16:59:59 +08:00
Sebastien Bourdeauducq 4352d15016 coredevice/core: add ref_multiplier and coarse_ref_period attributes 2016-03-04 16:59:35 +08:00
whitequark 6e44c5424d coredevice.ttl: add missed int64 conversion. 2016-03-04 08:37:43 +00:00
Robert Jördens 669fbaa4f1 ad53xx->ad5360 and refactor 2016-03-04 00:00:25 +01:00
Robert Jördens dc6d116824 spi: have write() delay by transfer duration 2016-03-03 21:57:27 +01:00
Robert Jördens 9969cd85de ad53xx: ldac may be none 2016-03-02 15:50:02 +01:00
Robert Jördens 1e4bccae20 ad53xx: add 2016-03-02 00:12:01 +01:00
Robert Jördens 162ecdd574 spi: cleanup, add frequency_to_div() 2016-03-02 00:11:17 +01:00
Robert Jördens d973eb879f coredevice.spi: docstring fix 2016-03-01 22:42:00 +01:00
Robert Jördens f754d2c117 Merge branch 'spimaster'
* spimaster: (52 commits)
  runtime/rtio: rtio_process_exceptional_status() has only one user
  coredevice.spi, doc/manual: add spi
  kc705: move ttl channels together again, update doc
  runtime: rt2wb_input -> rtio_input_data
  examples/tdr: adapt to compiler changes
  bridge: really fix O/OE
  runtime: define constants for ttl addresses
  coredevice.ttl: fix sensitivity
  bridge: fix ttl o/oe addresses
  runtime: refactor ttl*()
  rtio: rm rtio_write_and_process_status
  coredevice.spi: unused import
  rt2wb, exceptions: remove RTIOTimeout
  gateware.spi: delay only writes to data register, update doc
  nist_clock: disable spi1/2
  runtime/rt2wb: use input/output terminology and add (async) input
  examples: update device_db for nist_clock spi
  gateware.spi: rework wb bus sequence
  nist_clock: rename spi*.ce to spi*.cs_n
  nist_clock: add SPIMasters to spi buses
  ...
2016-03-01 22:08:08 +01:00
Robert Jördens 0456169558 coredevice.spi, doc/manual: add spi 2016-03-01 21:29:09 +01:00
Robert Jördens f30dc4b39e runtime: rt2wb_input -> rtio_input_data 2016-03-01 19:22:42 +01:00
Robert Jördens 3aebbbdb61 coredevice.ttl: fix sensitivity 2016-03-01 18:22:03 +01:00
Robert Jördens 8adef12781 runtime: refactor ttl*()
* remove rt2wb_output
* remove ttl_*() ttl.c ttl.h
* use rtio_output() and rtio_input_timestamp()
* adapt coredevice/compiler layer
* adapt bridge to not artiq_raise_from_c()
2016-03-01 16:36:59 +01:00
Robert Jördens 29776fae3f coredevice.spi: unused import 2016-03-01 15:38:40 +01:00
Robert Jördens 324660ab40 rt2wb, exceptions: remove RTIOTimeout
Assume that rt2wb transactions either collide and are then
reported (https://github.com/m-labs/artiq/issues/308) or that
they complete and the delay with which they complete does not matter.

If a transaction is ack'ed with a delay because the WB core's downstream
logic is busy, that may lead to a later collision with another WB
transaction.
2016-03-01 14:44:07 +01:00
Sebastien Bourdeauducq c7d48a1765 coredevice/TTLOut: add dummy output function 2016-03-01 19:03:10 +08:00
Robert Jördens 7d7a710a56 runtime/rt2wb: use input/output terminology and add (async) input 2016-03-01 00:35:56 +01:00
Robert Jördens 7ab7f7d75d Merge branch 'master' into spimaster
* master:
  artiq_flash: use term 'gateware'
  targets/kc705-nist_clock: add clock generator on LA32 for testing purposes
  doc: insist that output() must be called on TTLInOut. Closes #297
  doc: update install instructions
  coredevice: do not give up on UTF-8 errors in log. Closes #300
  use m-labs setup for defaults
  fix indentation
2016-02-29 20:47:52 +01:00
Robert Jördens 6c899e6ba6 runtime/rtio: fix rtio_input_wait(), add RTIOTimeout 2016-02-29 19:49:15 +01:00
Robert Jördens 16537d347e coredevice.spi: cleanup 2016-02-29 19:48:26 +01:00
Robert Jördens e11366869d coredevice/spi: clean up api 2016-02-29 17:54:42 +01:00
Sebastien Bourdeauducq a1e1f2b387 doc: insist that output() must be called on TTLInOut. Closes #297 2016-03-01 00:28:40 +08:00
Sebastien Bourdeauducq 4467f91cbf coredevice: do not give up on UTF-8 errors in log. Closes #300 2016-02-29 22:21:10 +08:00
Robert Jördens c226aeb0d4 coredevice/spi: read_sync read bit 2016-02-29 14:55:29 +01:00
Robert Jördens df7d15d1fe runtime: refactor spi into rt2wb 2016-02-29 13:54:36 +01:00
Robert Jördens 8b2b278457 spi: add coredevice support 2016-02-29 00:44:48 +01:00
whitequark cf41890255 Correctly display backtraces that contain inlined functions. 2016-02-24 17:44:19 +00:00
whitequark 950eaef08c coredevice: re-export more exceptions. 2016-02-24 15:09:22 +00:00
whitequark 9db2be2b03 compiler: only use colors in diagnostics on POSIX (fixes #272). 2016-02-22 11:27:45 +00:00
whitequark a5977a5b62 Commit missing parts of 1465fe6f8. 2016-02-15 21:42:51 +00:00
Robert Jördens 68891493a3 analyzer: move common to artiq.protocols
migen was still pulled in through rtio.__init__.py
2016-01-29 20:26:48 -07:00
whitequark 7f9a180946 Fix typo. 2016-01-26 23:23:35 +00:00
Robert Jördens d1119d7747 artiq_dir: move out of tools to unlink dependencies 2016-01-25 18:15:50 -07:00
Robert Jördens cbb60337ae refactor Analyzer constants to unlink dependencies 2016-01-25 18:03:48 -07:00
Robert Jördens f4c7f02127 CoreException: store at 'py_exn.artiq_core_exception'
... and fix a few imports
2016-01-25 17:24:00 -07:00
Robert Jördens e0f2d94191 coredevice: remove some print()s 2016-01-25 17:24:00 -07:00
Robert Jördens 2beaf23e6c language...ARTIQException -> coredevice...CoreException
gets rid of a cross import
is only used there
2016-01-25 17:24:00 -07:00
Robert Jördens 765001054d artiq.experiment: merge language and coredevice namespaces
perl -i -pe 's/^from artiq import \*$/from artiq.experiment import */' your_experiments/*.py

(assuming you skipped the changes form the previous commit)
2016-01-25 17:24:00 -07:00
Sebastien Bourdeauducq dc709a77b8 PPP support (TCP broken) 2016-01-18 20:09:10 -07:00
whitequark 5c6b1517d0 Rigorously treat builtin core device exceptions. 2016-01-19 01:45:25 +00:00
whitequark 785b2736a0 Document core device cache (#219). 2016-01-16 16:38:55 +00:00
whitequark 67d2e7a828 worker: display compile warnings and errors nicely (#227). 2016-01-16 01:28:26 +00:00
Sebastien Bourdeauducq a9cf89215b coredevice/dds: use explicit 64-bit ints for ftw computations 2016-01-14 15:25:01 -07:00
whitequark 225f7d7302 Commit missing parts of 9366a29. 2016-01-10 20:01:26 +00:00
whitequark b669e83554 Inject parameters into coredevice exception message when mapping. 2016-01-10 18:06:28 +00:00
whitequark 4198601abb coredevice.exceptions: add CacheError. 2016-01-10 14:43:30 +00:00
whitequark f8e50f2b0c Remove redundant ksupport API. 2016-01-10 14:27:46 +00:00
whitequark cc45694f5a Commit missing parts of 9366a29. 2016-01-10 13:08:26 +00:00
whitequark 9366a29483 Implement core device storage (fixes #219). 2016-01-10 13:04:55 +00:00
whitequark 03dd1c3a43 Refactor the logic of printing diagnostics to solely rely on Engine. 2016-01-04 22:11:54 +08:00
whitequark 38a99fde52 Implement selective attribute writeback using shadow memory. 2016-01-02 22:51:04 +08:00
whitequark 79d020dd3a transforms.artiq_ir_generator: handle terminated try body. 2015-12-31 22:36:25 +08:00
whitequark 8aa34ee952 compiler: don't require exceptions to inherit ARTIQException. 2015-12-31 21:54:54 +08:00
whitequark 8fb6d4cdb4 coredevice.comm_generic: handle RPC default args correctly. 2015-12-29 02:54:34 +08:00
Sebastien Bourdeauducq b5253e1353 coredevice/analyzer: decode log messages 2015-12-27 01:28:34 +08:00
Sebastien Bourdeauducq 24fa74a8ab coredevice/analyzer: support TTL clockgen 2015-12-26 21:51:37 +08:00
Sebastien Bourdeauducq 1c36ae0672 coredevice/analyzer: support TTL inputs 2015-12-26 21:24:53 +08:00
Sebastien Bourdeauducq a871194ee4 coredevice/analyzer: prefix channel names with their types 2015-12-26 17:47:53 +08:00
Sebastien Bourdeauducq 2b70fa14a6 coredevice/analyzer: update rtio_slack on output messages only 2015-12-26 17:47:08 +08:00
Sebastien Bourdeauducq cd8eccfd46 coredevice/analyzer: add rtio_slack channel 2015-12-25 00:40:47 +08:00
Sebastien Bourdeauducq 179c50480f frontend: split coretool into coreconfig, corelog and coreanalyzer 2015-12-24 18:51:11 +08:00
Sebastien Bourdeauducq e41e2c088d analyzer: encapsulate decoded dump, get onehot sel from header 2015-12-24 00:31:21 +08:00
Sebastien Bourdeauducq 4be5df9802 coredevice/analyzer: DDS decoding 2015-12-23 18:57:53 +08:00
Sebastien Bourdeauducq 58d0e2c0b8 coredevice/analyzer: log TTL decoding in debug mode 2015-12-23 18:56:23 +08:00
Sebastien Bourdeauducq e4d73c0302 artiq/coredevice/dds: fix dds_set signature 2015-12-23 17:25:31 +08:00
Sebastien Bourdeauducq f6522922f8 coredevice/exceptions: PEP8 2015-12-22 12:03:11 +08:00
Sebastien Bourdeauducq 23355d8eff coredevice: restore RTIOCollisionError 2015-12-22 11:59:18 +08:00
Sebastien Bourdeauducq 007a7170e1 analyzer: report DDS channel number 2015-12-21 18:37:53 +08:00
Sebastien Bourdeauducq e87436fc03 coredevice/analyzer: remove zero-timestamp msg filtering (now unnecessary) 2015-12-21 11:15:58 +08:00
Sebastien Bourdeauducq b96e0d241e coredevice/analyzer: set VCD timescale 2015-12-20 22:06:07 +08:00
Sebastien Bourdeauducq 4b5c10b641 coredevice/core: remove default period 2015-12-20 22:05:52 +08:00
Sebastien Bourdeauducq cdcb57effe coredevice/analyzer: basic VCD writing 2015-12-20 19:32:52 +08:00
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 0fe0f4d433 dds: fix phase computation. Closes #79. 2015-08-27 11:09:33 +08:00
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq c625f2e7c9 ttl: minor docstring cleanup 2015-08-17 23:50:24 +08:00
Sebastien Bourdeauducq c71d207e90 core/break_realtime: only increase now 2015-08-17 23:41:21 +08:00
Sebastien Bourdeauducq dee844510c comm_tcp: enable TCP keepalive on host side as well 2015-08-15 16:03:00 +08:00
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 671a3f1833 doc: precision about dds batch time 2015-08-08 23:05:00 +08:00
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 1d34c06d79 rtio: detect collision errors 2015-07-29 19:43:35 +08:00
Sebastien Bourdeauducq 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
Robert Jördens 5f5227f01f ttl: add timestamp() 2015-07-28 16:20:05 -06:00
Robert Jördens e95b66f114 ttl: remove spurious _mu 2015-07-28 16:20:05 -06:00
Sebastien Bourdeauducq 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
Sebastien Bourdeauducq 56fc7a484c TTLInOut: timestamp -> timestamp_mu 2015-07-13 23:21:29 +02:00
Sebastien Bourdeauducq 32d141f5ac refactor ddb/pdb/rdb 2015-07-13 22:21:32 +02:00
Sebastien Bourdeauducq 34aacd3c5f complete AD9914 support (no programmable modulus, untested) 2015-07-08 17:22:43 +02:00