forked from M-Labs/artiq
1
0
Fork 0
Commit Graph

136 Commits

Author SHA1 Message Date
David Nadlinger ae999db8f6 compiler: Revert function call lifetime tracking fix
This reverts commits f8d1506922
and cf19c9512d.

While the commit just fixes a clear typo in the implementation,
it turns out the original algorithm isn't flexible enough to
capture functions that transitively return references to
long-lived data. For instance, while cache_get() is special-cased
in the compiler to be recognised as returning a value of Global()
lifetime, a function just forwarding to it (as seen in the
embedding tests) isn't anymore.

A separate issue is also that this makes implementing functions
that take lists and return references to global data in user code
impossible, which central parts of the Oxford codebase rely on.

Just reverting for now to unblock master; a fix is easily designed,
but needs testing.
2020-07-30 16:40:39 +01:00
David Nadlinger cf19c9512d RELEASE_NOTES: Add entry for compiler lifetime tracking fix
I contemplated putting this in the "Breaking changes" section,
as it might break user code that has avoided being hit by
memory corruption from the use-after free by chance (even
though it was always an accepts-illegal bug).
2020-07-28 00:54:20 +01:00
Charles Baynham 9b44ec7bc6 parameters: Allow forcing a NumberValue to return a float
Signed-off-by: Charles Baynham <charles.baynham@npl.co.uk>
2020-07-27 12:25:51 +08:00
David Nadlinger 3f0cf6e683 runtime: Stop kernel CPU before restarting comms CPU on panic
Before, the system would enter a boot loop when a panic occurred
while the kernel CPU was active (and panic_reset == 1), as
kernel::start() for the startup kernel would panic.
2020-07-01 17:29:05 +08:00
David Nadlinger f36692638c dashboard: Add "Quick Open" dialog for experiments on global shortcut
This is similar to functionality in Sublime Text, VS Code, etc.
2020-06-26 10:11:33 +08:00
David Nadlinger 7955b63b00 master: Always write results to HDF5 once run stage is reached
Previously, a significant risk of losing experimental results would
be associated with long-running experiments, as any stray exceptions
while run()ing the experiment – for instance, due to infrequent
network glitches or hardware reliability issue – would cause no
HDF5 file to be written. This was especially troublesome as long
experiments would suffer from a higher probability of unanticipated
failures, while at the same time being more costly to re-take in
terms of wall-clock time.

Unanticipated uncaught exceptions like that were enough of an issue
that several Oxford codebases had come up with their own half-baked
mitigation strategies, from swallowing all exceptions in run() by
convention, to always broadcasting all results to uniquely named
datasets such that the partial results could be recovered and written
to HDF5 by manually run recovery experiments.

