Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: m-labs/artiq
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 768fa21488e9
Choose a base ref
...
head repository: m-labs/artiq
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: bba434e9518e
Choose a head ref
  • 2 commits
  • 3 files changed
  • 1 contributor

Commits on Mar 24, 2015

  1. 4
    Copy the full SHA
    8340516 View commit details
  2. README/manual: refactor intro

    jordens committed Mar 24, 2015
    Copy the full SHA
    bba434e View commit details
Showing with 92 additions and 0 deletions.
  1. +68 −0 doc/manual/faq.rst
  2. +2 −0 doc/manual/index.rst
  3. +22 −0 doc/manual/introduction.rst
68 changes: 68 additions & 0 deletions doc/manual/faq.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
FAQ
###

How do I ...
============

override the sysclk frequency of just one dds?
----------------------------------------------

Override the parameter using an argument in the ddb.

organize parameters in folders?
-------------------------------

Use gui auto-completion and filtering.
Names need to be unique.

enforce functional dependencies between parameters?
---------------------------------------------------

Use wrapper experiments, overriding parameters of arguments.

get rid of `DbKeys`?
--------------------

`DbKeys` enforces valid parameter/argument names, references
keys in pdb and hints at metadata on how values can be retrieved.

write a generator feeding a kernel feeding an analyze function?
---------------------------------------------------------------

Like this::

def run(self):
self.parse(self.pipe(iter(range(10))))

def pipe(self, gen):
for i in gen:
r = self.do(i)
yield r

def parse(self, gen):
for i in gen:
pass

@kernel
def do(self, i):
return i

create and use variable lengths arrays?
------------------------------------------------

Don't. Preallocate everything. Or chunk it and e.g. read 100 events per
function call, push them upstream and retry until the gate time closes.

execute multiple slow controller RPCs in parallel without loosing time?
-----------------------------------------------------------------------

Use `threading.Thread`: portable, fast, simple for one-shot calls

write part of my experiment as a coroutine/Task/generator?
----------------------------------------------------------

You want to write experiment preparation (`__init__()` or `build()`)
or analysis (`analyze()`)

No. That would make reusing your own code in sub-experiments difficult and
fragile.
2 changes: 2 additions & 0 deletions doc/manual/index.rst
Original file line number Diff line number Diff line change
@@ -6,6 +6,7 @@ Contents:
.. toctree::
:maxdepth: 2

introduction
installing
getting_started
developing_a_ndsp
@@ -16,3 +17,4 @@ Contents:
ndsp_reference
utilities
fpga_board_ports
faq
22 changes: 22 additions & 0 deletions doc/manual/introduction.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
Introduction
------------

.. this does not work because of relative paths for the logo:
.. include:: ../../README.rst
and including in README.rst does not work on github
ARTIQ (Advanced Real-Time Infrastructure for Quantum physics) is a
next-generation control system for quantum information experiments. It is
being 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.

ARTIQ is licensed under 3-clause BSD.

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