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.

qick.qick_asm

The interface for writing QICK programs.

qick.asm_v2

qick.asm_v1

Assembly language wrapper class and auxiliary functions for the v1 tProcessor.

qick.averager_program

Several helper classes for writing qubit experiments.

Connecting to the board

qick

qick.qick

The lower-level driver for the QICK library.

qick.rfboard

qick.pyro

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.

qick.drivers.generator

Drivers for signal generators: FPGA blocks that send data to DACs.

qick.drivers.readout

Drivers for readouts (FPGA blocks that receive data from ADCs) and buffers (blocks that receive data from readouts).

qick.drivers.tproc

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).

qick.tprocv2_assembler

// 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 )

qick.parser

Function to parse tProc assembly language programs.

Utilities and framework internals

qick.helpers

Support functions.

qick.streamer

qick.ip

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.