Python API
This page is the raw, auto-generated API reference – every public class,
method, and function in qick_lib, with its docstring. For most tasks
you don’t need to browse it directly: the narrative pages
(Signal Generators - QICK Firmware, Readout System - QICK Firmware, tProcessor v2 - reference manual, …) already
link to the specific method you need via cross-references. Come here when
you need the full signature/parameter list for something, or want to see
everything a class exposes at a glance.
The modules are grouped below by what you’d actually reach for them for, not alphabetically.
Writing programs
The classes you subclass and call directly when writing an experiment.
qick.asm_v2 is the current tProc v2 API (used throughout this doc
set); qick.asm_v1/qick.averager_program are the legacy tProc
v1 equivalent (see tProcessor v1 (axis_tproc64x32_x8) - reference manual). qick.qick_asm holds the base
classes and methods (declare_gen, declare_readout, add_pulse,
add_envelope, …) shared by both.
The interface for writing QICK programs. |
|
Assembly language wrapper class and auxiliary functions for the v1 tProcessor. |
|
Several helper classes for writing qubit experiments. |
Connecting to the board
The lower-level driver for the QICK library. |
|
QickSoc (qick.qick) is the main entry point – instantiate
it once, then reach every generator/readout/buffer/tProc driver through its
soc.gens/soc.readouts/soc.avg_bufs/soc.tproc arrays (see
Firmware for what’s on your board). qick.rfboard extends it
for boards with an external RF front-end. qick.pyro lets you connect
to a board running headless over the network instead of locally.
Hardware drivers
You’ll interact with these through the soc.gens/soc.readouts/
soc.avg_bufs/soc.tproc arrays above, not by importing these
modules directly – see Signal Generators - QICK Firmware, Readout System - QICK Firmware, and
tProcessor v1 (axis_tproc64x32_x8) - reference manual/tProcessor v2 - reference manual for the driver classes’ individual
pages (register maps, RTL cross-references) rather than the bare
docstrings here.
Drivers for signal generators: FPGA blocks that send data to DACs. |
|
Drivers for readouts (FPGA blocks that receive data from ADCs) and buffers (blocks that receive data from readouts). |
|
Drivers for the QICK Timed Processor (tProc). |
Assembly and compilation internals
Normal programs don’t call these directly – qick.asm_v2/
qick.asm_v1 invoke them for you. Useful if you’re debugging a
compiled program or working with raw assembly text (see
tProc v2 ASM Cheatsheet).
// FERMI RESEARCH LAB // Date : 2024_8_2 // Version : 3 // Revision : 23 /////////////////////////////////////////////////////////////////////////////// Description: Assembler for Qick Processor -Create Binary Files ( list2bin, file_asm2bin, str_asm2bin ) -Create Instruction List ( file_asm2list, str_asm2list ) -Create Assembler File from Instruction List ( list2asm ) |
|
Function to parse tProc assembly language programs. |
Utilities and framework internals
Support functions. |
|
Support classes for dealing with FPGA IP blocks. |
qick.helpers holds small standalone support functions.
qick.streamer is DataStreamer, a polling thread for
continuous acquisition – not a driver for a specific IP core (see
Support & Utility Cores - QICK Firmware if you were looking for the axis_streamer RTL
block instead, a different thing despite the name). qick.ip has the
base SocIP/QickIP driver classes and the board metadata
tracing every driver’s configure_connections() uses – framework
internals, only relevant if you’re writing a new driver.