This commit addresses the problem at its source, changing the worker
behaviour such that an HDF5 file is always written as soon as run()
starts.
2020-06-18 17:47:26 +01:00
Robert Jördens 9822b88d9b
ad9910: fix asf range (#1450)
* ad9910: fix asf range

The ASF is a 14-bit word. The highest possible value is 0x3fff, not
0x3ffe. `int(round(1.0 * 0x3fff)) == 0x3fff`.

I don't remember and understand why this was 0x3ffe since the beginning.
0x3fff was already used as a default in `set_mu()`

Signed-off-by: Robert Jördens <rj@quartiq.de>

* RELEASE_NOTES: ad9910 asf scale change

Co-authored-by: David Nadlinger <code@klickverbot.at>
2020-05-29 11:13:26 +02:00
Charles Baynham 5db2afc7a7 dashboard: Release notes for #1453 2020-05-26 18:16:35 +08:00
Marius Weber 2538840756
Coredevice Input Validation (#1447)
* Input validation and masking of SI -> mu conversions (close #1446)

Signed-off-by: Marius Weber <marius.weber@physics.ox.ac.uk>

* Update RELEASE_NOTES

Signed-off-by: Marius Weber <marius.weber@physics.ox.ac.uk>

Co-authored-by: Robert Jördens <rj@quartiq.de>
2020-05-17 15:09:11 +02:00
Marius Weber b3b6cb8efe
ad53xx improvements (#1445)
* ad53xx: voltage_to_mu() validation & documentation (closes #1443, #1444)
The voltage input (float) is checked for validity. If we need more
speed, we may want to check the DAC-code for over/underflow instead.

Signed-off-by: Marius Weber <marius.weber@physics.ox.ac.uk>

* ad53xx documentation: voltage_to_mu is only valid for 16-bit DACs

Signed-off-by: Marius Weber <marius.weber@physics.ox.ac.uk>

* AD53xx: add voltage_to_mu method (closes #1341)

Signed-off-by: Marius Weber <marius.weber@physics.ox.ac.uk>

* ad53xx: improve voltage_to_mu performance
Interger comparison is faster than floating point math.

Signed-off-by: Marius Weber <marius.weber@physics.ox.ac.uk>

* AD53xx: voltage_to_mu method now uses attribute values

Signed-off-by: Marius Weber <marius.weber@physics.ox.ac.uk>

* Fixup RELEASE_NOTES.rst

Signed-off-by: Marius Weber <marius.weber@physics.ox.ac.uk>

* ad53xx: documentation improvements

voltage_to_mu return value
14-bit DAC support

Signed-off-by: Marius Weber <marius.weber@physics.ox.ac.uk>
2020-05-08 19:23:43 +02:00
Robert Jördens ea79ba4622 ttl_serdes: detect edges on short pulses
Edges on pulses shorter than the RTIO period were missed because the
reference sample and the last sample of the serdes word are the same.

This change enables detection of edges on pulses as short as the
serdes UI (and shorter as long as the pulse still hits a serdes sample
aperture).

In any RTIO period, only the leading event corresponding to the first
edge with slope according to sensitivity is registerd. If the channel is
sensitive to both rising and falling edges and if the pulse is contained
within an RTIO period, or if it is sensitive only to one edge slope and
there are multiple pulses in an RTIO period, only the leading event is
seen. Thus this possibility of lost events is still there. Only the
conditions under which loss occurs are reduced.

In testing with the kasli-ptb6 variant, this also improves resource
usage (a couple hundred LUT) and timing (0.1 ns WNS).
2020-04-13 13:21:03 +02:00
Sébastien Bourdeauducq b7292f0195
RELEASE_NOTES: fix rst formatting further 2019-11-15 15:59:24 +08:00
Sébastien Bourdeauducq cf6a7f243f
RELEASE_NOTES: fix rst formatting 2019-11-15 15:56:17 +08:00
Sebastien Bourdeauducq 57979da59a RELEASE_NOTES: add ARTIQ-6 section 2019-11-15 13:49:54 +08:00
Sebastien Bourdeauducq eefc6ae80d update release notes 2019-11-15 13:07:16 +08:00
Sebastien Bourdeauducq e65303cfe9 RELEASE_NOTES: sipyco 2019-11-11 12:24:50 +08:00
Sebastien Bourdeauducq c96de7454d remove artiq_devtool 2019-10-30 21:27:24 +08:00
Sebastien Bourdeauducq 98caaebade consistent use of 'class name' terminology to select a class within an experiment file. Closes #1348 2019-09-09 15:16:33 +08:00
Astro 8fc5ce902f firmware: let kasli obtain default hardware_addr from i2c_eeprom 2019-08-17 09:15:26 +08:00
Sebastien Bourdeauducq 1a898c423a aqctl_corelog: filter log messages. Closes #1316 2019-06-13 18:17:52 +08:00
Sebastien Bourdeauducq 836dc9b927 RELEASE_NOTES: remove '5.0' section (#1326) 2019-06-13 18:15:50 +08:00
Sebastien Bourdeauducq 2ada5227f0 update documentation after moving controllers out-of-tree (#887) 2019-04-20 00:21:54 +08:00
Chris Ballance 8a5789d616 RELEASE_NOTES: mention methods to set experiment pipeline/priority/flush defaults 2019-03-12 10:54:15 +01:00
Sebastien Bourdeauducq b219f8b5c7 artiq_flash: autodetect variant 2019-03-08 19:47:24 +08:00
David Nadlinger bf84226c7d language: Support appending to datasets 2019-02-09 20:50:38 +00:00
David Nadlinger ef934ad958 Add test/release notes for command-less controllers
See eaa1b44b00 for the actual change.
2019-02-07 21:51:15 +00:00
David Nadlinger 05f6dafb2c RELEASE_NOTES: Mention new edge counter RTIO PHY 2019-01-15 10:55:07 +00:00
David Nadlinger 6c52359e59 coredevice: Add _mu suffix to AD991x ref_time arguments
GitHub: Fixes #1243.
2019-01-12 17:34:35 +00:00
Drew f2c1d32e54 frontend: add --version flag to cmd line args (#1181) 2019-01-12 09:47:47 +08:00
Sebastien Bourdeauducq bf50dcf76d conda: use misoc release 2018-11-20 17:15:53 +08:00
Sebastien Bourdeauducq 8f9858be4c ad9914: remove automatic continuous phase compensation (like Urukul) 2018-11-19 22:00:20 +08:00
David Nadlinger abad916383 RELEASE_NOTES: Fix typo 2018-11-03 20:33:19 +08:00
David Nadlinger 8b5df9c151 RELEASE_NOTES: TTL timeline cursor API changes 2018-11-03 20:33:19 +08:00
Sebastien Bourdeauducq 7f11411127 RELEASE_NOTES: 3.7 2018-11-03 20:17:28 +08:00
Sebastien Bourdeauducq 9793632282 enviromnment: rename 'save' in set_dataset to 'archive'. Closes #1171 2018-10-21 12:08:34 +08:00
Sebastien Bourdeauducq c172ec6de9 artiq_flash: target Kasli by default 2018-08-13 12:13:21 +08:00
Sebastien Bourdeauducq b10d3ee4b4 make RTIO clock switch optional and simplify
Kasli no longer has an internal RTIO clock.
Switching clocks dynamically is no longer supported.
2018-05-18 17:41:34 +08:00
Sebastien Bourdeauducq 3027951dd8 integrate new AD9914 driver
moninj, analyzer, docs, examples, tests.
2018-05-13 23:29:35 +08:00
Sebastien Bourdeauducq 28ccca412a doc: automatic artiq_flash proxy 2018-04-26 10:50:23 +08:00
Sebastien Bourdeauducq d6a63ad165 RELEASE_NOTES: formatting 2018-03-25 11:19:25 +08:00
Robert Jördens 22557294ac RELEASE_NOTES: ad53xx, zotino 2018-03-24 15:20:04 +01:00
Sebastien Bourdeauducq 9eb0218389 RELEASE_NOTES: add sections for major releases 2018-03-22 13:26:28 +08:00
Sebastien Bourdeauducq 06f24c6aa2 RELEASE_NOTES: update 2018-03-22 11:46:41 +08:00
Robert Jördens 1329e1a23e RELEASE_NOTES: add note about spi2 port 2018-03-01 11:19:18 +01:00
Sebastien Bourdeauducq be704b1533 RELEASE_NOTES: mention short options for artiq_flash 2018-02-22 01:32:12 +08:00
Sebastien Bourdeauducq 3231d8b235 RELEASE_NOTES: 3.3 2018-01-28 00:18:01 +08:00
Sebastien Bourdeauducq 25f3feeda8 refactor targets 2018-01-22 18:25:10 +08:00
Sebastien Bourdeauducq 5a79c9bc09 RELEASE_NOTES: add SED 2018-01-11 11:38:06 +08:00
Sebastien Bourdeauducq bd47a0371f RELEASE_NOTES: add 3.2 entry 2017-12-27 10:52:41 +08:00
Sebastien Bourdeauducq cbd69287a7 artiq_flash: select Sayma standalone variant by default 2017-12-22 16:54:06 +08:00