mirror of https://github.com/m-labs/artiq.git
Merge branch 'master' into nk/phaser-servo
This commit is contained in:
commit
a8f498b478
|
@ -3,50 +3,66 @@
|
||||||
Release notes
|
Release notes
|
||||||
=============
|
=============
|
||||||
|
|
||||||
|
Unreleased
|
||||||
|
----------
|
||||||
|
|
||||||
|
Highlights:
|
||||||
|
|
||||||
|
* Implemented Phaser-servo. This requires recent gateware on Phaser.
|
||||||
|
|
||||||
|
|
||||||
ARTIQ-7
|
ARTIQ-7
|
||||||
-------
|
-------
|
||||||
|
|
||||||
Highlights:
|
Highlights:
|
||||||
|
|
||||||
* New hardware support:
|
* New hardware support:
|
||||||
- Kasli-SoC, a new EEM carrier based on a Zynq SoC, enabling much faster kernel execution.
|
- 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.
|
||||||
- HVAMP_8CH 8 channel HV amplifier for Fastino / Zotinos
|
- HVAMP_8CH 8 channel HV amplifier for Fastino / Zotinos
|
||||||
- Almazny mezzanine board for Mirny
|
- Almazny mezzanine board for Mirny
|
||||||
* TTL device output can be now configured to work as a clock generator.
|
- 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
|
||||||
|
RTIO timeline (``get_next_frame_mu()``
|
||||||
|
- Urukul: ``get()``, ``get_mu()``, ``get_att()``, and ``get_att_mu()`` functions added for AD9910 and AD9912.
|
||||||
* Softcore targets now use the RISC-V architecture (VexRiscv) instead of OR1K (mor1kx).
|
* Softcore targets now use the RISC-V architecture (VexRiscv) instead of OR1K (mor1kx).
|
||||||
* Gateware FPU is supported on KC705 and Kasli 2.0.
|
* Gateware FPU is supported on KC705 and Kasli 2.0.
|
||||||
* Faster compilation for large arrays/lists.
|
* Faster compilation for large arrays/lists.
|
||||||
* Phaser:
|
* Faster exception handling.
|
||||||
- Improved documentation
|
* Several exception handling bugs fixed.
|
||||||
- Expose the DAC coarse mixer and ``sif_sync``
|
* Support for a simpler shared library system with faster calls into the runtime. This is only used by the NAC3
|
||||||
- Exposes upconverter calibration and enabling/disabling of upconverter LO & RF outputs.
|
compiler (nac3ld) and improves RTIO output performance (test_pulse_rate) by 9-10%.
|
||||||
- Add helpers to align Phaser updates to the RTIO timeline (``get_next_frame_mu()``)
|
* Moninj improvements:
|
||||||
- Implemented Phaser-servo. This requires recent gateware on Phaser.
|
- Urukul monitoring and frequency setting (through dashboard) is now supported.
|
||||||
* Core device moninj is now proxied via the ``aqctl_moninj_proxy`` controller.
|
- Core device moninj is now proxied via the ``aqctl_moninj_proxy`` controller.
|
||||||
* The configuration entry ``rtio_clock`` supports multiple clocking settings, deprecating the usage
|
* The configuration entry ``rtio_clock`` supports multiple clocking settings, deprecating the usage
|
||||||
of compile-time options.
|
of compile-time options.
|
||||||
* Packaging via Nix Flakes.
|
* Added support for 100MHz RTIO clock in DRTIO.
|
||||||
* Firmware and gateware can now be built on-demand on the M-Labs server using ``afws_client``
|
* Previously detected RTIO async errors are reported to the host after each kernel terminates and a
|
||||||
(subscribers only).
|
warning is logged. The warning is additional to the one already printed in the core device log
|
||||||
|
immediately upon detection of the error.
|
||||||
* Extended Kasli gateware JSON description with configuration for SPI over DIO.
|
* Extended Kasli gateware JSON description with configuration for SPI over DIO.
|
||||||
* ``get()``, ``get_mu()``, ``get_att()``, and ``get_att_mu()`` functions added for AD9910 and AD9912.
|
* TTL outputs can be now configured to work as a clock generator from the JSON.
|
||||||
* On Kasli, the number of FIFO lanes in the scalable events dispatcher (SED) can now be configured in
|
* On Kasli, the number of FIFO lanes in the scalable events dispatcher (SED) can now be configured in
|
||||||
the JSON hardware description file.
|
the JSON.
|
||||||
* ``artiq_ddb_template`` generates edge-counter keys that start with the key of the corresponding
|
* ``artiq_ddb_template`` generates edge-counter keys that start with the key of the corresponding
|
||||||
TTL device (e.g. ``ttl_0_counter`` for the edge counter on TTL device ``ttl_0``).
|
TTL device (e.g. ``ttl_0_counter`` for the edge counter on TTL device ``ttl_0``).
|
||||||
* ``artiq_master`` now has an ``--experiment-subdir`` option to scan only a subdirectory of the
|
* ``artiq_master`` now has an ``--experiment-subdir`` option to scan only a subdirectory of the
|
||||||
repository when building the list of experiments.
|
repository when building the list of experiments.
|
||||||
* Added support for 100MHz RTIO clock in DRTIO.
|
* Experiments can now be submitted by-content.
|
||||||
* Previously detected RTIO async errors are reported to the host after each kernel terminates and a
|
* The master can now optionally log all experiments submitted into a CSV file.
|
||||||
warning is logged. The warning is additional to the one already printed in the core device log upon
|
|
||||||
detection of the error.
|
|
||||||
* Removed worker DB warning for writing a dataset that is also in the archive.
|
* Removed worker DB warning for writing a dataset that is also in the archive.
|
||||||
* ``PCA9548`` I2C switch class renamed to ``I2CSwitch``, to accomodate support for PCA9547, and
|
* Experiments can now call ``scheduler.check_termination()`` to test if the user
|
||||||
possibly other switches in future. Readback has been removed, and now only one channel per
|
has requested graceful termination.
|
||||||
switch is supported.
|
* ARTIQ command-line programs and controllers now exit cleanly on Ctrl-C.
|
||||||
* The "ip" config option can now be set to "use_dhcp" in order to use DHCP to obtain an IP address.
|
* ``artiq_coremgmt reboot`` now reloads gateware as well, providing a more thorough and reliable
|
||||||
DHCP will also be used if no "ip" config option is set.
|
device reset (7-series FPGAs only).
|
||||||
* Urukul monitoring and frequency setting (through dashboard) is now supported.
|
* 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).
|
||||||
|
|
||||||
Breaking changes:
|
Breaking changes:
|
||||||
|
|
||||||
|
@ -61,6 +77,10 @@ Breaking changes:
|
||||||
* Mirny: Added extra delays in ``ADF5356.sync()``. This avoids the need of an extra delay before
|
* Mirny: Added extra delays in ``ADF5356.sync()``. This avoids the need of an extra delay before
|
||||||
calling `ADF5356.init()`.
|
calling `ADF5356.init()`.
|
||||||
* The deprecated ``set_dataset(..., save=...)`` is no longer supported.
|
* The deprecated ``set_dataset(..., save=...)`` is no longer supported.
|
||||||
|
* The ``PCA9548`` I2C switch class was renamed to ``I2CSwitch``, to accomodate support for PCA9547,
|
||||||
|
and possibly other switches in future. Readback has been removed, and now only one channel per
|
||||||
|
switch is supported.
|
||||||
|
|
||||||
|
|
||||||
ARTIQ-6
|
ARTIQ-6
|
||||||
-------
|
-------
|
||||||
|
|
18
flake.lock
18
flake.lock
|
@ -26,11 +26,11 @@
|
||||||
"mozilla-overlay": {
|
"mozilla-overlay": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1650459918,
|
"lastModified": 1657214286,
|
||||||
"narHash": "sha256-sroCK+QJTmoXtcRkwZyKOP9iAYOPID2Bwdxn4GkG16w=",
|
"narHash": "sha256-rO/4oymKXU09wG2bcTt4uthPCp1XsBZjxuCJo3yVXNs=",
|
||||||
"owner": "mozilla",
|
"owner": "mozilla",
|
||||||
"repo": "nixpkgs-mozilla",
|
"repo": "nixpkgs-mozilla",
|
||||||
"rev": "e1f7540fc0a8b989fb8cf701dc4fd7fc76bcf168",
|
"rev": "0508a66e28a5792fdfb126bbf4dec1029c2509e0",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -41,11 +41,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1655278232,
|
"lastModified": 1657123678,
|
||||||
"narHash": "sha256-H6s7tnHYiDKFCcLADS4sl1sUq0dDJuRQXCieguk/6SA=",
|
"narHash": "sha256-cowVkScfUPlbBXUp08MeVk/wgm9E1zp1uC+9no2hZYw=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "8b538fcb329a7bc3d153962f17c509ee49166973",
|
"rev": "316b762afdb9e142a803f29c49a88b4a47db80ee",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -89,11 +89,11 @@
|
||||||
"src-migen": {
|
"src-migen": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1650337393,
|
"lastModified": 1656649178,
|
||||||
"narHash": "sha256-rm1SlFmF2ASz0vIy2nDEzGlyRw2oYNeJRr8Kh8Mg2Qc=",
|
"narHash": "sha256-A91sZRrprEuPOtIUVxm6wX5djac9wnNZQ4+cU1nvJPc=",
|
||||||
"owner": "m-labs",
|
"owner": "m-labs",
|
||||||
"repo": "migen",
|
"repo": "migen",
|
||||||
"rev": "d4e3f34177c32f09904397179e6ed9c83175e528",
|
"rev": "0fb91737090fe45fd764ea3f71257a4c53c7a4ae",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
12
flake.nix
12
flake.nix
|
@ -16,8 +16,9 @@
|
||||||
outputs = { self, nixpkgs, mozilla-overlay, sipyco, src-pythonparser, artiq-comtools, src-migen, src-misoc }:
|
outputs = { self, nixpkgs, mozilla-overlay, sipyco, src-pythonparser, artiq-comtools, src-migen, src-misoc }:
|
||||||
let
|
let
|
||||||
pkgs = import nixpkgs { system = "x86_64-linux"; overlays = [ (import mozilla-overlay) ]; };
|
pkgs = import nixpkgs { system = "x86_64-linux"; overlays = [ (import mozilla-overlay) ]; };
|
||||||
|
pkgs-aarch64 = import nixpkgs { system = "aarch64-linux"; };
|
||||||
|
|
||||||
artiqVersionMajor = 7;
|
artiqVersionMajor = 8;
|
||||||
artiqVersionMinor = self.sourceInfo.revCount or 0;
|
artiqVersionMinor = self.sourceInfo.revCount or 0;
|
||||||
artiqVersionId = self.sourceInfo.shortRev or "unknown";
|
artiqVersionId = self.sourceInfo.shortRev or "unknown";
|
||||||
artiqVersion = (builtins.toString artiqVersionMajor) + "." + (builtins.toString artiqVersionMinor) + "." + artiqVersionId + ".beta";
|
artiqVersion = (builtins.toString artiqVersionMajor) + "." + (builtins.toString artiqVersionMinor) + "." + artiqVersionId + ".beta";
|
||||||
|
@ -305,7 +306,7 @@
|
||||||
dontFixup = true;
|
dontFixup = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
openocd-bscanspi = let
|
openocd-bscanspi-f = pkgs: let
|
||||||
bscan_spi_bitstreams-pkg = pkgs.stdenv.mkDerivation {
|
bscan_spi_bitstreams-pkg = pkgs.stdenv.mkDerivation {
|
||||||
name = "bscan_spi_bitstreams";
|
name = "bscan_spi_bitstreams";
|
||||||
src = pkgs.fetchFromGitHub {
|
src = pkgs.fetchFromGitHub {
|
||||||
|
@ -362,8 +363,9 @@
|
||||||
};
|
};
|
||||||
in rec {
|
in rec {
|
||||||
packages.x86_64-linux = {
|
packages.x86_64-linux = {
|
||||||
inherit pythonparser qasync openocd-bscanspi artiq;
|
inherit pythonparser qasync artiq;
|
||||||
inherit migen misoc asyncserial microscope vivadoEnv vivado;
|
inherit migen misoc asyncserial microscope vivadoEnv vivado;
|
||||||
|
openocd-bscanspi = openocd-bscanspi-f pkgs;
|
||||||
artiq-board-kc705-nist_clock = makeArtiqBoardPackage {
|
artiq-board-kc705-nist_clock = makeArtiqBoardPackage {
|
||||||
target = "kc705";
|
target = "kc705";
|
||||||
variant = "nist_clock";
|
variant = "nist_clock";
|
||||||
|
@ -443,6 +445,10 @@
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
packages.aarch64-linux = {
|
||||||
|
openocd-bscanspi = openocd-bscanspi-f pkgs-aarch64;
|
||||||
|
};
|
||||||
|
|
||||||
hydraJobs = {
|
hydraJobs = {
|
||||||
inherit (packages.x86_64-linux) artiq artiq-board-kc705-nist_clock openocd-bscanspi;
|
inherit (packages.x86_64-linux) artiq artiq-board-kc705-nist_clock openocd-bscanspi;
|
||||||
kc705-hitl = pkgs.stdenv.mkDerivation {
|
kc705-hitl = pkgs.stdenv.mkDerivation {
|
||||||
|
|
Loading…
Reference in New Issue