• Stars
    star
    426
  • Rank 101,884 (Top 3 %)
  • Language
    Python
  • License
    GNU Lesser Genera...
  • Created over 10 years ago
  • Updated 28 days ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A leading-edge control system for quantum information experiments
https://raw.githubusercontent.com/m-labs/artiq/master/doc/logo/artiq.png

ARTIQ (Advanced Real-Time Infrastructure for Quantum physics) is a leading-edge control and data acquisition system for quantum information experiments. It is maintained and developed by M-Labs and the initial development was for and in partnership with the Ion Storage Group at NIST. ARTIQ is free software and offered to the entire research community as a solution equally applicable to other challenging control tasks, including outside the field of ion trapping. Many laboratories around the world have adopted ARTIQ as their control system, with over a hundred Sinara hardware crates deployed, and some have contributed to it.

The system features a high-level programming language that helps describing complex experiments, which is compiled and executed on dedicated hardware with nanosecond timing resolution and sub-microsecond latency. It includes graphical user interfaces to parametrize and schedule experiments and to visualize and explore the results.

ARTIQ uses FPGA hardware to perform its time-critical tasks. The Sinara hardware, and in particular the Kasli FPGA carrier, is designed to work with ARTIQ. ARTIQ is designed to be portable to hardware platforms from different vendors and FPGA manufacturers. Several different configurations of a FPGA evaluation kit and of a Zynq evaluation kit are also used and supported. FPGA platforms can be combined with any number of additional peripherals, either already accessible from ARTIQ or made accessible with little effort.

ARTIQ and its dependencies are available in the form of Nix packages (for Linux) and MSYS2 packages (for Windows). See the manual for installation instructions. Packages containing pre-compiled binary images to be loaded onto the hardware platforms are supplied for each configuration. Like any open source software ARTIQ can equally be built and installed directly from source.

ARTIQ is supported by M-Labs and developed openly. Components, features, fixes, improvements, and extensions are often funded by and developed for the partnering research groups.

Core technologies employed include Python, Migen, Migen-AXI, Rust, MiSoC/VexRiscv, LLVM/llvmlite, and Qt5.

Website: https://m-labs.hk/artiq

Cite ARTIQ as Bourdeauducq, Sébastien et al. (2016). ARTIQ 1.0. Zenodo. 10.5281/zenodo.51303.

License

Copyright (C) 2014-2023 M-Labs Limited.

ARTIQ is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

ARTIQ is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with ARTIQ. If not, see <http://www.gnu.org/licenses/>.

The ARTIQ manifesto

The free and open dissemination of methods and results is central to scientific progress.

The ARTIQ and Sinara authors, contributors, and supporters consider the free and open exchange of scientific tools to be equally important and have chosen the licensing terms of ARTIQ and Sinara accordingly. ARTIQ, including its gateware, the firmware, and the ARTIQ tools and libraries are licensed as LGPLv3+. The Sinara hardware designs are licensed under CERN OHL. This ensures that a user of ARTIQ or Sinara hardware designs obtains broad rights to use, redistribute, study, and modify them.

