2016-03-19 06:48:12 +08:00
|
|
|
|
.. Add new releases at the top to keep important stuff directly visible.
|
|
|
|
|
|
2016-01-26 08:04:33 +08:00
|
|
|
|
Release notes
|
|
|
|
|
=============
|
|
|
|
|
|
2022-11-15 19:32:06 +08:00
|
|
|
|
ARTIQ-8 (Unreleased)
|
|
|
|
|
--------------------
|
2022-07-11 20:35:25 +08:00
|
|
|
|
|
|
|
|
|
Highlights:
|
|
|
|
|
|
2023-01-12 13:12:05 +08:00
|
|
|
|
* Hardware support:
|
|
|
|
|
- Implemented Phaser-servo. This requires recent gateware on Phaser.
|
|
|
|
|
- Implemented Phaser-MIQRO support. This requires the Phaser MIQRO gateware
|
|
|
|
|
variant.
|
|
|
|
|
- Sampler: fixed ADC MU to Volt conversion factor for Sampler v2.2+.
|
|
|
|
|
For earlier hardware versions, specify the hardware version in the device
|
|
|
|
|
database file (e.g. ``"hw_rev": "v2.1"``) to use the correct conversion factor.
|
|
|
|
|
- Metlino and Sayma support has been dropped due to complications with synchronous RTIO clocking.
|
|
|
|
|
* CPU (on softcore platforms) and AXI bus (on Zynq) are now clocked synchronously with the RTIO
|
|
|
|
|
clock, to facilitate implementation of local processing on DRTIO satellites, and to slightly
|
|
|
|
|
reduce RTIO latency.
|
|
|
|
|
* MSYS2 packaging for Windows, which replaces Conda. Conda packages are still available to
|
|
|
|
|
support legacy installations, but may be removed in a future release.
|
2022-12-02 16:27:03 +08:00
|
|
|
|
* Added channel names to RTIO errors.
|
2023-01-12 13:12:05 +08:00
|
|
|
|
* Full Python 3.10 support.
|
2022-07-11 20:35:25 +08:00
|
|
|
|
|
2021-02-17 16:14:16 +08:00
|
|
|
|
ARTIQ-7
|
|
|
|
|
-------
|
|
|
|
|
|
|
|
|
|
Highlights:
|
2021-07-05 21:22:34 +08:00
|
|
|
|
|
2021-12-14 00:05:49 +08:00
|
|
|
|
* New hardware support:
|
2022-07-08 17:51:02 +08:00
|
|
|
|
- Kasli-SoC, a new EEM carrier based on a Zynq SoC, enabling much faster kernel execution
|
|
|
|
|
(see: https://arxiv.org/abs/2111.15290).
|
|
|
|
|
- DRTIO support on Zynq-based devices (Kasli-SoC and ZC706).
|
|
|
|
|
- DRTIO support on KC705.
|
2021-12-14 00:05:49 +08:00
|
|
|
|
- HVAMP_8CH 8 channel HV amplifier for Fastino / Zotinos
|
2022-01-11 09:55:39 +08:00
|
|
|
|
- Almazny mezzanine board for Mirny
|
2022-07-08 17:51:02 +08:00
|
|
|
|
- Phaser: improved documentation, exposed the DAC coarse mixer and ``sif_sync``, exposed upconverter calibration
|
|
|
|
|
and enabling/disabling of upconverter LO & RF outputs, added helpers to align Phaser updates to the
|
2022-12-19 01:11:08 +08:00
|
|
|
|
RTIO timeline (``get_next_frame_mu()``).
|
2022-07-08 17:51:02 +08:00
|
|
|
|
- Urukul: ``get()``, ``get_mu()``, ``get_att()``, and ``get_att_mu()`` functions added for AD9910 and AD9912.
|
2021-07-05 21:22:34 +08:00
|
|
|
|
* Softcore targets now use the RISC-V architecture (VexRiscv) instead of OR1K (mor1kx).
|
2022-03-19 22:50:54 +08:00
|
|
|
|
* Gateware FPU is supported on KC705 and Kasli 2.0.
|
2021-12-14 00:05:49 +08:00
|
|
|
|
* Faster compilation for large arrays/lists.
|
2022-07-08 17:51:02 +08:00
|
|
|
|
* Faster exception handling.
|
|
|
|
|
* Several exception handling bugs fixed.
|
|
|
|
|
* Support for a simpler shared library system with faster calls into the runtime. This is only used by the NAC3
|
|
|
|
|
compiler (nac3ld) and improves RTIO output performance (test_pulse_rate) by 9-10%.
|
|
|
|
|
* Moninj improvements:
|
|
|
|
|
- Urukul monitoring and frequency setting (through dashboard) is now supported.
|
|
|
|
|
- Core device moninj is now proxied via the ``aqctl_moninj_proxy`` controller.
|
2022-03-19 22:50:54 +08:00
|
|
|
|
* The configuration entry ``rtio_clock`` supports multiple clocking settings, deprecating the usage
|
|
|
|
|
of compile-time options.
|
2022-07-08 17:51:02 +08:00
|
|
|
|
* Added support for 100MHz RTIO clock in DRTIO.
|
|
|
|
|
* Previously detected RTIO async errors are reported to the host after each kernel terminates and a
|
|
|
|
|
warning is logged. The warning is additional to the one already printed in the core device log
|
|
|
|
|
immediately upon detection of the error.
|
2022-03-19 22:50:54 +08:00
|
|
|
|
* Extended Kasli gateware JSON description with configuration for SPI over DIO.
|
2022-07-08 17:51:02 +08:00
|
|
|
|
* TTL outputs can be now configured to work as a clock generator from the JSON.
|
2021-12-03 17:05:35 +08:00
|
|
|
|
* On Kasli, the number of FIFO lanes in the scalable events dispatcher (SED) can now be configured in
|
2022-07-08 17:51:02 +08:00
|
|
|
|
the JSON.
|
2021-09-04 06:03:52 +08:00
|
|
|
|
* ``artiq_ddb_template`` generates edge-counter keys that start with the key of the corresponding
|
2022-02-11 14:23:56 +08:00
|
|
|
|
TTL device (e.g. ``ttl_0_counter`` for the edge counter on TTL device ``ttl_0``).
|
2021-10-14 13:17:52 +08:00
|
|
|
|
* ``artiq_master`` now has an ``--experiment-subdir`` option to scan only a subdirectory of the
|
|
|
|
|
repository when building the list of experiments.
|
2022-07-08 17:51:02 +08:00
|
|
|
|
* Experiments can now be submitted by-content.
|
|
|
|
|
* The master can now optionally log all experiments submitted into a CSV file.
|
2022-03-19 22:50:54 +08:00
|
|
|
|
* Removed worker DB warning for writing a dataset that is also in the archive.
|
2022-07-08 17:51:02 +08:00
|
|
|
|
* Experiments can now call ``scheduler.check_termination()`` to test if the user
|
|
|
|
|
has requested graceful termination.
|
|
|
|
|
* ARTIQ command-line programs and controllers now exit cleanly on Ctrl-C.
|
|
|
|
|
* ``artiq_coremgmt reboot`` now reloads gateware as well, providing a more thorough and reliable
|
|
|
|
|
device reset (7-series FPGAs only).
|
|
|
|
|
* Firmware and gateware can now be built on-demand on the M-Labs server using ``afws_client``
|
|
|
|
|
(subscribers only). Self-compilation remains possible.
|
|
|
|
|
* Easier-to-use packaging via Nix Flakes.
|
|
|
|
|
* Python 3.10 support (experimental).
|
2020-11-17 04:10:56 +08:00
|
|
|
|
|
2021-02-17 16:14:16 +08:00
|
|
|
|
Breaking changes:
|
2021-07-05 21:22:34 +08:00
|
|
|
|
|
2021-12-14 00:05:49 +08:00
|
|
|
|
* Due to the new RISC-V CPU, the device database entry for the core device needs to be updated.
|
|
|
|
|
The ``target`` parameter needs to be set to ``rv32ima`` for Kasli 1.x and to ``rv32g`` for all
|
|
|
|
|
other boards. Freshly generated device database templates already contain this update.
|
2021-04-15 00:29:09 +08:00
|
|
|
|
* Updated Phaser-Upconverter default frequency 2.875 GHz. The new default uses the target PFD
|
|
|
|
|
frequency of the hardware design.
|
2021-07-05 21:22:34 +08:00
|
|
|
|
* ``Phaser.init()`` now disables all Kasli-oscillators. This avoids full power RF output being
|
2021-04-15 00:29:09 +08:00
|
|
|
|
generated for some configurations.
|
|
|
|
|
* Phaser: fixed coarse mixer frequency configuration
|
2021-07-08 10:03:13 +08:00
|
|
|
|
* Mirny: Added extra delays in ``ADF5356.sync()``. This avoids the need of an extra delay before
|
2022-12-19 01:26:58 +08:00
|
|
|
|
calling ``ADF5356.init()``.
|
2021-12-01 22:41:34 +08:00
|
|
|
|
* The deprecated ``set_dataset(..., save=...)`` is no longer supported.
|
2022-12-19 01:26:58 +08:00
|
|
|
|
* The ``PCA9548`` I2C switch class was renamed to ``I2CSwitch``, to accommodate support for PCA9547,
|
2022-07-08 17:51:02 +08:00
|
|
|
|
and possibly other switches in future. Readback has been removed, and now only one channel per
|
|
|
|
|
switch is supported.
|
|
|
|
|
|
2021-02-17 16:14:16 +08:00
|
|
|
|
|
2019-11-15 13:49:54 +08:00
|
|
|
|
ARTIQ-6
|
|
|
|
|
-------
|
|
|
|
|
|
|
|
|
|
Highlights:
|
|
|
|
|
|
2020-10-15 16:42:28 +08:00
|
|
|
|
* New hardware support:
|
2021-02-17 15:50:26 +08:00
|
|
|
|
- Phaser, a quad channel 1GS/s RF generator card with dual IQ upconverter and dual 5MS/s
|
|
|
|
|
ADC and FPGA.
|
2021-07-05 21:22:34 +08:00
|
|
|
|
- Zynq SoC core device (ZC706), enabling kernels to run on 1 GHz CPU core with a floating-point
|
2020-10-15 16:45:17 +08:00
|
|
|
|
unit for faster computations. This currently requires an external
|
2021-02-17 15:50:26 +08:00
|
|
|
|
repository (https://git.m-labs.hk/m-labs/artiq-zynq).
|
2020-10-15 16:45:17 +08:00
|
|
|
|
- Mirny 4-channel wide-band PLL/VCO-based microwave frequency synthesiser
|
|
|
|
|
- Fastino 32-channel, 3MS/s per channel, 16-bit DAC EEM
|
2021-02-17 15:50:26 +08:00
|
|
|
|
- Kasli 2.0, an improved core device with 12 built-in EEM slots, faster FPGA, 4 SFPs, and
|
|
|
|
|
high-precision clock recovery circuitry for DRTIO (to be supported in ARTIQ-7).
|
2020-11-10 23:40:10 +08:00
|
|
|
|
* ARTIQ Python (core device kernels):
|
2020-11-11 03:37:05 +08:00
|
|
|
|
- Multidimensional arrays are now available on the core device, using NumPy syntax.
|
|
|
|
|
Elementwise operations (e.g. ``+``, ``/``), matrix multiplication (``@``) and
|
|
|
|
|
multidimensional indexing are supported; slices and views are not yet.
|
|
|
|
|
- Trigonometric and other common math functions from NumPy are now available on the
|
|
|
|
|
core device (e.g. ``numpy.sin``), both for scalar arguments and implicitly
|
|
|
|
|
broadcast across multidimensional arrays.
|
|
|
|
|
- Failed assertions now raise ``AssertionError``\ s instead of aborting kernel
|
|
|
|
|
execution.
|
2020-03-01 01:19:27 +08:00
|
|
|
|
* Performance improvements:
|
2020-10-15 16:51:02 +08:00
|
|
|
|
- SERDES TTL inputs can now detect edges on pulses that are shorter
|
|
|
|
|
than the RTIO period (https://github.com/m-labs/artiq/issues/1432)
|
2020-10-07 19:24:34 +08:00
|
|
|
|
- Improved performance for kernel RPC involving list and array.
|
2020-10-15 16:42:28 +08:00
|
|
|
|
* Coredevice SI to mu conversions now always return valid codes, or raise a ``ValueError``.
|
2020-10-15 16:45:17 +08:00
|
|
|
|
* Zotino now exposes ``voltage_to_mu()``
|
2021-12-13 23:44:03 +08:00
|
|
|
|
* ``ad9910``:
|
|
|
|
|
- The maximum amplitude scale factor is now ``0x3fff`` (was ``0x3ffe`` before).
|
|
|
|
|
- The default single-tone profile is now 7 (was 0).
|
|
|
|
|
- Added option to ``set_mu()`` that affects the ASF, FTW and POW registers
|
|
|
|
|
instead of the single-tone profile register.
|
2021-01-30 01:46:47 +08:00
|
|
|
|
* Mirny now supports HW revision independent, human readable ``clk_sel`` parameters:
|
|
|
|
|
"XO", "SMA", and "MMCX". Passing an integer is backwards compatible.
|
2020-06-25 23:38:27 +08:00
|
|
|
|
* Dashboard:
|
|
|
|
|
- Applets now restart if they are running and a ccb call changes their spec
|
|
|
|
|
- A "Quick Open" dialog to open experiments by typing part of their name can
|
|
|
|
|
be brought up Ctrl-P (Ctrl+Return to immediately submit the selected entry
|
|
|
|
|
with the default arguments).
|
2021-01-17 18:46:51 +08:00
|
|
|
|
- The Applets dock now has a context menu command to quickly close all open
|
|
|
|
|
applets (shortcut: Ctrl-Alt-W).
|
2021-02-17 15:50:26 +08:00
|
|
|
|
* Experiment results are now always saved to HDF5, even if ``run()`` fails.
|
2020-07-01 04:44:36 +08:00
|
|
|
|
* Core device: ``panic_reset 1`` now correctly resets the kernel CPU as well if
|
|
|
|
|
communication CPU panic occurs.
|
2020-07-23 18:49:21 +08:00
|
|
|
|
* NumberValue accepts a ``type`` parameter specifying the output as ``int`` or ``float``
|
2020-10-15 16:42:28 +08:00
|
|
|
|
* A parameter ``--identifier-str`` has been added to many targets to aid
|
2020-08-28 05:56:57 +08:00
|
|
|
|
with reproducible builds.
|
2020-10-15 16:42:28 +08:00
|
|
|
|
* Python 3.7 support in Conda packages.
|
2020-12-30 02:28:16 +08:00
|
|
|
|
* `kasli_generic` JSON descriptions are now validated against a
|
2021-02-10 07:52:23 +08:00
|
|
|
|
schema. Description defaults have moved from Python to the
|
|
|
|
|
schema. Warns if ARTIQ version is too old.
|
2020-03-01 01:19:27 +08:00
|
|
|
|
|
2019-11-15 13:49:54 +08:00
|
|
|
|
Breaking changes:
|
|
|
|
|
|
2020-10-15 16:42:28 +08:00
|
|
|
|
* ``artiq_netboot`` has been moved to its own repository at
|
|
|
|
|
https://git.m-labs.hk/m-labs/artiq-netboot
|
|
|
|
|
* Core device watchdogs have been removed.
|
2020-11-11 03:37:05 +08:00
|
|
|
|
* The ARTIQ compiler now implements arrays following NumPy semantics, rather than as a
|
|
|
|
|
thin veneer around lists. Most prior use cases of NumPy arrays in kernels should work
|
|
|
|
|
unchanged with the new implementation, but the behavior might differ slightly in some
|
|
|
|
|
cases (for instance, non-rectangular arrays are not currently supported).
|
2020-12-12 21:50:11 +08:00
|
|
|
|
* ``quamash`` has been replaced with ``qasync``.
|
2021-01-22 16:33:21 +08:00
|
|
|
|
* Protocols are updated to use device endian.
|
|
|
|
|
* Analyzer dump format includes a byte for device endianness.
|
2021-11-15 12:09:16 +08:00
|
|
|
|
* To support variable numbers of Urukul cards in the future, the
|
|
|
|
|
``artiq.coredevice.suservo.SUServo`` constructor now accepts two device name lists,
|
|
|
|
|
``cpld_devices`` and ``dds_devices``, rather than four individual arguments.
|
2021-02-12 06:01:54 +08:00
|
|
|
|
* Experiment classes with underscore-prefixed names are now ignored when ``artiq_client``
|
|
|
|
|
determines which experiment to submit (consistent with ``artiq_run``).
|
2019-11-15 13:49:54 +08:00
|
|
|
|
|
2018-11-20 17:15:53 +08:00
|
|
|
|
ARTIQ-5
|
|
|
|
|
-------
|
|
|
|
|
|
2019-11-15 13:07:16 +08:00
|
|
|
|
Highlights:
|
|
|
|
|
|
|
|
|
|
* Performance improvements:
|
2019-11-15 15:59:24 +08:00
|
|
|
|
- Faster RTIO event submission (1.5x improvement in pulse rate test)
|
|
|
|
|
See: https://github.com/m-labs/artiq/issues/636
|
|
|
|
|
- Faster compilation times (3 seconds saved on kernel compilation time on a typical
|
|
|
|
|
medium-size experiment)
|
|
|
|
|
See: https://github.com/m-labs/artiq/commit/611bcc4db4ed604a32d9678623617cd50e968cbf
|
2019-11-15 13:07:16 +08:00
|
|
|
|
* Improved packaging and build system:
|
2019-11-15 15:59:24 +08:00
|
|
|
|
- new continuous integration/delivery infrastructure based on Nix and Hydra,
|
|
|
|
|
providing reproducibility, speed and independence.
|
|
|
|
|
- rolling release process (https://github.com/m-labs/artiq/issues/1326).
|
|
|
|
|
- firmware, gateware and device database templates are automatically built for all
|
|
|
|
|
supported Kasli variants.
|
|
|
|
|
- new JSON description format for generic Kasli systems.
|
|
|
|
|
- Nix packages are now supported.
|
|
|
|
|
- many Conda problems worked around.
|
|
|
|
|
- controllers are now out-of-tree.
|
|
|
|
|
- split packages that enable lightweight applications that communicate with ARTIQ,
|
|
|
|
|
e.g. controllers running on non-x86 single-board computers.
|
2019-11-15 13:07:16 +08:00
|
|
|
|
* Improved Urukul support:
|
2019-11-15 15:59:24 +08:00
|
|
|
|
- AD9910 RAM mode.
|
|
|
|
|
- Configurable refclk divider and PLL bypass.
|
|
|
|
|
- More reliable phase synchronization at high sample rates.
|
|
|
|
|
- Synchronization calibration data can be read from EEPROM.
|
2019-01-13 03:37:03 +08:00
|
|
|
|
* A gateware-level input edge counter has been added, which offers higher
|
|
|
|
|
throughput and increased flexibility over the usual TTL input PHYs where
|
2020-10-15 16:57:53 +08:00
|
|
|
|
edge timestamps are not required. See ``artiq.coredevice.edge_counter`` for
|
2020-10-15 16:42:43 +08:00
|
|
|
|
the core device driver and ``artiq.gateware.rtio.phy.edge_counter``/
|
|
|
|
|
``artiq.gateware.eem.DIO.add_std`` for the gateware components.
|
2019-11-15 13:07:16 +08:00
|
|
|
|
* With DRTIO, Siphaser uses a better calibration mechanism.
|
|
|
|
|
See: https://github.com/m-labs/artiq/commit/cc58318500ecfa537abf24127f2c22e8fe66e0f8
|
|
|
|
|
* Schedule updates can be sent to influxdb (artiq_influxdb_schedule).
|
|
|
|
|
* Experiments can now programatically set their default pipeline, priority, and flush flag.
|
2018-06-25 17:52:25 +08:00
|
|
|
|
* List datasets can now be efficiently appended to from experiments using
|
2020-10-15 16:42:43 +08:00
|
|
|
|
``artiq.language.environment.HasEnvironment.append_to_dataset``.
|
2019-11-15 13:07:16 +08:00
|
|
|
|
* The core device now supports IPv6.
|
|
|
|
|
* To make development easier, the bootloader can receive firmware and secondary FPGA
|
|
|
|
|
gateware from the network.
|
|
|
|
|
* Python 3.7 compatibility (Nix and source builds only, no Conda).
|
|
|
|
|
* Various other bugs from 4.0 fixed.
|
|
|
|
|
* Preliminary Sayma v2 and Metlino hardware support.
|
|
|
|
|
|
|
|
|
|
Breaking changes:
|
|
|
|
|
|
2020-10-15 16:42:43 +08:00
|
|
|
|
* The ``artiq.coredevice.ad9910.AD9910`` and
|
|
|
|
|
``artiq.coredevice.ad9914.AD9914`` phase reference timestamp parameters
|
2019-11-15 13:07:16 +08:00
|
|
|
|
have been renamed to ``ref_time_mu`` for consistency, as they are in machine
|
|
|
|
|
units.
|
2019-02-08 05:51:08 +08:00
|
|
|
|
* The controller manager now ignores device database entries without the
|
2019-11-15 13:07:16 +08:00
|
|
|
|
``command`` key set to facilitate sharing of devices between multiple
|
2019-02-08 05:51:08 +08:00
|
|
|
|
masters.
|
2019-03-08 19:47:24 +08:00
|
|
|
|
* The meaning of the ``-d/--dir`` and ``--srcbuild`` options of ``artiq_flash``
|
|
|
|
|
has changed.
|
2019-04-20 00:21:54 +08:00
|
|
|
|
* Controllers for third-party devices are now out-of-tree.
|
2019-06-13 18:17:52 +08:00
|
|
|
|
* ``aqctl_corelog`` now filters log messages below the ``WARNING`` level by default.
|
|
|
|
|
This behavior can be changed using the ``-v`` and ``-q`` options like the other
|
|
|
|
|
programs.
|
2019-08-13 08:02:51 +08:00
|
|
|
|
* On Kasli the firmware now starts with a unique default MAC address
|
|
|
|
|
from EEPROM if `mac` is absent from the flash config.
|
2019-09-09 15:16:33 +08:00
|
|
|
|
* The ``-e/--experiment`` switch of ``artiq_run`` and ``artiq_compile``
|
|
|
|
|
has been renamed ``-c/--class-name``.
|
2019-10-30 21:26:26 +08:00
|
|
|
|
* ``artiq_devtool`` has been removed.
|
2019-11-11 12:24:50 +08:00
|
|
|
|
* Much of ``artiq.protocols`` has been moved to a separate package ``sipyco``.
|
|
|
|
|
``artiq_rpctool`` has been renamed to ``sipyco_rpctool``.
|
2018-11-20 17:15:53 +08:00
|
|
|
|
|
|
|
|
|
|
2018-03-22 13:26:28 +08:00
|
|
|
|
ARTIQ-4
|
|
|
|
|
-------
|
|
|
|
|
|
2018-01-11 11:38:06 +08:00
|
|
|
|
4.0
|
2018-03-22 13:26:28 +08:00
|
|
|
|
***
|
2017-09-30 00:29:54 +08:00
|
|
|
|
|
2019-01-13 03:37:03 +08:00
|
|
|
|
* The ``artiq.coredevice.ttl`` drivers no longer track the timestamps of
|
2018-10-26 23:54:46 +08:00
|
|
|
|
submitted events in software, requiring the user to explicitly specify the
|
|
|
|
|
timeout for ``count()``/``timestamp_mu()``. Support for ``sync()`` has been dropped.
|
|
|
|
|
|
|
|
|
|
Now that RTIO has gained DMA support, there is no longer a reliable way for
|
|
|
|
|
the kernel CPU to track the individual events submitted on any one channel.
|
|
|
|
|
Requiring the timeouts to be specified explicitly ensures consistent API
|
|
|
|
|
behavior. To make this more convenient, the ``TTLInOut.gate_*()`` functions
|
|
|
|
|
now return the cursor position at the end of the gate, e.g.::
|
|
|
|
|
|
|
|
|
|
ttl_input.count(ttl_input.gate_rising(100 * us))
|
|
|
|
|
|
|
|
|
|
In most situations – that is, unless the timeline cursor is rewound after the
|
|
|
|
|
respective ``gate_*()`` call – simply passing ``now_mu()`` is also a valid
|
|
|
|
|
upgrade path::
|
|
|
|
|
|
|
|
|
|
ttl_input.count(now_mu())
|
|
|
|
|
|
|
|
|
|
The latter might use up more timeline slack than necessary, though.
|
|
|
|
|
|
|
|
|
|
In place of ``TTL(In)Out.sync``, the new ``Core.wait_until_mu()`` method can
|
|
|
|
|
be used, which blocks execution until the hardware RTIO cursor reaches the
|
|
|
|
|
given timestamp::
|
|
|
|
|
|
|
|
|
|
ttl_output.pulse(10 * us)
|
|
|
|
|
self.core.wait_until_mu(now_mu())
|
2018-01-11 11:38:06 +08:00
|
|
|
|
* RTIO outputs use a new architecture called Scalable Event Dispatcher (SED),
|
|
|
|
|
which allows building systems with large number of RTIO channels more
|
|
|
|
|
efficiently.
|
|
|
|
|
From the user perspective, collision errors become asynchronous, and non-
|
|
|
|
|
monotonic timestamps on any combination of channels are generally allowed
|
|
|
|
|
(instead of producing sequence errors).
|
|
|
|
|
RTIO inputs are not affected.
|
2017-10-23 15:04:30 +08:00
|
|
|
|
* The DDS channel number for the NIST CLOCK target has changed.
|
2017-11-25 19:55:21 +08:00
|
|
|
|
* The dashboard configuration files are now stored one-per-master, keyed by the
|
|
|
|
|
server address argument and the notify port.
|
|
|
|
|
* The master now has a ``--name`` argument. If given, the dashboard is labelled
|
|
|
|
|
with this name rather than the server address.
|
2018-08-13 12:12:36 +08:00
|
|
|
|
* ``artiq_flash`` targets Kasli by default. Use ``-t kc705`` to flash a KC705
|
|
|
|
|
instead.
|
2018-02-22 01:32:12 +08:00
|
|
|
|
* ``artiq_flash -m/--adapter`` has been changed to ``artiq_flash -V/--variant``.
|
2018-04-26 10:49:41 +08:00
|
|
|
|
* The ``proxy`` action of ``artiq_flash`` is determined automatically and should
|
|
|
|
|
not be specified manually anymore.
|
2018-01-22 18:25:10 +08:00
|
|
|
|
* ``kc705_dds`` has been renamed ``kc705``.
|
2018-10-28 12:12:40 +08:00
|
|
|
|
* The ``-H/--hw-adapter`` option of ``kc705`` has been renamed ``-V/--variant``.
|
2018-02-24 00:26:59 +08:00
|
|
|
|
* SPI masters have been switched from misoc-spi to misoc-spi2. This affects
|
|
|
|
|
all out-of-tree RTIO core device drivers using those buses. See the various
|
2018-03-24 22:20:04 +08:00
|
|
|
|
commits on e.g. the ``ad53xx`` driver for an example how to port from the old
|
2018-02-24 00:26:59 +08:00
|
|
|
|
to the new bus.
|
2018-03-24 22:20:04 +08:00
|
|
|
|
* The ``ad5360`` coredevice driver has been renamed to ``ad53xx`` and the API
|
|
|
|
|
has changed to better support Zotino.
|
2018-05-13 23:29:35 +08:00
|
|
|
|
* ``artiq.coredevice.dds`` has been renamed to ``artiq.coredevice.ad9914`` and
|
|
|
|
|
simplified. DDS batch mode is no longer supported. The ``core_dds`` device
|
|
|
|
|
is no longer necessary.
|
2018-05-18 17:41:32 +08:00
|
|
|
|
* The configuration entry ``startup_clock`` is renamed ``rtio_clock``. Switching
|
|
|
|
|
clocks dynamically (i.e. without device restart) is no longer supported.
|
2018-10-21 12:08:34 +08:00
|
|
|
|
* ``set_dataset(..., save=True)`` has been renamed
|
|
|
|
|
``set_dataset(..., archive=True)``.
|
2018-11-19 22:00:20 +08:00
|
|
|
|
* On the AD9914 DDS, when switching to ``PHASE_MODE_CONTINUOUS`` from another mode,
|
|
|
|
|
use the returned value of the last ``set_mu`` call as the phase offset for
|
|
|
|
|
``PHASE_MODE_CONTINUOUS`` to avoid a phase discontinuity. This is no longer done
|
|
|
|
|
automatically. If one phase glitch when entering ``PHASE_MODE_CONTINUOUS`` is not
|
|
|
|
|
an issue, this recommendation can be ignored.
|
2018-03-22 11:46:41 +08:00
|
|
|
|
|
2018-03-25 11:19:25 +08:00
|
|
|
|
|
2018-03-22 13:26:28 +08:00
|
|
|
|
ARTIQ-3
|
|
|
|
|
-------
|
|
|
|
|
|
2018-11-03 20:17:28 +08:00
|
|
|
|
3.7
|
|
|
|
|
***
|
|
|
|
|
|
|
|
|
|
No further notes.
|
|
|
|
|
|
|
|
|
|
|
2018-03-22 11:46:41 +08:00
|
|
|
|
3.6
|
2018-03-22 13:26:28 +08:00
|
|
|
|
***
|
2018-03-22 11:46:41 +08:00
|
|
|
|
|
|
|
|
|
No further notes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3.5
|
2018-03-22 13:26:28 +08:00
|
|
|
|
***
|
2018-03-22 11:46:41 +08:00
|
|
|
|
|
|
|
|
|
No further notes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3.4
|
2018-03-22 13:26:28 +08:00
|
|
|
|
***
|
2018-03-22 11:46:41 +08:00
|
|
|
|
|
|
|
|
|
No further notes.
|
|
|
|
|
|
|
|
|
|
|
2018-01-28 00:17:43 +08:00
|
|
|
|
3.3
|
2018-03-22 13:26:28 +08:00
|
|
|
|
***
|
2018-01-28 00:17:43 +08:00
|
|
|
|
|
|
|
|
|
No further notes.
|
|
|
|
|
|
|
|
|
|
|
2017-12-27 10:52:41 +08:00
|
|
|
|
3.2
|
2018-03-22 13:26:28 +08:00
|
|
|
|
***
|
2017-12-27 10:52:41 +08:00
|
|
|
|
|
|
|
|
|
* To accommodate larger runtimes, the flash layout as changed. As a result, the
|
|
|
|
|
contents of the flash storage will be lost when upgrading. Set the values back
|
|
|
|
|
(IP, MAC address, startup kernel, etc.) after the upgrade.
|
|
|
|
|
|
|
|
|
|
|
2017-12-07 13:23:11 +08:00
|
|
|
|
3.1
|
2018-03-22 13:26:28 +08:00
|
|
|
|
***
|
2017-12-07 13:23:11 +08:00
|
|
|
|
|
|
|
|
|
No further notes.
|
|
|
|
|
|
|
|
|
|
|
2017-09-29 16:37:36 +08:00
|
|
|
|
3.0
|
2018-03-22 13:26:28 +08:00
|
|
|
|
***
|
2016-09-04 23:32:09 +08:00
|
|
|
|
|
2017-09-30 01:10:10 +08:00
|
|
|
|
* The ``--embed`` option of applets is replaced with the environment variable
|
2017-05-22 19:05:39 +08:00
|
|
|
|
``ARTIQ_APPLET_EMBED``. The GUI sets this enviroment variable itself and the
|
|
|
|
|
user simply needs to remove the ``--embed`` argument.
|
2017-09-30 01:10:10 +08:00
|
|
|
|
* ``EnvExperiment``'s ``prepare`` calls ``prepare`` for all its children.
|
2017-05-22 19:05:39 +08:00
|
|
|
|
* Dynamic ``__getattr__``'s returning RPC target methods are not supported anymore.
|
2016-09-14 11:22:07 +08:00
|
|
|
|
Controller driver classes must define all their methods intended for RPC as
|
|
|
|
|
members.
|
2016-10-18 17:08:36 +08:00
|
|
|
|
* Datasets requested by experiments are by default archived into their HDF5
|
|
|
|
|
output. If this behavior is undesirable, turn it off by passing
|
|
|
|
|
``archive=False`` to ``get_dataset``.
|
2016-11-21 23:51:39 +08:00
|
|
|
|
* ``seconds_to_mu`` and ``mu_to_seconds`` have become methods of the core
|
|
|
|
|
device driver (use e.g. ``self.core.seconds_to_mu()``).
|
|
|
|
|
* AD9858 DDSes and NIST QC1 hardware are no longer supported.
|
|
|
|
|
* The DDS class names and setup options have changed, this requires an update of
|
|
|
|
|
the device database.
|
2016-11-24 21:24:12 +08:00
|
|
|
|
* ``int(a, width=b)`` has been removed. Use ``int32(a)`` and ``int64(a)``.
|
2017-09-30 01:10:10 +08:00
|
|
|
|
* The KC705 gateware target has been renamed ``kc705_dds``.
|
2017-02-27 18:37:30 +08:00
|
|
|
|
* ``artiq.coredevice.comm_tcp`` has been renamed ``artiq.coredevice.comm_kernel``,
|
|
|
|
|
and ``Comm`` has been renamed ``CommKernel``.
|
2017-03-27 16:32:23 +08:00
|
|
|
|
* The "collision" and "busy" RTIO errors are reported through the log instead of
|
|
|
|
|
raising exceptions.
|
2017-03-27 17:53:07 +08:00
|
|
|
|
* Results are still saved when ``analyze`` raises an exception.
|
2017-05-15 17:21:54 +08:00
|
|
|
|
* ``LinearScan`` and ``RandomScan`` have been consolidated into RangeScan.
|
2017-05-15 17:17:44 +08:00
|
|
|
|
* The Pipistrello is no longer supported. For a low-cost ARTIQ setup, use either
|
2017-06-20 12:18:34 +08:00
|
|
|
|
ARTIQ 2.x with Pipistrello, or the future ARTIQ 4.x with Kasli. Note that the
|
|
|
|
|
Pipistrello board has also been discontinued by the manufacturer but its design
|
|
|
|
|
files are freely available.
|
2017-05-18 23:14:20 +08:00
|
|
|
|
* The device database is now generated by an executable Python script. To migrate
|
|
|
|
|
an existing database, add ``device_db = `` at the beginning, and replace any PYON
|
|
|
|
|
identifiers (``true``, ``null``, ...) with their Python equivalents
|
2017-05-22 19:05:39 +08:00
|
|
|
|
(``True``, ``None`` ...).
|
2017-05-22 00:22:10 +08:00
|
|
|
|
* Controllers are now named ``aqctl_XXX`` instead of ``XXX_controller``.
|
2017-09-30 01:10:10 +08:00
|
|
|
|
* In the device database, the ``comm`` device has been folded into the ``core`` device.
|
|
|
|
|
Move the "host" argument into the ``core`` device, and remove the ``comm`` device.
|
2017-05-22 16:48:00 +08:00
|
|
|
|
* The core device log now contains important information about events such as
|
|
|
|
|
RTIO collisions. A new controller ``aqctl_corelog`` must be running to forward
|
|
|
|
|
those logs to the master. See the example device databases to see how to
|
|
|
|
|
instantiate this controller. Using ``artiq_session`` ensures that a controller
|
|
|
|
|
manager is running simultaneously with the master.
|
2017-05-22 18:43:59 +08:00
|
|
|
|
* Experiments scheduled with the "flush pipeline" option now proceed when there
|
|
|
|
|
are lower-priority experiments in the pipeline. Only experiments at the current
|
|
|
|
|
(or higher) priority level are flushed.
|
2017-07-19 23:35:28 +08:00
|
|
|
|
* The PDQ(2/3) driver has been removed and is now being maintained out-of tree
|
|
|
|
|
at https://github.com/m-labs/pdq. All SPI/USB driver layers, Mediator,
|
|
|
|
|
CompoundPDQ and examples/documentation has been moved.
|
2017-08-03 07:31:04 +08:00
|
|
|
|
* The master now rotates log files at midnight, rather than based on log size.
|
2017-09-30 01:10:10 +08:00
|
|
|
|
* The results keys ``start_time`` and ``run_time`` are now stored as doubles of UNIX time,
|
2017-08-03 19:56:15 +08:00
|
|
|
|
rather than ints. The file names are still based on local time.
|
2017-09-29 23:14:21 +08:00
|
|
|
|
* Packages are no longer available for 32-bit Windows.
|
2017-03-31 16:54:07 +08:00
|
|
|
|
|
2016-09-04 23:32:09 +08:00
|
|
|
|
|
2018-03-22 13:26:28 +08:00
|
|
|
|
ARTIQ-2
|
|
|
|
|
-------
|
|
|
|
|
|
2017-10-02 12:16:46 +08:00
|
|
|
|
2.5
|
2018-03-22 13:26:28 +08:00
|
|
|
|
***
|
2017-06-22 00:38:49 +08:00
|
|
|
|
|
|
|
|
|
No further notes.
|
|
|
|
|
|
|
|
|
|
|
2017-10-02 12:16:46 +08:00
|
|
|
|
2.4
|
2018-03-22 13:26:28 +08:00
|
|
|
|
***
|
2017-10-02 12:16:46 +08:00
|
|
|
|
|
|
|
|
|
No further notes.
|
|
|
|
|
|
2017-06-22 00:38:49 +08:00
|
|
|
|
|
2017-04-13 00:55:16 +08:00
|
|
|
|
2.3
|
2018-03-22 13:26:28 +08:00
|
|
|
|
***
|
2017-04-13 00:55:16 +08:00
|
|
|
|
|
|
|
|
|
* When using conda, add the conda-forge channel before installing ARTIQ.
|
|
|
|
|
|
|
|
|
|
|
2017-02-02 18:09:19 +08:00
|
|
|
|
2.2
|
2018-03-22 13:26:28 +08:00
|
|
|
|
***
|
2017-02-02 18:09:19 +08:00
|
|
|
|
|
|
|
|
|
No further notes.
|
|
|
|
|
|
|
|
|
|
|
2016-12-12 13:12:18 +08:00
|
|
|
|
2.1
|
2018-03-22 13:26:28 +08:00
|
|
|
|
***
|
2016-12-12 13:12:18 +08:00
|
|
|
|
|
|
|
|
|
No further notes.
|
|
|
|
|
|
|
|
|
|
|
2016-09-24 06:41:39 +08:00
|
|
|
|
2.0
|
2018-03-22 13:26:28 +08:00
|
|
|
|
***
|
2016-09-24 06:41:39 +08:00
|
|
|
|
|
|
|
|
|
No further notes.
|
|
|
|
|
|
|
|
|
|
|
2016-09-15 09:53:36 +08:00
|
|
|
|
2.0rc2
|
2018-03-22 13:26:28 +08:00
|
|
|
|
******
|
2016-09-15 09:53:36 +08:00
|
|
|
|
|
|
|
|
|
No further notes.
|
|
|
|
|
|
|
|
|
|
|
2016-09-04 22:33:33 +08:00
|
|
|
|
2.0rc1
|
2018-03-22 13:26:28 +08:00
|
|
|
|
******
|
2016-03-31 00:28:28 +08:00
|
|
|
|
|
|
|
|
|
* The format of the influxdb pattern file is simplified. The procedure to
|
|
|
|
|
edit patterns is also changed to modifying the pattern file and calling:
|
|
|
|
|
``artiq_rpctool.py ::1 3248 call scan_patterns`` (or restarting the bridge)
|
|
|
|
|
The patterns can be converted to the new format using this code snippet::
|
|
|
|
|
|
|
|
|
|
from artiq.protocols import pyon
|
|
|
|
|
patterns = pyon.load_file("influxdb_patterns.pyon")
|
|
|
|
|
for p in patterns:
|
|
|
|
|
print(p)
|
2016-04-10 16:28:25 +08:00
|
|
|
|
|
2016-04-05 13:59:58 +08:00
|
|
|
|
* The "GUI" has been renamed the "dashboard".
|
2016-04-05 16:07:29 +08:00
|
|
|
|
* When flashing NIST boards, use "-m nist_qcX" or "-m nist_clock" instead of
|
|
|
|
|
just "-m qcX" or "-m clock" (#290).
|
2016-04-06 17:02:26 +08:00
|
|
|
|
* Applet command lines now use templates (e.g. $python) instead of formats
|
|
|
|
|
(e.g. {python}).
|
2016-04-10 16:28:25 +08:00
|
|
|
|
* On Windows, GUI applications no longer open a console. For debugging
|
|
|
|
|
purposes, the console messages can still be displayed by running the GUI
|
|
|
|
|
applications this way::
|
|
|
|
|
|
|
|
|
|
python3.5 -m artiq.frontend.artiq_browser
|
|
|
|
|
python3.5 -m artiq.frontend.artiq_dashboard
|
|
|
|
|
|
|
|
|
|
(you may need to replace python3.5 with python)
|
|
|
|
|
Please always include the console output when reporting a GUI crash.
|
2016-04-15 01:13:53 +08:00
|
|
|
|
* The result folders are formatted "%Y-%m-%d/%H instead of "%Y-%m-%d/%H-%M".
|
|
|
|
|
(i.e. grouping by day and then by hour, instead of by day and then by minute)
|
2016-04-16 19:31:07 +08:00
|
|
|
|
* The ``parent`` keyword argument of ``HasEnvironment`` (and ``EnvExperiment``)
|
|
|
|
|
has been replaced. Pass the parent as first argument instead.
|
2016-09-02 08:20:45 +08:00
|
|
|
|
* During experiment examination (and a fortiori repository scan), the values of
|
|
|
|
|
all arguments are set to ``None`` regardless of any default values supplied.
|
2016-05-05 00:51:30 +08:00
|
|
|
|
* In the dashboard's experiment windows, partial or full argument recomputation
|
|
|
|
|
takes into account the repository revision field.
|
2016-05-29 02:37:18 +08:00
|
|
|
|
* By default, ``NumberValue`` and ``Scannable`` infer the scale from the unit
|
|
|
|
|
for common units.
|
2016-07-07 12:41:03 +08:00
|
|
|
|
* By default, artiq_client keeps the current persist flag on the master.
|
2016-07-18 23:03:57 +08:00
|
|
|
|
* GUI state files for the browser and the dashboard are stores in "standard"
|
|
|
|
|
locations for each operating system. Those are
|
|
|
|
|
``~/.config/artiq/2/artiq_*.pyon`` on Linux and
|
|
|
|
|
``C:\Users\<username>\AppData\Local\m-labs\artiq\2\artiq_*.pyon`` on
|
|
|
|
|
Windows 7.
|
2016-07-19 23:21:11 +08:00
|
|
|
|
* The position of the time cursor is kept across experiments and RTIO resets
|
|
|
|
|
are manual and explicit (inter-experiment seamless handover).
|
2016-08-03 14:17:38 +08:00
|
|
|
|
* All integers manipulated by kernels are numpy integers (numpy.int32,
|
|
|
|
|
numpy.int64). If you pass an integer as a RPC argument, the target function
|
|
|
|
|
receives a numpy type.
|
2016-03-31 00:28:28 +08:00
|
|
|
|
|
2016-09-15 09:53:36 +08:00
|
|
|
|
|
2018-03-22 13:26:28 +08:00
|
|
|
|
ARTIQ-1
|
|
|
|
|
-------
|
|
|
|
|
|
2016-08-12 02:49:05 +08:00
|
|
|
|
1.3
|
2018-03-22 13:26:28 +08:00
|
|
|
|
***
|
2016-08-12 02:49:05 +08:00
|
|
|
|
|
|
|
|
|
No further notes.
|
|
|
|
|
|
2016-04-05 17:15:27 +08:00
|
|
|
|
|
2016-07-15 11:14:06 +08:00
|
|
|
|
1.2
|
2018-03-22 13:26:28 +08:00
|
|
|
|
***
|
2016-07-15 11:14:06 +08:00
|
|
|
|
|
|
|
|
|
No further notes.
|
|
|
|
|
|
|
|
|
|
|
2016-06-24 15:11:22 +08:00
|
|
|
|
1.1
|
2018-03-22 13:26:28 +08:00
|
|
|
|
***
|
2016-05-22 21:53:18 +08:00
|
|
|
|
|
|
|
|
|
* TCA6424A.set converts the "outputs" value to little-endian before programming
|
|
|
|
|
it into the registers.
|
|
|
|
|
|
|
|
|
|
|
2016-05-10 18:50:10 +08:00
|
|
|
|
1.0
|
2018-03-22 13:26:28 +08:00
|
|
|
|
***
|
2016-05-10 18:50:10 +08:00
|
|
|
|
|
|
|
|
|
No further notes.
|
|
|
|
|
|
|
|
|
|
|
2016-05-08 11:15:47 +08:00
|
|
|
|
1.0rc4
|
2018-03-22 13:26:28 +08:00
|
|
|
|
******
|
2016-05-03 16:27:24 +08:00
|
|
|
|
|
|
|
|
|
* setattr_argument and setattr_device add their key to kernel_invariants.
|
|
|
|
|
|
|
|
|
|
|
2016-04-18 23:38:34 +08:00
|
|
|
|
1.0rc3
|
2018-03-22 13:26:28 +08:00
|
|
|
|
******
|
2016-04-05 13:35:47 +08:00
|
|
|
|
|
2016-04-05 17:21:51 +08:00
|
|
|
|
* The HDF5 format has changed.
|
|
|
|
|
|
|
|
|
|
* The datasets are located in the HDF5 subgroup ``datasets``.
|
2016-04-05 18:09:30 +08:00
|
|
|
|
* Datasets are now stored without additional type conversions and annotations
|
|
|
|
|
from ARTIQ, trusting that h5py maps and converts types between HDF5 and
|
|
|
|
|
python/numpy "as expected".
|
2016-04-05 13:35:47 +08:00
|
|
|
|
|
2016-04-16 14:20:45 +08:00
|
|
|
|
* NumberValue now returns an integer if ``ndecimals`` = 0, ``scale`` = 1 and
|
|
|
|
|
``step`` is integer.
|
|
|
|
|
|
2016-04-05 13:35:47 +08:00
|
|
|
|
|
2016-03-31 16:05:41 +08:00
|
|
|
|
1.0rc2
|
2018-03-22 13:26:28 +08:00
|
|
|
|
******
|
2016-03-25 20:24:49 +08:00
|
|
|
|
|
|
|
|
|
* The CPU speed in the pipistrello gateware has been reduced from 83 1/3 MHz to
|
|
|
|
|
75 MHz. This will reduce the achievable sustained pulse rate and latency
|
|
|
|
|
accordingly. ISE was intermittently failing to meet timing (#341).
|
2016-03-29 16:26:14 +08:00
|
|
|
|
* set_dataset in broadcast mode no longer returns a Notifier. Mutating datasets
|
|
|
|
|
should be done with mutate_dataset instead (#345).
|
2016-03-25 20:24:49 +08:00
|
|
|
|
|
|
|
|
|
|
2016-03-19 07:12:20 +08:00
|
|
|
|
1.0rc1
|
2018-03-22 13:26:28 +08:00
|
|
|
|
******
|
2016-01-26 08:04:33 +08:00
|
|
|
|
|
2016-01-29 12:55:03 +08:00
|
|
|
|
* Experiments (your code) should use ``from artiq.experiment import *``
|
|
|
|
|
(and not ``from artiq import *`` as previously)
|
|
|
|
|
* Core device flash storage has moved due to increased runtime size.
|
|
|
|
|
This requires reflashing the runtime and the flash storage filesystem image
|
2016-01-31 05:50:15 +08:00
|
|
|
|
or erase and rewrite its entries.
|
2016-03-18 01:41:49 +08:00
|
|
|
|
* ``RTIOCollisionError`` has been renamed to ``RTIOCollision``
|
|
|
|
|
* the new API for DDS batches is::
|
2016-03-19 05:55:39 +08:00
|
|
|
|
|
2016-03-09 17:12:50 +08:00
|
|
|
|
with self.core_dds.batch:
|
|
|
|
|
...
|
2016-03-18 01:41:49 +08:00
|
|
|
|
|
|
|
|
|
with ``core_dds`` a device of type ``artiq.coredevice.dds.CoreDDS``.
|
2016-03-09 17:12:50 +08:00
|
|
|
|
The dds_bus device should not be used anymore.
|
2016-03-18 01:41:49 +08:00
|
|
|
|
* LinearScan now supports scanning from high to low. Accordingly,
|
2016-03-19 07:12:20 +08:00
|
|
|
|
its arguments ``min/max`` have been renamed to ``start/stop`` respectively.
|
2016-03-18 01:41:49 +08:00
|
|
|
|
Same for RandomScan (even though there direction matters little).
|