A leading-edge control system for quantum information experiments
Go to file
whitequark cb3b811fd7 compiler: maintain both the IR and iodelay forms of delay expressions.
After this commit, the delay instruction (again) does not generate
any LLVM IR: all heavy lifting is relegated to the delay and delay_mu
intrinsics. When the interleave transform needs to adjust the global
timeline, it synthesizes a delay_mu intrinsnic. This way,
the interleave transformation becomes composable, as the input and
the output IR invariants are the same.

Also, code generation is adjusted so that a basic block is split off
not only after a delay call, but also before one; otherwise, e.g.,
code immediately at the beginning of a `with parallel:` branch
would have no choice but to execute after another branch has already
advanced the timeline.

This takes care of issue #1 described in 50e7b44 and is a step
to solving issue #2.
2015-11-21 03:22:47 +08:00
.travis travis/get-*: fail build earlier on problems 2015-11-04 23:38:51 +08:00
artiq compiler: maintain both the IR and iodelay forms of delay expressions. 2015-11-21 03:22:47 +08:00
conda conda: use vivado for kc705 builds 2015-11-04 18:36:34 +08:00
doc Explicitly use the python3.5 binary everywhere. 2015-11-07 13:39:39 +03:00
examples examples/device_db: add comment about KC705/QC1 2015-11-04 17:10:10 +08:00
lit-test compiler: maintain both the IR and iodelay forms of delay expressions. 2015-11-21 03:22:47 +08:00
misc Add binutils patch. 2015-08-09 23:33:00 +03:00
.gitignore Update .gitignore. 2015-11-07 15:14:43 +03:00
.gitmodules Merge branch 'master' into new-py2llvm 2015-11-07 12:57:18 +03:00
.travis.yml Merge branch 'master' into new-py2llvm 2015-11-07 12:57:18 +03:00
CONTRIBUTING CONTRIBUTING: s/real name/legal name/. 2015-09-09 16:08:58 +08:00
LICENSE update copyright/license 2015-09-05 15:50:34 -06:00
README.rst update copyright/license 2015-09-05 15:50:34 -06:00
setup.py compiler: give suggestions in diagnostics for unbound variable. 2015-11-15 23:09:40 +03:00

.. image:: doc/logo/artiq.png
.. image:: https://travis-ci.org/m-labs/artiq.svg
    :target: https://travis-ci.org/m-labs/artiq

ARTIQ (Advanced Real-Time Infrastructure for Quantum physics) is a
next-generation control system for quantum information experiments. It is
developed in partnership with the Ion Storage Group at NIST, and its
applicability reaches beyond ion trapping.

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.

Technologies employed include Python, Migen, MiSoC/mor1kx, LLVM and llvmlite.

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

Copyright (C) 2014-2015 M-Labs Limited. Licensed under GNU GPL version 3.