qick.qick
The lower-level driver for the QICK library. Contains classes for interfacing with the SoC.
Functions
|
Return the I and Q values associated with a buffer value. |
Classes
|
AxisAvgBuffer class |
|
AxisReadoutV2 class |
|
AxisSignalGenV4 class |
|
AxisSwitch class to control Xilinx AXI-Stream switch IP |
|
AxisTProc64x32_x8 class |
|
QickSoc class. |
|
SocIp class |
- qick.qick.format_buffer(buff)[source]
Return the I and Q values associated with a buffer value. The lower 16 bits correspond to the I value, and the upper 16 bits correspond to the Q value.
- Parameters
buff (int) – Buffer location
- Returns
- class qick.qick.SocIp(ip, **kwargs)[source]
Bases:
object
SocIp class
- class qick.qick.AxisSignalGenV4(ip, axi_dma, axis_switch, channel, **kwargs)[source]
Bases:
qick.qick.SocIp
AxisSignalGenV4 class
AXIS Signal Generator V4 Registers. START_ADDR_REG
WE_REG * 0 : disable writes. * 1 : enable writes.
- class qick.qick.AxisReadoutV2(ip, fs, **kwargs)[source]
Bases:
qick.qick.SocIp
AxisReadoutV2 class
Registers. FREQ_REG : 32-bit.
PHASE_REG : 32-bit.
NSAMP_REG : 16-bit.
OUTSEL_REG : 2-bit. * 0 : product. * 1 : dds. * 2 : bypass.
MODE_REG : 1-bit. * 0 : NSAMP. * 1 : Periodic.
WE_REG : enable/disable to perform register update.
- class qick.qick.AxisAvgBuffer(ip, axi_dma_avg, switch_avg, axi_dma_buf, switch_buf, channel, **kwargs)[source]
Bases:
qick.qick.SocIp
AxisAvgBuffer class
Registers. AVG_START_REG * 0 : Averager Disabled. * 1 : Averager Enabled (started by external trigger).
AVG_ADDR_REG : start address to write results.
AVG_LEN_REG : number of samples to be added.
AVG_DR_START_REG * 0 : do not send any data. * 1 : send data using m0_axis.
AVG_DR_ADDR_REG : start address to read data.
AVG_DR_LEN_REG : number of samples to be read.
BUF_START_REG * 0 : Buffer Disabled. * 1 : Buffer Enabled (started by external trigger).
BUF_ADDR_REG : start address to write results.
BUF_LEN_REG : number of samples to be buffered.
BUF_DR_START_REG * 0 : do not send any data. * 1 : send data using m1_axis.
BUF_DR_ADDR_REG : start address to read data.
BUF_DR_LEN_REG : number of samples to be read.
- Parameters
- config_avg(address=0, length=100)[source]
Configure average buffer data from average and buffering readout block
- transfer_avg(buff, address=0, length=100)[source]
Transfer average buffer data from average and buffering readout block
- config_buf(address=0, length=100)[source]
Configure raw buffer data from average and buffering readout block
- class qick.qick.AxisTProc64x32_x8(ip, mem, axi_dma)[source]
Bases:
qick.qick.SocIp
AxisTProc64x32_x8 class
AXIS tProcessor registers: START_SRC_REG * 0 : internal start. * 1 : external start.
START_REG * 0 : stop. * 1 : start.
MEM_MODE_REG * 0 : AXIS Read (from memory to m0_axis) * 1 : AXIS Write (from s0_axis to memory)
MEM_START_REG * 0 : Stop. * 1 : Execute operation (AXIS)
MEM_ADDR_REG : starting memory address for AXIS read/write mode.
MEM_LEN_REG : number of samples to be transferred in AXIS read/write mode.
DMEM: The internal data memory is 2^DMEM_N samples, 32 bits each. The memory can be accessed either single read/write from AXI interface. The lower 256 Bytes are reserved for registers. The memory is then accessed in the upper section (beyond 256 bytes). Byte to sample conversion needs to be performed. The other method is to DMA in and out. Here the access is direct, so no conversion is needed. There is an arbiter to ensure data coherency and avoid blocking transactions.
- load_program(prog='prog.asm', fmt='asm')[source]
Loads tProc program. If asm progam, it compiles first
- Parameters
prog (string) – program file name
fmt (string) – file format
- class qick.qick.AxisSwitch(ip, nslave=1, nmaster=4, **kwargs)[source]
Bases:
qick.qick.SocIp
AxisSwitch class to control Xilinx AXI-Stream switch IP
- Parameters
- class qick.qick.QickSoc(*args: Any, **kwargs: Any)[source]
Bases:
pynq.Overlay
QickSoc class. This class will create all object to access system blocks
- Parameters
- get_accumulated(ch, address=0, length=16384)[source]
Acquires data from the readout accumulated buffer
- set_nyquist(ch, nqz)[source]
Sets DAC channel ch to operate in Nyquist zone nqz mode
Channel 1 : connected to Signal Generator V4, which drives DAC 228 CH0. Channel 2 : connected to Signal Generator V4, which drives DAC 228 CH1. Channel 3 : connected to Signal Generator V4, which drives DAC 228 CH2. Channel 4 : connected to Signal Generator V4, which drives DAC 229 CH0. Channel 5 : connected to Signal Generator V4, which drives DAC 229 CH1. Channel 6 : connected to Signal Generator V4, which drives DAC 229 CH2. Channel 7 : connected to Signal Generator V4, which drives DAC 229 CH3. tiles: DAC 228: 0, DAC 229: 1 channels: CH0: 0, CH1: 1, CH2: 2, CH3: 3