Commit Graph

659 Commits

Author SHA1 Message Date
b226dbd257 sawg: unittest data format 2016-11-21 12:35:57 +01:00
whitequark
009d396740 Move mu_to_seconds, seconds_to_mu to Core. 2016-11-21 05:37:30 +00:00
9221a275cb sawg: kernel support (wip) 2016-11-20 16:39:53 +01:00
whitequark
abf2b32b20 coredevice.dds: work around the round(numpy.float64()) snafu. 2016-11-20 09:49:58 +00:00
whitequark
d7f4397924 coredevice.dds: update from obsolete int(width=) syntax (fixes #621). 2016-11-20 09:49:39 +00:00
641f07119f runtime: support rtio data wider than 64 bit 2016-11-18 17:08:33 +01:00
aedb6747f2 Merge branch 'master' into phaser
* master: (47 commits)
  runtime: disable the Nagle algorithm entirely.
  runtime: buffer RPC send packets.
  runtime: don't print debug messages to the UART.
  runtime: print microsecond timestamps in debug messages.
  artiq_devtool: abort if build failed.
  conda: bump llvmlite-artiq dep.
  conda: bump llvmlite-artiq dep.
  llvm_ir_generator: use !{→unconditionally.}invariant.load metadata.
  artiq_devtool: more robust port forwarding.
  setup: remove paramiko dependency (optional and developer-only)
  artiq_devtool: implement.
  artiq_compile: actually disable attribute writeback.
  conda: use pythonparser 1.0.
  conda: tighten pythonparser dependency (fixes #600).
  doc: clarify kernel_invariant doc (fixes #609).
  compiler: Emit all-kernel_invariant objects as LLVM constants
  conda: update for LLVM 3.9.
  add has_dds, use config flags
  Revert "Revert "Revert "Revert "Update for LLVM 3.9.""""
  Revert "Revert "Revert "Update for LLVM 3.9."""
  ...
2016-11-13 16:54:28 +01:00
whitequark
0e76cbc414 artiq_compile: actually disable attribute writeback.
I wrote both halves of this condition but forgot to hook
them together.

Fixes #586.
2016-11-10 01:04:36 +00:00
whitequark
6fcd57a41a runtime: fix remaining async RPC bugs. 2016-11-01 10:33:57 +00:00
whitequark
c1e6d4b67c runtime: fix multiple async RPC bugs. 2016-11-01 06:51:44 +00:00
6d07a16c62 Merge branch 'master' into phaser
* master: (72 commits)
  gateware: extend mailbox to 3 entries.
  master/worker_db: set default value for archive
  master: keep dataset manager consistent when set_dataset is called with contradictory attributes
  master: archive input datasets. Closes #587
  master: ensure same dataset is in broadcast and local when mutating
  scheduler: default submission arguments, closes #577
  pdq2: sync with pdq2
  doc: clarify usage of pause/check_pause, closes #571
  dashboard/datasets: use scientific spinbox and increase number of decimals, closes #572
  gateware/spi: fix import
  runtime: fix use of $(realpath) in Makefile.
  test: fix printf specifier.
  llvm_ir_generator: make sure RPC allocations are not underaligned.
  runtime: use i64 for watchdog timeout, not i32.
  runtime: port ksupport to Rust.
  runtime: remove some redundant libm functions copied inline.
  language: Add "A" (ampere) as well-known unit for arguments
  conda: misoc 0.4 (csr)
  runtime: cap log level at debug.
  runtime: discard unnecessary sections.
  ...
2016-10-28 01:40:11 +02:00
78700a67bc sawg: fast-math 2016-10-18 10:05:51 +02:00
b2327cf808 sawg: core is kernel_invariant 2016-10-18 10:05:51 +02:00
4c7c479c94 ad9154: add mirrored bits 2016-10-13 15:02:18 +02:00
9644a3a362 ad9154: mix mode addr, digital gain must be on 2016-10-12 15:00:53 +02:00
1117fe191b phaser: support core stpl 2016-10-12 12:03:29 +02:00
whitequark
4f11b071a5 runtime: remove useless handshaking in analyzer. 2016-10-07 05:53:16 +00:00
whitequark
557bc4bb56 runtime: remove unnecessary buffering. 2016-10-06 17:25:43 +00:00
whitequark
bcdbd00e7b runtime: remove unnecessary null bytes from session protocol. 2016-10-06 15:39:00 +00:00
1193ba4bf4 ad9154: merge csr spaces 2016-10-06 16:21:15 +02:00
4d87f0e9e0 phaser: instantiate jesd204b core, wire up 2016-10-06 14:44:22 +02:00
4a0eaf0f95 phaser: add jesd204b rtio dds
gateware: add jesd204b awg

gateware: copy phaser (df3825a)
dsp/tools: update satadd mixin
phaser: no DDS stubs
dsp: accu fix
phaser: cleanup/reduce

sawg: kernel support and docs

sawg: coredevice api fixes

sawg: example ddb/experiment

phaser: add conda package

examples/phaser: typo

sawg: adapt tests, fix accu stb

sawg: tweak dds parameters

sawg: move/adapt/extend tests

sawg: test phy, refactor

phaser: non-rtio spi

phaser: target cli update

phaser: ad9154-fmc-ebz pins

phaser: reorganize fmc signal naming

phaser: add test mode stubs

phaser: txen is LVTTL

phaser: clk spi xfer test

phaser: spi for ad9154 and ad9516

phaser: spi tweaks

ad9154: add register map from ad9144.xml

ad9516: add register map from ad9517.xml and manual adaptation

ad9154_reg: just generate getter/setter macros as well

ad9154: reg WIP

ad9154: check and fix registers

kc705: single ended rtio_external_clk

use single ended user_sma_clk_n instead of p/n to free up one clock sma

kc705: mirror clk200 at user_sma_clock_p

ad9516_regs.h: fix B_COUNTER_MSB

phase: wire up clocking differently

needs patched misoc

kc705: feed rtio_external_clock directly

kc705: remove rtio_external_clk for phaser

phaser: spi tweaks

ad9516: some startup

ad9516_reg fixes

phaser: setup ad9516 for supposed 500 MHz operation

ad9516: use full duplex spi

ad9154_reg: add CONFIG_REG_2

ad9154_reg: fixes

phaser: write some ad9154 config

ad9154_reg: fixes

ad9154: more init, and human readable setup

ad9154/ad9516: merge spi support

ad9154: status readout

Revert "kc705: remove rtio_external_clk for phaser"

This reverts commit d500288bb44f2bf2eeb0c2f237aa207b0a8b1366.

Revert "kc705: feed rtio_external_clock directly"

This reverts commit 8dc7825519e3e75b7d3d29c9abf10fc6e3a8b4c5.

Revert "phase: wire up clocking differently"

This reverts commit ad9cc450ffa35abb54b0842d56f6cf6c53c6fbcc.

Revert "kc705: mirror clk200 at user_sma_clock_p"

This reverts commit 7f0dffdcdd28e648af84725682f82ec6e5642eba.

Revert "kc705: single ended rtio_external_clk"

This reverts commit a9426d983fbf5c1cb768da8f1da26d9b7335e9cf.

ad9516: 2000 MHz clock

phaser: test clock dist

phaser: test freqs

ad9154: iostandards

phaser: drop clock monitor

phaser: no separate i2c

phaser: drive rtio from refclk, wire up sysref

phaser: ttl channel for sync

ad9154: 4x interp, status, tweaks

phaser: sync/sysref 33V banks

phaser: sync/sysref LVDS_25 inputs are VCCO tolerant

phaser: user input-only ttls

phaser: rtio fully from refclk

ad9154: reg name usage fix

ad9154: check register modifications

Revert "ad9154: check register modifications"

This reverts commit 45121d90edf89f7bd8703503f9f317ad050f9564.

ad9154: fix status code

ad9154: addrinc, recal serdes pll

phaser: coredevice, example tweaks

sawg: missing import

sawg: type fixes

ad9514: move setup functions

ad9154: msb first also decreasing addr

phaser: use sys4x for rtio internal ref

phaser: move init code to main

phaser: naming cleanup

phaser: cleanup pins

phaser: move spi to kernel cpu

phaser: kernel support for ad9154 spi

ad9154: add r/w methods

ad9154: need return annotations

ad9154: r/w methods are kernels

ad9154_reg: portable helpers

phaser: cleanup startup kernel

ad9154: status test

ad9154: prbs test

ad9154: move setup, document

phaser: more documentation
2016-10-05 16:17:50 +02:00
whitequark
494cfca41c coreanalyzer: fix rtio_log message extraction.
Fixes #550.
2016-09-14 10:18:00 +00:00
whitequark
25ec99930c Also serialize numpy.int{32,64} like int in RPC return values.
Fixes #555.
2016-09-09 08:52:18 +00:00
2b282456dc coredevice/ttl: fix imports 2016-09-07 17:37:14 +08:00
486fe97649 ttl: add level-based APIs (#218) 2016-09-07 16:55:21 +08:00
310acca372 dds: fix docstring, closes #540 2016-08-16 14:55:30 +08:00
23b704802d dds: make init_sync accessible for AD9914 only 2016-08-15 17:45:18 +08:00
raghu
c4d17138a1 added sync for AD9914 2016-08-15 17:44:27 +08:00
89df048efb analyzer: use picosecond resolution in VCD output. Closes #528 2016-08-03 10:57:15 +08:00
whitequark
933ea53c77 compiler: add basic numpy array support (#424). 2016-07-06 09:51:57 +00:00
whitequark
906db876a6 language: replace coredevice int with numpy.{int32,int64}.
Fixes #453.
2016-07-06 04:44:21 +00:00
73ac153509 spi: expose more documentation on chaining transfers 2016-07-04 12:43:33 +02:00
c6e54e3016 coredevice/core: add syscall type annotation 2016-06-29 10:38:19 +08:00
c8dc6ca07c inter-experiment smooth handover 2016-06-29 02:37:50 +08:00
5853e31ac2 coredevice/comm_tcp: more appropriate exception 2016-06-26 19:08:40 +08:00
bc7d06468f coredevice/comm_generic: style 2016-06-26 18:50:02 +08:00
a8b211f891 spi: cross-reference bit ordering and alignment, closes #482 2016-06-15 15:04:04 +02:00
3aab77d7a0 doc: precisions about time cursor interaction 2016-06-12 13:08:47 +08:00
b9c3edd49f Revert "coredevice: automatically close on pause"
This reverts commit 1f50b3428e.
2016-06-11 10:12:36 -06:00
whitequark
e47538ca33 analyzer: explicitly delimit messages (with \x1D).
Fixes #461.
2016-06-07 11:26:49 +00:00
0ac0547bca dds: use fast math for asf computations 2016-06-03 23:34:32 -04:00
dhslichter
98ae779941 dds: fix asf_to_amplitude 2016-06-03 23:02:16 -04:00
3d6f55104b coredevice/TCA6424A: convert 'outputs' value to little endian. Closes #437 2016-05-22 06:53:18 -07:00
whitequark
640022122b embedding: refactor some more. 2016-05-16 14:38:09 +00:00
whitequark
c94c411fd5 compiler: demangle symbols.
In future commits we'll add Itanium C++ ABI style mangling to ARTIQ
emitted function names.
2016-05-16 14:38:09 +00:00
whitequark
a88425b66b compiler: allow RPCing builtin functions.
Fixes #366.
2016-04-26 01:31:17 +00:00
whitequark
1464bae6b7 compiler: don't typecheck RPCs except for return type.
Fixes #260.
2016-04-26 01:12:36 +00:00
whitequark
5cccdcaad6 coredevice: deserialize int64(width=64) as int(width=64), not host_int.
Fixes #402.
2016-04-21 18:59:54 +00:00
1f50b3428e coredevice: automatically close on pause 2016-04-12 15:46:21 +08:00
whitequark
9cc9e8b276 embedding: s/kernel_constant_attributes/kernel_invariants/g
Requested in #359.
2016-04-06 22:38:31 +00:00
whitequark
712e16b79e ttl: mark constant attributes for TTL{In,InOut,ClockGen}. 2016-04-02 18:20:51 +00:00
whitequark
132b55d6be coredevice: format backtrace RA as +0xN, not 0xN.
The absolute address is somewhere in the 0x4000000 range; the one
that is displayed is an offset from the shared object base.
2016-04-02 18:05:40 +00:00
a545598d4c style 2016-03-29 16:19:03 +08:00
50888865e7 doc/dds: fix init timing margin 2016-03-29 12:01:32 +08:00
ce57794e7f doc: fix comment about when and how DDS init should be done. Closes #353 2016-03-29 11:10:53 +08:00
whitequark
1038f1321f compiler: allow specifying per-function "fast-math" flags.
Fixes #351.
2016-03-28 21:44:08 +00:00
whitequark
6f5332f892 compiler: allow flagging syscalls, providing information to optimizer.
This also fixes a crash in test_cache introduced in 1d8b0d46.
2016-03-28 19:56:56 +00:00
whitequark
507ad96db3 coredevice: add some kernel_constant_attributes specifications. 2016-03-28 00:06:00 +00:00
5b536d7c67 i2c: fix variable name (closes #347) 2016-03-25 12:51:55 +01:00
4d22db1aff coredevice/exceptions/ClockFailure: improve description 2016-03-19 18:01:00 +08:00
641831e0e1 dds: improve error reporting 2016-03-19 12:15:19 +08:00
d0af58d122 coredevice: only import common RTIO exceptions 2016-03-19 12:11:47 +08:00
whitequark
501de30626 Report watchdog expiration and RTIO clock failure as exceptions.
Fixes #316.
2016-03-18 22:29:53 +00:00
whitequark
78fa5becea compiler: refuse to embed a function from another core device.
Fixes #332.
2016-03-18 02:01:14 +00:00
cb8e497ff6 analyzer: fix DDSHandler setup 2016-03-15 22:14:44 +08:00
0076fc4216 analyzer: fix AD9914 FTW decoding 2016-03-15 22:14:21 +08:00
6a9957a2ac analyzer: fix get_dds_sysclk 2016-03-15 21:47:24 +08:00
e13d424398 analyzer: strip final StoppedMessage for VCD output 2016-03-15 18:33:36 +08:00
8a6873cab2 analyzer: use EOP, flush pipeline on stop 2016-03-15 17:49:59 +08:00
f4f95d330b Merge branch 'master' of github.com:m-labs/artiq 2016-03-10 11:15:30 +08:00
1739e0f2f8 coredevice: put cache into separate file/device 2016-03-10 10:46:19 +08:00
9edaf16735 exceptions: clarify RTIOBusy 2016-03-09 22:11:32 +01:00
349a66124b Merge branch 'master' into rtiobusy
* master:
  coredevice: fix _DDSGeneric __init__ args
  rtio/core: fix syntax
  rtio: disable replace on rt2wb channels
  examples: dds_bus -> core_dds
  fix more multi-DDS-bus problems
  runtime: fix dds declarations
  support for multiple DDS buses (untested)
2016-03-09 17:58:58 +01:00
b32217cc84 coredevice: fix _DDSGeneric __init__ args 2016-03-09 17:23:02 +01:00
0bd9add95e spi: fix frequency_to_div() 2016-03-09 12:32:31 +01:00
b0de9ee90a coredevice: add RTIOBusy to __all__ 2016-03-09 12:27:45 +01:00
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
f0b0b1bac7 support for multiple DDS buses (untested) 2016-03-09 17:12:50 +08:00
9d1903a4e2 coredevice/i2c,ttl,spi: consistent device get 2016-03-09 13:01:34 +08:00
2cb58592ff rtio: add RTIOBusy 2016-03-08 18:04:34 +01:00
71105fd0d7 rtio: collision_error -> collision 2016-03-08 15:38:35 +08:00
c73b080019 doc/PCA9548: clarify channel selection 2016-03-07 00:17:45 +08:00
2770d9c729 doc: I2C/QC2 2016-03-05 19:02:03 +08:00
683716017b test: I2C/PCA9548 unittest 2016-03-05 19:01:35 +08:00
f2b4b975a3 ad5360: add documentation and an example 2016-03-04 23:36:17 +01:00
18ccac717b ad5360: t16 is a max 2016-03-04 19:46:18 +01:00
eb2ec40b3a ad5360: un-factor write_channels 2016-03-04 19:01:29 +01:00
725943fee2 ad5360: add busy and update timings 2016-03-04 18:53:05 +01:00
e834a88340 ad5360: style 2016-03-04 18:15:35 +01:00
710717ca9b ad5360: add batched zero-length multi-channel set() 2016-03-04 18:14:31 +01:00
4ae3ca5f23 spi/ad5360: refactor, small fixes 2016-03-04 18:14:31 +01:00
200cddc346 coredevice/i2c: fix exception message 2016-03-05 00:51:13 +08:00
70f0a7447f coredevice/PCA9548: fix I2C address 2016-03-05 00:47:24 +08:00
df71b82037 coredevice/i2c: fix imports 2016-03-05 00:43:13 +08:00
2f1a2782d2 coredevice: add I2C, PCA9548, TCA6424A drivers 2016-03-05 00:17:41 +08:00
ff4a46c278 runtime/i2c: make syscalls more ARTIQ-Python-friendly 2016-03-05 00:16:23 +08:00
3364827744 ttl/TTLClockGen: fix FTW computation with ref_multiplier != 1 2016-03-04 16:59:59 +08:00
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
669fbaa4f1 ad53xx->ad5360 and refactor 2016-03-04 00:00:25 +01:00
dc6d116824 spi: have write() delay by transfer duration 2016-03-03 21:57:27 +01:00
9969cd85de ad53xx: ldac may be none 2016-03-02 15:50:02 +01:00
1e4bccae20 ad53xx: add 2016-03-02 00:12:01 +01:00
162ecdd574 spi: cleanup, add frequency_to_div() 2016-03-02 00:11:17 +01:00
d973eb879f coredevice.spi: docstring fix 2016-03-01 22:42:00 +01:00
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
0456169558 coredevice.spi, doc/manual: add spi 2016-03-01 21:29:09 +01:00
f30dc4b39e runtime: rt2wb_input -> rtio_input_data 2016-03-01 19:22:42 +01:00
3aebbbdb61 coredevice.ttl: fix sensitivity 2016-03-01 18:22:03 +01:00
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
29776fae3f coredevice.spi: unused import 2016-03-01 15:38:40 +01:00
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
c7d48a1765 coredevice/TTLOut: add dummy output function 2016-03-01 19:03:10 +08:00
7d7a710a56 runtime/rt2wb: use input/output terminology and add (async) input 2016-03-01 00:35:56 +01:00
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
6c899e6ba6 runtime/rtio: fix rtio_input_wait(), add RTIOTimeout 2016-02-29 19:49:15 +01:00
16537d347e coredevice.spi: cleanup 2016-02-29 19:48:26 +01:00
e11366869d coredevice/spi: clean up api 2016-02-29 17:54:42 +01:00
a1e1f2b387 doc: insist that output() must be called on TTLInOut. Closes #297 2016-03-01 00:28:40 +08:00
4467f91cbf coredevice: do not give up on UTF-8 errors in log. Closes #300 2016-02-29 22:21:10 +08:00
c226aeb0d4 coredevice/spi: read_sync read bit 2016-02-29 14:55:29 +01:00
df7d15d1fe runtime: refactor spi into rt2wb 2016-02-29 13:54:36 +01:00
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
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
d1119d7747 artiq_dir: move out of tools to unlink dependencies 2016-01-25 18:15:50 -07:00
cbb60337ae refactor Analyzer constants to unlink dependencies 2016-01-25 18:03:48 -07:00
f4c7f02127 CoreException: store at 'py_exn.artiq_core_exception'
... and fix a few imports
2016-01-25 17:24:00 -07:00
e0f2d94191 coredevice: remove some print()s 2016-01-25 17:24:00 -07:00
2beaf23e6c language...ARTIQException -> coredevice...CoreException
gets rid of a cross import
is only used there
2016-01-25 17:24:00 -07:00
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
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
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
b5253e1353 coredevice/analyzer: decode log messages 2015-12-27 01:28:34 +08:00
24fa74a8ab coredevice/analyzer: support TTL clockgen 2015-12-26 21:51:37 +08:00
1c36ae0672 coredevice/analyzer: support TTL inputs 2015-12-26 21:24:53 +08:00
a871194ee4 coredevice/analyzer: prefix channel names with their types 2015-12-26 17:47:53 +08:00
2b70fa14a6 coredevice/analyzer: update rtio_slack on output messages only 2015-12-26 17:47:08 +08:00
cd8eccfd46 coredevice/analyzer: add rtio_slack channel 2015-12-25 00:40:47 +08:00
179c50480f frontend: split coretool into coreconfig, corelog and coreanalyzer 2015-12-24 18:51:11 +08:00
e41e2c088d analyzer: encapsulate decoded dump, get onehot sel from header 2015-12-24 00:31:21 +08:00
4be5df9802 coredevice/analyzer: DDS decoding 2015-12-23 18:57:53 +08:00
58d0e2c0b8 coredevice/analyzer: log TTL decoding in debug mode 2015-12-23 18:56:23 +08:00
e4d73c0302 artiq/coredevice/dds: fix dds_set signature 2015-12-23 17:25:31 +08:00
f6522922f8 coredevice/exceptions: PEP8 2015-12-22 12:03:11 +08:00
23355d8eff coredevice: restore RTIOCollisionError 2015-12-22 11:59:18 +08:00
007a7170e1 analyzer: report DDS channel number 2015-12-21 18:37:53 +08:00
e87436fc03 coredevice/analyzer: remove zero-timestamp msg filtering (now unnecessary) 2015-12-21 11:15:58 +08:00
b96e0d241e coredevice/analyzer: set VCD timescale 2015-12-20 22:06:07 +08:00
4b5c10b641 coredevice/core: remove default period 2015-12-20 22:05:52 +08:00
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