The following statements are intended to clarify the interpretation and application of the licensing terms:

  • There is no requirement to distribute any unmodified, modified, or extended versions of ARTIQ. Only when distributing ARTIQ the source needs to be made available.
  • Unmodified, modified, or extended versions of ARTIQ can be distributed freely under the terms of the LGPLv3+.
  • Your Experiments, Applets, and ARTIQ device drivers are considered "Applications" (see the LGPLv3+) and can be (but don't have to be) distributed under the terms of your choice. The public distribution under a free and open license is encouraged, however.
  • Similarly, distribution and licensing of your experiment data, calibrations, or measurement results is entirely at your discretion.
  • Other features, changes, and additions are considered modifications of ARTIQ and inherit the LGPLv3+. Those include for example adding new RTIO Phys, compiler optimizations, compiler features, ports of the compiler to other target CPUs, dashboard or browser features that are not in applets, as well as scheduler, master and runtime modifications.
  • Analogously to the established practice in the Linux kernel, we do not consider components that are developed and used independently to be modifications of ARTIQ.
  • For example, when developing a Phy for an independently developed and used gateware component, that gateware component is not considered a modification of ARTIQ (but the Phy is).

More Repositories

1

migen

A Python toolbox for building complex digital hardware
Python
1,092
star
2

nmigen

A refreshed Python toolbox for building complex digital hardware. See https://gitlab.com/nmigen/nmigen
Python
630
star
3

misoc

The original high performance and small footprint system-on-chip based on Migenâ„¢
C
290
star
4

milkymist

SoC design for Milkymist One - LM32, DDR SDRAM, 2D TMU, PFPU
Verilog
145
star
5

lm32

LatticeMico32 soft processor
Verilog
96
star
6

pythonparser

Python
71
star
7

rust-atomic_ring_buffer

Atomic ring buffer is a fixed-size multi-producer multi-consumer queue that works on bare-metal systems.
Rust
49
star
8

tdc-core

A 26ps RMS time-to-digital converter (TDC) core for Spartan-6 FPGAs
Verilog
46
star
9

VexRiscv-verilog

Using VexRiscv without installing Scala
Verilog
32
star
10

dslite2svd

Converter of register descriptions from the TI DSLite format to CMSIS SVD format
Rust
32
star
11

jesd204b

JESD204B core for Migen/MiSoC
Python
31
star
12

flickernoise

Video synthesis software for the Milkymist One
C
30
star
13

nmigen-boards

Board and connector definition files for nMigen
Python
27
star
14

uclibc-lm32

uClibc with LM32 architecture support
C
19
star
15

nmigen-soc

System on Chip toolkit for nMigen
Python
17
star
16

ionpak

A modern, low-cost universal controller for hot-cathode ionization vacuum gauges. (WIP)
Rust
16
star
17

liboscparse

Liblo (OSC library) without GNU/Autocrap and network dependent non-portable code
C
13
star
18

microscope

Finding the bacteria in rotting FPGA designs.
Python
13
star
19

mtk

The Milkymist GUI toolkit (Genode FX based), because X11 sucks!
C
13
star
20

nmigen-stdio

Industry standard I/O for nMigen
Python
11
star
21

sipyco

Simple Python Communications
Python
9
star
22

openwrt-milkymist

OpenWRT with Milkymist support
C
9
star
23

ek-tm4c1294xl-demo

An example of programming the TI EK-TM4C1294XL development board in Rust
Rust
9
star
24

rtems-yaffs2

YAFFS2 with RTEMS support (new API)
C
7
star
25

llvm-lm32

LLVM with LatticeMico32 support patch (JPBonn tree)
C++
7
star
26

scripts

Various script files and Makefiles to build Milkymist One software
Shell
7
star
27

mixxeo-soc

System-on-chip design and software for the Mixxeo
C
7
star
28

fjmem-m1

FJMEM core for flashing Mixxeo and Milkymist One
Verilog
6
star
29

clang-lm32

Clang with LatticeMico32 support
C++
6
star
30

board-m1

Milkymist One PCB design files
Prolog
6
star
31

lwip

lwip mirror
C
5
star
32

adc2tcp

Rust
4
star
33

cairoplot3

Python 3 port of Cairoplot
Python
4
star
34

nu-servo

Novogorny Urukul Servo
Python
4
star
35

artiq-comtools

Lightweight ARTIQ communication tools
Python
4
star
36

bugs

Old Milkymist repos. Only kept for historical purposes :)
4
star
37

autotest-m1

Automated testing program for the Milkymist One
C
4
star
38

misp

Milkymist Software Platform (experimental)
C
4
star
39

extras-m1

JTAG adapter, leaflet, case CAD files, ...
Prolog
4
star
40

elf2flt-lm32

elf2flt with LM32 architecture support
Shell
4
star
41

datasheets-m1

Datasheets for the parts of the "Milkymist One" board
3
star
42

compiler-rt-lm32

LLVM compiler-rt with LM32 support
C
3
star
43

flickernoise-handbook

Handbook for the Flickernoise VJ application
3
star
44

clang-demos

Sample programs to demonstrate Clang/LLVM on LM32
Assembly
3
star
45

buildbot-config

Internal Buildbot configuration for M-Labs projects. Superseded by https://git.m-labs.hk/m-labs/nix-scripts
Python
3
star
46

drtio_transceiver_test

Transceiver test and demonstration for ARTIQ DRTIO
Python
3
star
47

phaser

Jupyter Notebook
2
star
48

mixxeo-mech

Mixxeo mechanical design
IDL
2
star
49

bscan_spi_kc705

Gateware to allow JTAG serial flash programming on KC705 with xc3sprog
VHDL
2
star
50

artiq-hardware

ARTIQ hardware project
TeX
2
star
51

migen-extradoc

More Migen documentation and tutorials
TeX
2
star
52

novatech409b

ARTIQ controller for the Novatech 409B DDS
Python
1
star
53

aq_ni6733

ARTIQ NDSP for NI 6733 DAC systems (untested/experimental)
Python
1
star
54

conda-recipes

Recipes for conda packages required by M-Labs software
Batchfile
1
star
55

thorlabs_tcube

ARTIQ controller for Thorlabs Tcube devices
Python
1
star
56

cossin

cos(z), sin(z) generator in migen using block ROM and linear interpolation
Jupyter Notebook
1
star
57

ethernet-yakshaving

Python
1
star
58

sayma_test

Test designs for Sayma boards (ddr3, drtio, amc-rtm link, jesd204b)
Python
1
star