qat.experimental.system_data.hardware.qblox.target module
Dependency-neutral target description for Qblox hardware.
The records in this module model the Q1 sequencer and module architecture documented by Qblox. They describe a compilation target, not the installed hardware or its calibrated configuration.
See:
https://docs.qblox.com/en/main/products/architecture/sequencers/sequencer.html
https://docs.qblox.com/en/main/products/qblox_instruments/api/sequencer.html
https://docs.qblox.com/en/main/products/architecture/modules/index.html
- class ModuleSpec(kind, sequencers, output_count, input_count, output_channel_map, input_channel_map=<factory>, marker_count=0, acquisition_memory_bins=None, supports_mixer_correction=True, is_rf=False)
Bases:
objectPhysical sequencer bank and channel map of one Qblox module kind.
-
acquisition_memory_bins:
int|None
-
input_channel_map:
frozendict[int,tuple[int,...]]
-
input_count:
int
-
is_rf:
bool Whether the module carries an RF front end.
An RF module exposes one logical I/O port per RF chain and derives its I and Q lanes internally, so a connection may name only one port index. Mirrors
qblox_instruments.types.TypeHandle.is_rf_type, which covers QCM-RF, QRM-RF, and QRC. The driver’sModuleproperty delegates to that classification.
-
kind:
QbloxModuleKind
-
marker_count:
int
-
output_channel_map:
frozendict[int,tuple[int,...]]
-
output_count:
int
- property sequencer_count: int
Return the number of physical Q1 sequencers.
- sequencer_indices(type_=None)
Return all sequencer indices, optionally filtered by Q1 sequencer type.
- Return type:
tuple[int,...]
-
sequencers:
tuple[Q1SequencerType,...]
-
supports_mixer_correction:
bool
-
acquisition_memory_bins:
- class Q1AsmSpec(min_gain=-32768, max_gain=32767, min_offset=-32768, max_offset=32767, max_wait_time_ns=65532, register_size=4294967295, loop_unroll_threshold=4)
Bases:
objectImmediate and register limits of the Q1ASM instruction set.
-
loop_unroll_threshold:
int
-
max_gain:
int
-
max_offset:
int
-
max_wait_time_ns:
int
-
min_gain:
int
-
min_offset:
int
-
register_size:
int
-
loop_unroll_threshold:
- class Q1SequencerFeature(value)
Bases:
str,EnumFeature predicates exposed by a Q1 sequencer type.
- acquisition = 'acquisition'
- awg = 'awg'
- class Q1SequencerSpec(type, instruction_capacity, clock_period_ns=4, sample_rate_hz=1000000000, nco_min_frequency_hz=-500000000.0, nco_max_frequency_hz=500000000.0, nco_phase_steps=1000000000, nco_phase_steps_per_degree=2777777.777777778, nco_frequency_steps_per_hz=4, nco_frequency_limit_steps=2000000000, register_count=64, waveform_sample_capacity=16384, readout=None)
Bases:
objectStatic limits and features of one Q1 sequencer type.
-
clock_period_ns:
int
- property features: frozenset[Q1SequencerFeature]
Return the feature predicates implied by this sequencer type.
-
instruction_capacity:
int
-
nco_frequency_limit_steps:
int
-
nco_frequency_steps_per_hz:
int
-
nco_max_frequency_hz:
float
-
nco_min_frequency_hz:
float
-
nco_phase_steps:
int
-
nco_phase_steps_per_degree:
float
-
readout:
ReadoutSpec|None
-
register_count:
int
-
sample_rate_hz:
int
- supports(feature)
Return whether this sequencer type provides
feature.- Return type:
bool
-
type:
Q1SequencerType
-
waveform_sample_capacity:
int
-
clock_period_ns:
- class Q1SequencerType(value)
Bases:
str,EnumQ1 sequencer types defined by Qblox.
- control = 'control'
- readout = 'readout'
- class QbloxTargetDescription(q1asm, sequencer_specs, module_specs, min_module_slot=1, max_module_slot=20)
Bases:
objectImmutable Qblox target specification and typed query boundary.
- input_sequencers(kind, input_)
Return sequencers routable from a physical input channel.
- Return type:
tuple[int,...]
-
max_module_slot:
int
-
min_module_slot:
int
- module_spec(kind)
Return the target specification for
kind.- Return type:
-
module_specs:
frozendict[QbloxModuleKind,ModuleSpec]
- output_sequencers(kind, output)
Return sequencers routable to a physical output channel.
- Return type:
tuple[int,...]
- sequencer(kind, index)
Return the module-bound target view of a physical sequencer.
- Return type:
- sequencer_spec(type_)
Return the shared target specification for a Q1 sequencer type.
- Return type:
-
sequencer_specs:
frozendict[Q1SequencerType,Q1SequencerSpec]
- supports(kind, index, feature)
Return whether a physical sequencer provides
feature.- Return type:
bool
- validate_module_location(location)
Validate that a module location is representable by this target.
- Parameters:
location¶ (
QbloxModuleLocation) – Physical instrument and slot occupied by a module.- Raises:
ValueError – If the slot falls outside the target’s Cluster chassis.
- Return type:
None
- class ReadoutSpec(min_integration_length_samples=4, max_integration_length_samples=16777212, min_acquisition_threshold=-16777212, max_acquisition_threshold=16777212, weight_sample_capacity=16384)
Bases:
objectLimits of the acquisition path added by a readout sequencer.
-
max_acquisition_threshold:
int
-
max_integration_length_samples:
int
-
min_acquisition_threshold:
int
-
min_integration_length_samples:
int
-
weight_sample_capacity:
int
-
max_acquisition_threshold: