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/qblox_instruments/q1/index.html
https://docs.qblox.com/en/main/products/architecture/modules/index.html
- class AcquisitionConnectionMode(*values)
Bases:
str,EnumAcquisition connection parameters exposed by one module kind.
- combined = 'combined'
- components = 'components'
- none = 'none'
- class LocalOscillatorSpec(min_frequency_hz, max_frequency_hz, frequency_step_hz=1)
Bases:
objectFrequency limits of a module-local oscillator.
-
frequency_step_hz:
int
-
max_frequency_hz:
int
-
min_frequency_hz:
int
- supports(frequency_hz)
Return whether
frequency_hzis representable by this oscillator.- Return type:
bool
-
frequency_step_hz:
- class MarkerBitRole(*values)
Bases:
str,EnumKind of physical destination controlled by one Q1
mrkbit.- Variables:
marker_output – Front-panel marker output channel.
output_switch – RF output-enable switch.
- marker_output = 'marker_output'
- output_switch = 'output_switch'
- class MarkerBitTarget(role, channel)
Bases:
objectOne physical destination controlled by a Q1
mrkbit.channelis the zero-based compiler identifier for the destination. Module documentation labels baseband marker outputs as M1 through M4 and QRC output as M0. These correspond to compiler channels 0 through 3 and channel 0 respectively.- Variables:
role – Kind of physical destination controlled by the bit.
channel – Zero-based compiler channel identifier for that destination.
-
channel:
int
-
role:
MarkerBitRole
- class ModuleSpec(kind, sequencers, output_count, input_count, output_channel_map, marker_bit_0, marker_bit_1, marker_bit_2, marker_bit_3, input_channel_map=<factory>, acquisition_memory_bins=None, supports_mixer_correction=True, supports_local_oscillator_enable=True, supports_awg_modulation=True, supports_acquisition_demodulation=True, output_path_components=frozenset({SignalPath.i, SignalPath.q}), acquisition_connection_mode=AcquisitionConnectionMode.none, is_rf=False, local_oscillator=None)
Bases:
objectPhysical sequencer bank, channel map, and Q1 marker-bit routing.
Each
marker_bit_*field identifies the single physical destination controlled by that Q1mrkbit.Nonemarks an unused bit.- Variables:
kind – Qblox module kind described by this record.
sequencers – Sequencer type at each physical sequencer index.
output_count – Number of physical output channels.
input_count – Number of physical input channels.
output_channel_map – Sequencer indices permitted to drive each output channel.
marker_bit_0 – Destination controlled by Q1
mrkbit 0, orNone.marker_bit_1 – Destination controlled by Q1
mrkbit 1, orNone.marker_bit_2 – Destination controlled by Q1
mrkbit 2, orNone.marker_bit_3 – Destination controlled by Q1
mrkbit 3, orNone.input_channel_map – Sequencer indices permitted to acquire from each input channel.
acquisition_memory_bins – Total acquisition bins shared by the module.
supports_mixer_correction – Whether the module supports mixer corrections.
supports_local_oscillator_enable – Whether local oscillators can be enabled.
supports_awg_modulation – Whether AWG output paths support modulation.
supports_acquisition_demodulation – Whether acquisition paths support demodulation.
output_path_components – Signal components accepted by an output connection.
acquisition_connection_mode – Form of acquisition connection exposed by the module.
is_rf – 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. This mirrors
qblox_instruments.types.TypeHandle.is_rf_typefor QCM-RF, QRM-RF, and QRC.local_oscillator – Integrated local-oscillator limits, or
None.
- acquisition_components(path)
Return component API fields represented by an acquisition path.
- Return type:
tuple[SignalPath,...]
-
acquisition_connection_mode:
AcquisitionConnectionMode
-
acquisition_memory_bins:
int|None
- property acquisition_path_components: frozenset[SignalPath]
Return acquisition path values accepted by direct configuration.
-
input_channel_map:
frozendict[int,tuple[int,...]]
-
input_count:
int
-
is_rf:
bool
-
kind:
QbloxModuleKind
-
local_oscillator:
LocalOscillatorSpec|None
-
marker_bit_0:
MarkerBitTarget|None
-
marker_bit_1:
MarkerBitTarget|None
-
marker_bit_2:
MarkerBitTarget|None
-
marker_bit_3:
MarkerBitTarget|None
-
output_channel_map:
frozendict[int,tuple[int,...]]
-
output_count:
int
-
output_path_components:
frozenset[SignalPath]
- 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_acquisition_demodulation:
bool
-
supports_awg_modulation:
bool
-
supports_local_oscillator_enable:
bool
-
supports_mixer_correction:
bool
- class Q1AsmSpec(min_gain=-32768, max_gain=32767, min_offset=-32768, max_offset=32767, rt_duration_resolution_ns=1, min_rt_duration_ns=4, max_rt_duration_ns=65535, min_wait_immediate_ns=0, max_wait_immediate_ns=65535, register_size=4294967295)
Bases:
objectImmediate, duration, and register limits of the Q1ASM instruction set.
Q1 real-time instruction durations have 1 ns resolution and a 4 ns minimum non-zero duration. The wait instruction has a 16-bit immediate whose zero value is reserved for the documented real-time underflow-guard suspension behaviour.
See:
https://docs.qblox.com/en/main/products/qblox_instruments/q1/index.html#real-time-instructions
https://docs.qblox.com/en/main/products/architecture/sequencers/linq_based_feedback.html
-
max_gain:
int
-
max_offset:
int
-
max_rt_duration_ns:
int
-
max_wait_immediate_ns:
int
-
min_gain:
int
-
min_offset:
int
-
min_rt_duration_ns:
int
-
min_wait_immediate_ns:
int
-
register_size:
int
-
rt_duration_resolution_ns:
int
- class Q1SequencerFeature(*values)
Bases:
str,EnumFeature predicates exposed by a Q1 sequencer type.
- acquisition = 'acquisition'
- awg = 'awg'
- class Q1SequencerSpec(type, instruction_capacity, q1_core_clock_period_ns=4, sample_period_ns=1, min_waveform_sample=-1.0, max_waveform_sample=1.0, 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.
q1_core_clock_period_nsdescribes instruction issue timing such asnop.sample_period_nsdescribes the independent waveform memory sampling grid.See:
https://docs.qblox.com/en/main/products/architecture/sequencers/sequencer.html#q1-core
https://docs.qblox.com/en/main/products/architecture/sequencers/sequencer.html#real-time-core
https://docs.qblox.com/en/main/products/architecture/sequencers/control.html
https://docs.qblox.com/en/main/products/architecture/sequencers/readout.html
- property features: frozenset[Q1SequencerFeature]
Return the feature predicates implied by this sequencer type.
-
instruction_capacity:
int
-
max_waveform_sample:
float
-
min_waveform_sample:
float
-
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
-
q1_core_clock_period_ns:
int
-
readout:
ReadoutSpec|None
-
register_count:
int
-
sample_period_ns:
int
- supports(feature)
Return whether this sequencer type provides
feature.- Return type:
bool
-
type:
Q1SequencerType
-
waveform_sample_capacity:
int
- class Q1SequencerType(*values)
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,...]
- is_readout_sequencer(kind, index)
Return whether a physical sequencer is a readout sequencer.
- Return type:
bool
-
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, integration_length_step_samples=4, integration_sample_period_ns=1, weight_sample_period_ns=1, min_acquisition_threshold=-16777212, max_acquisition_threshold=16777212, weight_sample_capacity=16384)
Bases:
objectLimits of the acquisition path added by a readout sequencer.
Integration length is measured in samples of
integration_sample_period_nsand must be a multiple ofintegration_length_step_samples, independently of Q1 instruction duration constraints. Integration and weight limits follow the readout sequencer and sequencer API documentation.See:
https://docs.qblox.com/en/main/products/architecture/sequencers/readout.html
https://docs.qblox.com/en/main/products/qblox_instruments/api/sequencer.html
-
integration_length_step_samples:
int
-
integration_sample_period_ns:
int
-
max_acquisition_threshold:
int
-
max_integration_length_samples:
int
-
min_acquisition_threshold:
int
-
min_integration_length_samples:
int
-
weight_sample_capacity:
int
-
weight_sample_period_ns:
int