qat.experimental.dialect.q1_sequence.ir.imm_desc module

Semantic immediate attribute types for the Qblox q1_sequence dialect.

These types refine Q1Imm with the per-sequencer table sizes and per-module bin budget published by Qblox. Out-of-range values fail at construction time, before they can land in the IR.

class AcqTableIndex(value)

Bases: Q1Imm

Index into a sequencer’s acquisition table: [0, 31].

Up to 32 acquisition entries per sequencer; acquire* instructions reference them via acq_idx.

data: DataElement
name: ClassVar[str] = 'q1_sequence.acq_table_index'

The attribute name should be a static field in the attribute classes.

class BinCountImm(value)

Bases: Q1Imm

Number of acquisition bins: [0, 7_000_000].

The hardware budget is per-module, not per-acquisition: 3 M bins total for QRM / QRM-RF and 7 M total for QRC. We allow the worst-case max here; cross-acquisition aggregation is checked elsewhere.

data: DataElement
name: ClassVar[str] = 'q1_sequence.bin_count_imm'

The attribute name should be a static field in the attribute classes.

class IntegrationLengthImm(value)

Bases: Q1Imm

Square-weight acquisition integration length in samples: [4, 2**24 - 4].

The number of ADC samples the sequencer integrates for an unweighted acquisition, measured at the readout sequencer sample rate. This maps to the QCoDeS sequencer.integration_length_acq parameter. Hardware requires a multiple of 4 samples.

name: ClassVar[str] = 'q1_sequence.integration_length_imm'

The attribute name should be a static field in the attribute classes.

class SequencerIndexAttr(value)

Bases: Q1Imm

Index of a sequencer within a Qblox module: [0, 11].

name: ClassVar[str] = 'q1_sequence.sequencer_index'

The attribute name should be a static field in the attribute classes.

class SlotIndexAttr(value)

Bases: Q1Imm

Index of a module in a Qblox Cluster chassis: [1, 20].

name: ClassVar[str] = 'q1_sequence.slot_index'

The attribute name should be a static field in the attribute classes.

class WaveformTableIndex(value)

Bases: Q1Imm

Index into a sequencer’s waveform table: [0, 1023].

A Q1 sequencer can hold up to 1024 waveform entries shared across both output paths; play.wave0 / play.wave1 reference them by index.

data: DataElement
name: ClassVar[str] = 'q1_sequence.waveform_table_index'

The attribute name should be a static field in the attribute classes.

class WeightTableIndex(value)

Bases: Q1Imm

Index into a sequencer’s weight table: [0, 31].

Up to 32 integration-weight arrays are stored per sequencer; the acquire_weighted instruction selects one via its 6-bit weight_idx{0,1} fields (encoded as UI6Imm), of which only the low 5 bits address an entry on current hardware.

data: DataElement
name: ClassVar[str] = 'q1_sequence.weight_table_index'

The attribute name should be a static field in the attribute classes.