qat.experimental.conversion.pulse_to_q1.qblox_configuration.models module

Records describing how canonical channels occupy physical Qblox sequencers.

The records here carry the intermediate state of Qblox configuration resolution: the per-module join of supplied configuration fragments, the sequencer each canonical channel is allocated, and the Q1 attributes that allocation resolves to.

class ReconciledModuleConfiguration(*, module_view, module_values=<factory>, sequencer_banks=<factory>)

Bases: object

Supplied configuration of one physical module, joined across its ports.

A source may describe one module through several canonical ports. Reconciliation resolves shared-configuration references and verifies that repeated module-wide values agree before storing one copy. Sequencer banks stay port-specific because each port supplies the bank its channels may be allocated from, although ports sharing a module still contend for the same physical sequencers.

Variables:
  • module_view – The hardware view of the physical module.

  • module_values – Agreed module-wide values keyed by source field name.

  • sequencer_banks – Supplied sequencer bank of each canonical port, keyed by physical sequencer index.

module_values: frozendict[str, str | int | float | bool | tuple[ConfigValue, ...] | frozendict[str, ConfigValue]]
module_view: QbloxModuleView
sequencer_banks: frozendict[str, frozendict[int, QbloxSequencerConfiguration]]
class SequencerBinding(*, channel_id, port_id, module_location, sequencer_index, sequencer_config, module_config)

Bases: object

Resolved Q1 configuration of one canonical channel’s physical sequencer.

Variables:
  • channel_id – Canonical channel identifier.

  • port_id – Canonical port the sequencer drives.

  • module_location – Physical instrument and slot of the allocated module.

  • sequencer_index – Allocated physical sequencer index.

  • sequencer_config – Resolved digital configuration and connections.

  • module_config – Resolved analogue configuration of the physical module.

channel_id: str
module_config: ModuleConfigAttr
module_location: QbloxModuleLocation
port_id: str
sequencer_config: SequencerConfigAttr
sequencer_index: int
class SequencerPlacement(*, channel_id, port_id, module_location, sequencer_index, sequencer_configuration)

Bases: object

The physical sequencer one canonical channel is allocated.

Variables:
  • channel_id – Canonical channel identifier.

  • port_id – Canonical port whose supplied bank the sequencer came from.

  • module_location – Physical instrument and slot of the allocated module.

  • sequencer_index – Allocated physical sequencer index.

  • sequencer_configuration – Configuration supplied for the selected sequencer.

channel_id: str
module_location: QbloxModuleLocation
port_id: str
sequencer_configuration: QbloxSequencerConfiguration
sequencer_index: int