qat.experimental.conversion.pulse_to_q1.qblox_configuration.allocation module
Allocate physical Qblox sequencers from the banks canonical ports supply.
The allocation reproduces the legacy AllocatingBackend semantics: a canonical channel
is allocated out of the bank its own port supplies, minus the sequencers already taken on
the physical module, and every channel of one port keeps its assignment for the whole
compilation. Nothing is synthesised - a sequencer the source never described is never
allocated, so the supplied bank alone decides what a module may use.
- allocate_sequencers(module_configurations, used_channel_ids)
Allocate a physical sequencer to the canonical channels a program uses.
- Parameters:
module_configurations¶ (
Mapping[QbloxModuleLocation,ReconciledModuleConfiguration]) – Configurations keyed by physical module location.used_channel_ids¶ (
Collection[str]) – A collection of canonical channels used within a program.
- Return type:
frozendict[str,SequencerPlacement]- Returns:
The placement of each allocated canonical channel, keyed by channel identifier.
- Raises:
ValueError – If a port supplies no bank, or its bank cannot satisfy the channels routed through it.