qat.experimental.system_data.hardware.qblox.models module
Dependency-neutral values used by the Qblox hardware projection.
The records describe physical identity and canonical bindings only. They do not decode PuRR payloads, supply Qblox defaults, allocate sequencers, or construct Q1 attributes. All records are immutable so a derived view can be shared safely between compiler passes.
- class DirectionKind(value)
Bases:
str,EnumDirection prefix accepted by the public sequencer connection API.
- input = 'in'
- io = 'io'
- output = 'out'
- class PortReference(*, kind, module_location, oscillator_id=None)
Bases:
objectMaterialised physical identity attached to a canonical port.
This target-specific extension gives the hardware view the stable identity needed to group canonical ports without interpreting legacy configuration payloads.
- Parameters:
kind¶ (
QbloxModuleKind) – Installed module kind.module_location¶ (
QbloxModuleLocation) – Physical instrument and module slot.oscillator_id¶ (
Optional[str]) – Canonical oscillator referenced by the source port, if any.
-
kind:
QbloxModuleKind
-
module_location:
QbloxModuleLocation
-
oscillator_id:
str|None
- class QbloxChannelBinding(*, channel_id, port_id, port_resource_id, carrier_frequency, oscillator_id, oscillator_frequency, oscillator_resource_id, scale, imbalance, phase_offset, module_location)
Bases:
objectCalibrated canonical channel bound to a Qblox module.
The record contains every value needed to resolve a channel after derivation, without retaining or rereading the canonical parent.
- Variables:
channel_id – Canonical channel identifier.
port_id – Canonical port identifier.
port_resource_id – External resource joined to the port.
carrier_frequency – Calibrated channel carrier frequency in Hz.
oscillator_id – Referenced canonical oscillator identifier, when present.
oscillator_frequency – Referenced oscillator frequency in Hz, when present.
oscillator_resource_id – External resource joined to the oscillator, when present.
scale – Calibrated complex channel scale.
imbalance – Calibrated IQ gain imbalance.
phase_offset – Calibrated IQ phase offset in radians.
module_location – Physical module location resolved from the port.
-
carrier_frequency:
int
-
channel_id:
str
-
imbalance:
float
-
module_location:
QbloxModuleLocation
-
oscillator_frequency:
int|None
-
oscillator_id:
str|None
-
oscillator_resource_id:
str|None
-
phase_offset:
float
-
port_id:
str
-
port_resource_id:
str
-
scale:
complex
- class QbloxModuleKind(value)
Bases:
str,EnumQblox module kinds represented by canonical system data.
- classmethod from_qblox_identifier(value)
Parse a module kind embedded in a canonical Qblox identifier.
- Parameters:
value¶ (
str|None) – Canonical resource identifier.- Return type:
QbloxModuleKind|None- Returns:
The longest matching kind, or
None.
- classmethod from_qblox_name(value)
Parse an official Qblox module name.
- Parameters:
value¶ (
str) – Module name using hyphens or underscores in any case.- Return type:
- Returns:
The parsed module kind.
- qcm = 'qcm'
- qcm_rf = 'qcm_rf'
- qrc = 'qrc'
- qrm = 'qrm'
- qrm_rf = 'qrm_rf'
- class QbloxModuleLocation(instrument_id, slot)
Bases:
objectPhysical location of a module within a Qblox instrument.
- Parameters:
-
instrument_id:
str
-
slot:
int
- class QbloxModuleView(*, kind, location, ports=(), oscillators=(), channel_bindings=())
Bases:
objectRead-only module projection consumed by configuration resolution.
The view groups canonical hardware without parsing source configuration, applying defaults, or selecting a sequencer. Those concerns belong to later stack layers.
- Variables:
kind – Installed module kind.
location – Instrument and slot occupied by the module.
ports – Canonical ports attached to the module.
oscillators – Local oscillators used by those ports and channels.
channel_bindings – Calibrated logical channels routed through the module.
-
channel_bindings:
tuple[QbloxChannelBinding,...]
-
kind:
QbloxModuleKind
-
location:
QbloxModuleLocation
-
oscillators:
tuple[QbloxOscillatorBinding,...]
-
ports:
tuple[QbloxPortBinding,...]
- class QbloxOscillatorBinding(*, oscillator_id, resource_id, frequency)
Bases:
objectCanonical local oscillator used by one installed module.
- Variables:
oscillator_id – Canonical oscillator identifier.
resource_id – External-resource identifier for the physical oscillator.
frequency – Oscillator frequency in Hz.
-
frequency:
int
-
oscillator_id:
str
-
resource_id:
str
- class QbloxPortBinding(*, port_id, resource_id, sample_time, block_size, min_blocks, max_blocks, acquire_allowed, oscillator_ids=())
Bases:
objectCanonical port projected onto one installed module.
Timing and acquisition fields are copied from canonical system data so later compiler layers need not retain the canonical parent.
- Variables:
port_id – Canonical port identifier.
resource_id – External-resource identifier for the physical channel.
sample_time – Sample period in picoseconds.
block_size – Number of samples in one valid waveform block.
min_blocks – Minimum waveform length in blocks.
max_blocks – Maximum waveform length in blocks, or
-1when unbounded.acquire_allowed – Whether the port can carry acquisition operations.
oscillator_ids – Canonical local oscillators used by the port’s channels.
-
acquire_allowed:
bool
-
block_size:
int
-
max_blocks:
int
-
min_blocks:
int
-
oscillator_ids:
tuple[str,...]
-
port_id:
str
-
resource_id:
str
-
sample_time:
int
- class SignalPath(value)
Bases:
str,EnumI, Q, or combined IQ signal path exposed by a Q1 sequencer.
- i = 'I'
- iq = 'IQ'
- q = 'Q'
- connection_input_ids(direction, port_ids)
Return the physical inputs a single sequencer connection acquires from.
Mirrors
connection_output_ids():inandiobind the acquisition path of every listed lane, whileoutbinds none.- Parameters:
direction¶ (
DirectionKind) – Direction prefix of the connection.port_ids¶ (
Sequence[int]) – Ordered I/O ports the connection binds.
- Return type:
tuple[int,...]- Returns:
The physical inputs the connection acquires from, in the supplied order.
- connection_output_ids(direction, port_ids)
Return the physical outputs a single sequencer connection drives.
The Qblox driver decodes
<direction><I>[_<Q>]by applying the direction to every listed lane:outbinds the waveform generator,inbinds the acquisition path, andiobinds both. A single lane puts the sequencer in real mode and two lanes put it in complex mode, soio0_1drives outputs 0 and 1 and acquires on inputs 0 and 1. Seeqblox_instruments.qcodes_drivers.sequencer.Sequencer.validate_connections.- Parameters:
direction¶ (
DirectionKind) – Direction prefix of the connection.port_ids¶ (
Sequence[int]) – Ordered I/O ports the connection binds.
- Return type:
tuple[int,...]- Returns:
The physical outputs the connection drives, in the supplied order.