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)
Allocate a physical sequencer to every canonical channel of every module.
- Parameters:
module_configurations¶ (
Mapping[QbloxModuleLocation,ReconciledModuleConfiguration]) – Configurations keyed by physical module location.- Return type:
frozendict[str,SequencerPlacement]- Returns:
The placement of each canonical channel, keyed by channel identifier.
- Raises:
ValueError – If a port supplies no bank, or its bank cannot satisfy the channels routed through it.