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, Enum

Direction prefix accepted by the public sequencer connection API.

input = 'in'
io = 'io'
output = 'out'
class PortReference(*, kind, module_location, oscillator_id=None)

Bases: object

Materialised 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: object

Calibrated 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, Enum

Qblox 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:

QbloxModuleKind

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: object

Physical location of a module within a Qblox instrument.

Parameters:
  • instrument_id (str) – Canonical identifier of the containing Cluster.

  • slot (int) – One-based physical Cluster slot. Target-specific range validation is performed by QbloxTargetDescription.

instrument_id: str
slot: int
class QbloxModuleView(*, kind, location, ports=(), oscillators=(), channel_bindings=())

Bases: object

Read-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: object

Canonical 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: object

Canonical 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 -1 when 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, Enum

I, 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(): in and io bind the acquisition path of every listed lane, while out binds 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: out binds the waveform generator, in binds the acquisition path, and io binds both. A single lane puts the sequencer in real mode and two lanes put it in complex mode, so io0_1 drives outputs 0 and 1 and acquires on inputs 0 and 1. See qblox_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.