qblox#
Python dataclasses for compilation to Qblox hardware.
Module Contents#
Classes#
Specifies a certain parameter with a fixed max and min in a certain unit. |
|
Specifies the fixed hardware properties needed in the backend. |
|
Data structure describing a pulse or acquisition and containing all the information |
|
Dataclass containing all the settings for a generic LO instrument. |
|
Shared settings between all the Qblox modules. |
|
Settings for a baseband module. |
|
Global settings for the Pulsar to be set in the InstrumentCoordinator component. |
|
Global settings for the module to be set in the InstrumentCoordinator component. |
|
Sequencer level settings. |
|
Base class for a Qblox hardware description. |
|
Information needed to specify an complex input/output in the |
|
Information needed to specify a real input/output in the |
|
Information needed to specify a digital (marker) output (for |
|
Information needed to specify a QRM in the |
|
Information needed to specify a QCM in the |
|
Information needed to specify a QRM-RF in the |
|
Information needed to specify a QCM-RF in the |
|
Information needed to specify a Cluster in the |
|
Information needed to specify a Pulsar QCM in the |
|
Information needed to specify a Pulsar QRM in the |
|
Input gain settings for a real input connected to a port-clock combination. |
|
Input gain settings for a real input connected to a port-clock combination. |
|
Output attenuation setting for a port-clock combination. |
|
Input attenuation setting for a port-clock combination. |
|
Configuration options for a sequencer. |
|
Datastructure containing the hardware options for each port-clock combination. |
Attributes#
Specifies a piece of Qblox hardware and its instrument-specific settings. |
- class BoundedParameter[source]#
Specifies a certain parameter with a fixed max and min in a certain unit.
- class StaticHardwareProperties[source]#
Specifies the fixed hardware properties needed in the backend.
- mixer_dc_offset_range: BoundedParameter[source]#
Specifies the range over which the dc offsets can be set that are used for mixer calibration.
- valid_ios: List[str][source]#
Specifies the complex/real output identifiers supported by this device.
- class OpInfo[source]#
Bases:
dataclasses_json.DataClassJsonMixin
Data structure describing a pulse or acquisition and containing all the information required to play it.
- property is_real_time_io_operation: bool[source]#
Returns
True
if the operation is a non-idle pulse (i.e., it has a waveform),False
otherwise.
- property is_offset_instruction: bool[source]#
Returns
True
if the operation describes a DC offset operation, corresponding to the Q1ASM instructionset_awg_offset
.
- property is_parameter_update: bool[source]#
Return
True
if the operation is a parameter update, corresponding to the Q1ASM instructionupd_param
.
- class LOSettings[source]#
Bases:
dataclasses_json.DataClassJsonMixin
Dataclass containing all the settings for a generic LO instrument.
- classmethod from_mapping(mapping: Dict[str, Any]) LOSettings [source]#
Factory method for the LOSettings from a mapping dict. The required format is {“frequency”: {parameter_name: value}, “power”: {parameter_name: value}}. For convenience {“frequency”: value, “power”: value} is also allowed.
- Parameters
mapping – The part of the mapping dict relevant for this instrument.
- Returns
Instantiated LOSettings from the mapping dict.
- class BaseModuleSettings[source]#
Bases:
dataclasses_json.DataClassJsonMixin
Shared settings between all the Qblox modules.
- class BasebandModuleSettings[source]#
Bases:
BaseModuleSettings
Settings for a baseband module.
Class exists to ensure that the cluster baseband modules don’t need special treatment in the rest of the code.
- classmethod extract_settings_from_mapping(mapping: Dict[str, Any], **kwargs: Optional[dict]) BasebandModuleSettings [source]#
Factory method that takes all the settings defined in the mapping and generates a
BasebandModuleSettings
object from it.- Parameters
mapping – The mapping dict to extract the settings from
**kwargs – Additional keyword arguments passed to the constructor. Can be used to override parts of the mapping dict.
- class PulsarSettings[source]#
Bases:
BaseModuleSettings
Global settings for the Pulsar to be set in the InstrumentCoordinator component. This is kept separate from the settings that can be set on a per sequencer basis, which are specified in
SequencerSettings
.- ref: str = 'internal'[source]#
The reference source. Should either be
"internal"
or"external"
, will raise an exception in the instrument coordinator component otherwise.
- classmethod extract_settings_from_mapping(mapping: Dict[str, Any], **kwargs: Optional[dict]) PulsarSettings [source]#
Factory method that takes all the settings defined in the mapping and generates a
PulsarSettings
object from it.- Parameters
mapping – The mapping dict to extract the settings from
**kwargs – Additional keyword arguments passed to the constructor. Can be used to override parts of the mapping dict.
- class RFModuleSettings[source]#
Bases:
BaseModuleSettings
Global settings for the module to be set in the InstrumentCoordinator component. This is kept separate from the settings that can be set on a per sequencer basis, which are specified in
SequencerSettings
.- lo0_freq: Optional[float][source]#
The frequency of Output 0 (O0) LO. If left None, the parameter will not be set.
- lo1_freq: Optional[float][source]#
The frequency of Output 1 (O1) LO. If left None, the parameter will not be set.
- classmethod extract_settings_from_mapping(mapping: Dict[str, Any], **kwargs: Optional[dict]) RFModuleSettings [source]#
Factory method that takes all the settings defined in the mapping and generates an
RFModuleSettings
object from it.- Parameters
mapping – The mapping dict to extract the settings from
**kwargs – Additional keyword arguments passed to the constructor. Can be used to override parts of the mapping dict.
- class SequencerSettings[source]#
Bases:
dataclasses_json.DataClassJsonMixin
Sequencer level settings.
In the Qblox driver these settings are typically recognized by parameter names of the form
"{module}.sequencer{index}.{setting}"
(for allowed values see https://qblox-qblox-instruments.readthedocs-hosted.com/en/master/api_reference/sequencer.html). These settings are set once and will remain unchanged after, meaning that these correspond to the “slow” QCoDeS parameters and not settings that are changed dynamically by the sequencer.These settings are mostly defined in the hardware configuration under each port-clock key combination or in some cases through the device configuration (e.g. parameters related to thresholded acquisition).
- connected_outputs: Optional[Union[Tuple[int], Tuple[int, int]]][source]#
Specifies which physical outputs this sequencer produces waveform data for.
- connected_inputs: Optional[Union[Tuple[int], Tuple[int, int]]][source]#
Specifies which physical inputs this sequencer collects data for.
- io_mode: quantify_scheduler.backends.qblox.enums.IoMode[source]#
Specifies the type of input/output this sequencer is handling.
- init_offset_awg_path_0: float = 0.0[source]#
Specifies what value the sequencer offset for AWG path 0 will be reset to before the start of the experiment.
- init_offset_awg_path_1: float = 0.0[source]#
Specifies what value the sequencer offset for AWG path 1 will be reset to before the start of the experiment.
- init_gain_awg_path_0: float = 1.0[source]#
Specifies what value the sequencer gain for AWG path 0 will be reset to before the start of the experiment.
- init_gain_awg_path_1: float = 1.0[source]#
Specifies what value the sequencer gain for AWG path 0 will be reset to before the start of the experiment.
- mixer_corr_phase_offset_degree: float = 0.0[source]#
The phase shift to apply between the I and Q channels, to correct for quadrature errors.
- mixer_corr_gain_ratio: float = 1.0[source]#
The gain ratio to apply in order to correct for imbalances between the I and Q paths of the mixer.
- integration_length_acq: Optional[int][source]#
Integration length for acquisitions. Must be a multiple of 4 ns.
- sequence: Optional[Dict[str, Any]][source]#
JSON compatible dictionary holding the waveforms and program for the sequencer.
- seq_fn: Optional[str][source]#
Filename of JSON file containing a dump of the waveforms and program.
- thresholded_acq_threshold: Optional[float][source]#
The sequencer discretization threshold for discretizing the phase rotation result.
- thresholded_acq_rotation: Optional[float][source]#
The sequencer integration result phase rotation in degrees.
- ttl_acq_input_select: Optional[int][source]#
Selects the input used to compare against the threshold value in the TTL trigger acquisition path.
- ttl_acq_threshold: Optional[float][source]#
“Sets the threshold value with which to compare the input ADC values of the selected input path.
- ttl_acq_auto_bin_incr_en: Optional[bool][source]#
Selects if the bin index is automatically incremented when acquiring multiple triggers.
- classmethod initialize_from_config_dict(sequencer_cfg: Dict[str, Any], io_name: str, connected_outputs: Optional[Union[Tuple[int], Tuple[int, int]]], connected_inputs: Optional[Union[Tuple[int], Tuple[int, int]]], io_mode: quantify_scheduler.backends.qblox.enums.IoMode) SequencerSettings [source]#
Instantiates an instance of this class, with initial parameters determined from the sequencer configuration dictionary.
- Parameters
sequencer_cfg (dict) – The sequencer configuration dict.
io_name – Specifies the io identifier of the hardware config (e.g. complex_output_0).
connected_outputs – The outputs connected to the sequencer.
connected_inputs – The inputs connected to the sequencer.
io_mode – The type of input/output this sequencer is handling.
- Returns
A SequencerSettings instance with initial values.
- Return type
- class QbloxBaseDescription(**data: Any)[source]#
Bases:
quantify_scheduler.backends.types.common.HardwareDescription
Base class for a Qblox hardware description.
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
- class ComplexChannelDescription(**data: Any)[source]#
Bases:
quantify_scheduler.structure.model.DataStructure
Information needed to specify an complex input/output in the
QbloxHardwareCompilationConfig
.Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
- marker_debug_mode_enable: bool = False[source]#
Setting to send 4 ns trigger pulse on the marker located next to the I/O port along with each operation. The marker will be pulled high at the same time as the module starts playing or acquiring.
- class RealChannelDescription(**data: Any)[source]#
Bases:
quantify_scheduler.structure.model.DataStructure
Information needed to specify a real input/output in the
QbloxHardwareCompilationConfig
.Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
- class DigitalChannelDescription(**data: Any)[source]#
Bases:
quantify_scheduler.structure.model.DataStructure
Information needed to specify a digital (marker) output (for
MarkerPulse
) in theQbloxHardwareCompilationConfig
.This datastructure is currently empty, since no extra settings are needed/allowed for a digital output.
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
- class QRMDescription(**data: Any)[source]#
Bases:
quantify_scheduler.structure.model.DataStructure
Information needed to specify a QRM in the
QbloxHardwareCompilationConfig
.Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
- complex_output_0: Optional[ComplexChannelDescription][source]#
Description of the complex output channel on this QRM, corresponding to ports O1 and O2.
- complex_input_0: Optional[ComplexChannelDescription][source]#
Description of the complex input channel on this QRM, corresponding to ports I1 and I2.
- real_output_0: Optional[RealChannelDescription][source]#
Description of the real output channel on this QRM, corresponding to port O1.
- real_output_1: Optional[RealChannelDescription][source]#
Description of the real output channel on this QRM, corresponding to port O2.
- real_input_0: Optional[RealChannelDescription][source]#
Description of the real input channel on this QRM, corresponding to port I1.
- real_input_1: Optional[RealChannelDescription][source]#
Description of the real output channel on this QRM, corresponding to port I2.
- digital_output_0: Optional[DigitalChannelDescription][source]#
Description of the digital (marker) output channel on this QRM, corresponding to port M1.
- digital_output_1: Optional[DigitalChannelDescription][source]#
Description of the digital (marker) output channel on this QRM, corresponding to port M2.
- digital_output_2: Optional[DigitalChannelDescription][source]#
Description of the digital (marker) output channel on this QRM, corresponding to port M3.
- digital_output_3: Optional[DigitalChannelDescription][source]#
Description of the digital (marker) output channel on this QRM, corresponding to port M4.
- class QCMDescription(**data: Any)[source]#
Bases:
quantify_scheduler.structure.model.DataStructure
Information needed to specify a QCM in the
QbloxHardwareCompilationConfig
.Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
- complex_output_0: Optional[ComplexChannelDescription][source]#
Description of the complex output channel on this QRM, corresponding to ports O1 and O2.
- complex_output_1: Optional[ComplexChannelDescription][source]#
Description of the complex output channel on this QRM, corresponding to ports O3 and O4.
- real_output_0: Optional[RealChannelDescription][source]#
Description of the real output channel on this QRM, corresponding to port O1.
- real_output_1: Optional[RealChannelDescription][source]#
Description of the real output channel on this QRM, corresponding to port O2.
- real_output_2: Optional[RealChannelDescription][source]#
Description of the real output channel on this QRM, corresponding to port O3.
- real_output_3: Optional[RealChannelDescription][source]#
Description of the real output channel on this QRM, corresponding to port O4.
- digital_output_0: Optional[DigitalChannelDescription][source]#
Description of the digital (marker) output channel on this QRM, corresponding to port M1.
- digital_output_1: Optional[DigitalChannelDescription][source]#
Description of the digital (marker) output channel on this QRM, corresponding to port M2.
- digital_output_2: Optional[DigitalChannelDescription][source]#
Description of the digital (marker) output channel on this QRM, corresponding to port M3.
- digital_output_3: Optional[DigitalChannelDescription][source]#
Description of the digital (marker) output channel on this QRM, corresponding to port M4.
- class QRMRFDescription(**data: Any)[source]#
Bases:
quantify_scheduler.structure.model.DataStructure
Information needed to specify a QRM-RF in the
QbloxHardwareCompilationConfig
.Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
- complex_output_0: Optional[ComplexChannelDescription][source]#
Description of the complex output channel on this QRM, corresponding to port O1.
- complex_input_0: Optional[ComplexChannelDescription][source]#
Description of the complex input channel on this QRM, corresponding to port I1.
- digital_output_0: Optional[DigitalChannelDescription][source]#
Description of the digital (marker) output channel on this QRM, corresponding to port M1.
- digital_output_1: Optional[DigitalChannelDescription][source]#
Description of the digital (marker) output channel on this QRM, corresponding to port M2.
- class QCMRFDescription(**data: Any)[source]#
Bases:
quantify_scheduler.structure.model.DataStructure
Information needed to specify a QCM-RF in the
QbloxHardwareCompilationConfig
.Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
- complex_output_0: Optional[ComplexChannelDescription][source]#
Description of the complex output channel on this QRM, corresponding to port O1.
- complex_output_1: Optional[ComplexChannelDescription][source]#
Description of the complex output channel on this QRM, corresponding to port O2.
- digital_output_0: Optional[DigitalChannelDescription][source]#
Description of the digital (marker) output channel on this QRM, corresponding to port M1.
- digital_output_1: Optional[DigitalChannelDescription][source]#
Description of the digital (marker) output channel on this QRM, corresponding to port M2.
- class ClusterDescription(**data: Any)[source]#
Bases:
QbloxBaseDescription
Information needed to specify a Cluster in the
CompilationConfig
.Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
- instrument_type: Literal[Cluster][source]#
The instrument type, used to select this datastructure when parsing a
CompilationConfig
.
- class PulsarQCMDescription(**data: Any)[source]#
Bases:
QbloxBaseDescription
Information needed to specify a Pulsar QCM in the
CompilationConfig
.Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
- instrument_type: Literal[Pulsar_QCM][source]#
The instrument type, used to select this datastructure when parsing a
CompilationConfig
.
- complex_output_0: Optional[ComplexChannelDescription][source]#
Description of the complex output channel on this QRM, corresponding to ports O1 and O2.
- complex_output_1: Optional[ComplexChannelDescription][source]#
Description of the complex output channel on this QRM, corresponding to ports O3 and O4.
- real_output_0: Optional[RealChannelDescription][source]#
Description of the real output channel on this QRM, corresponding to port O1.
- real_output_1: Optional[RealChannelDescription][source]#
Description of the real output channel on this QRM, corresponding to port O2.
- real_output_2: Optional[RealChannelDescription][source]#
Description of the real output channel on this QRM, corresponding to port O3.
- real_output_3: Optional[RealChannelDescription][source]#
Description of the real output channel on this QRM, corresponding to port O4.
- digital_output_0: Optional[DigitalChannelDescription][source]#
Description of the digital (marker) output channel on this QRM, corresponding to port M1.
- digital_output_1: Optional[DigitalChannelDescription][source]#
Description of the digital (marker) output channel on this QRM, corresponding to port M2.
- digital_output_2: Optional[DigitalChannelDescription][source]#
Description of the digital (marker) output channel on this QRM, corresponding to port M3.
- digital_output_3: Optional[DigitalChannelDescription][source]#
Description of the digital (marker) output channel on this QRM, corresponding to port M4.
- class PulsarQRMDescription(**data: Any)[source]#
Bases:
QbloxBaseDescription
Information needed to specify a Pulsar QRM in the
CompilationConfig
.Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
- instrument_type: Literal[Pulsar_QRM][source]#
The instrument type, used to select this datastructure when parsing a
CompilationConfig
.
- complex_output_0: Optional[ComplexChannelDescription][source]#
Description of the complex output channel on this QRM, corresponding to ports O1 and O2.
- complex_input_0: Optional[ComplexChannelDescription][source]#
Description of the complex input channel on this QRM, corresponding to ports I1 and I2.
- real_output_0: Optional[RealChannelDescription][source]#
Description of the real output channel on this QRM, corresponding to port O1.
- real_output_1: Optional[RealChannelDescription][source]#
Description of the real output channel on this QRM, corresponding to port O2.
- real_input_0: Optional[RealChannelDescription][source]#
Description of the real input channel on this QRM, corresponding to port I1.
- real_input_1: Optional[RealChannelDescription][source]#
Description of the real output channel on this QRM, corresponding to port I2.
- digital_output_0: Optional[DigitalChannelDescription][source]#
Description of the digital (marker) output channel on this QRM, corresponding to port M1.
- digital_output_1: Optional[DigitalChannelDescription][source]#
Description of the digital (marker) output channel on this QRM, corresponding to port M2.
- digital_output_2: Optional[DigitalChannelDescription][source]#
Description of the digital (marker) output channel on this QRM, corresponding to port M3.
- digital_output_3: Optional[DigitalChannelDescription][source]#
Description of the digital (marker) output channel on this QRM, corresponding to port M4.
- QbloxHardwareDescription[source]#
Specifies a piece of Qblox hardware and its instrument-specific settings.
- class RealInputGain[source]#
Bases:
int
Input gain settings for a real input connected to a port-clock combination.
This gain value will be set on the QRM input ports that are connected to this port-clock combination.
Example
hardware_compilation_config.hardware_options.input_gain = { "q0:res-q0.ro": RealInputGain(2), }
Initialize self. See help(type(self)) for accurate signature.
- class ComplexInputGain(**data: Any)[source]#
Bases:
quantify_scheduler.structure.model.DataStructure
Input gain settings for a real input connected to a port-clock combination.
This gain value will be set on the QRM input ports that are connected to this port-clock combination.
Example
hardware_compilation_config.hardware_options.input_gain = { "q0:res-q0.ro": ComplexInputGain( gain_I=2, gain_Q=3 ), }
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
- class OutputAttenuation[source]#
Bases:
int
Output attenuation setting for a port-clock combination.
This attenuation value will be set on each control-hardware output port that is connected to this port-clock combination.
Example
hardware_compilation_config.hardware_options.output_att = { "q0:res-q0.ro": OutputAttenuation(10), }
Initialize self. See help(type(self)) for accurate signature.
- class InputAttenuation[source]#
Bases:
int
Input attenuation setting for a port-clock combination.
This attenuation value will be set on each control-hardware output port that is connected to this port-clock combination.
Example
hardware_compilation_config.hardware_options.input_att = { "q0:res-q0.ro": InputAttenuation(10), }
Initialize self. See help(type(self)) for accurate signature.
- class SequencerOptions(**data: Any)[source]#
Bases:
quantify_scheduler.structure.model.DataStructure
Configuration options for a sequencer.
Example
hardware_compilation_config.hardware_options.sequencer_options = { "q0:res-q0.ro": { "init_offset_awg_path_0": 0.1, "init_offset_awg_path_1": -0.1, "init_gain_awg_path_0": 0.9, "init_gain_awg_path_1": 1.0, "ttl_acq_threshold": 0.5 "qasm_hook_func": foo } }
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
- init_offset_awg_path_0: float = 0.0[source]#
Specifies what value the sequencer offset for AWG path 0 will be reset to before the start of the experiment.
- init_offset_awg_path_1: float = 0.0[source]#
Specifies what value the sequencer offset for AWG path 1 will be reset to before the start of the experiment.
- init_gain_awg_path_0: float = 1.0[source]#
Specifies what value the sequencer gain for AWG path 0 will be reset to before the start of the experiment.
- init_gain_awg_path_1: float = 1.0[source]#
Specifies what value the sequencer gain for AWG path 0 will be reset to before the start of the experiment.
- ttl_acq_threshold: Optional[float][source]#
Threshold value with which to compare the input ADC values of the selected input path.
- qasm_hook_func: Optional[Callable][source]#
Function to inject custom qasm instructions after the compiler inserts the footer and the stop instruction in the generated qasm program.
- instruction_generated_pulses_enabled: bool = False[source]#
(deprecated) Generate certain specific waveforms from the pulse library using a more complicated series of sequencer instructions, which helps conserve waveform memory.
Note: this setting is deprecated and will be removed in a future version. Long square pulses and staircase pulses can be generated with the newly introduced
StitchedPulseBuilder
- class QbloxHardwareOptions(**data: Any)[source]#
Bases:
quantify_scheduler.backends.types.common.HardwareOptions
Datastructure containing the hardware options for each port-clock combination.
Example
Here, the HardwareOptions datastructure is created by parsing a dictionary containing the relevant information.
import pprint from quantify_scheduler.schemas.examples.utils import ( load_json_example_scheme )
from quantify_scheduler.backends.types.qblox import ( QbloxHardwareOptions ) qblox_hw_options_dict = load_json_example_scheme( "qblox_hardware_compilation_config.json")["hardware_options"] pprint.pprint(qblox_hw_options_dict)
{'distortion_corrections': {'q0:fl-cl0.baseband': {'clipping_values': [-2.5, 2.5], 'filter_func': 'scipy.signal.lfilter', 'input_var_name': 'x', 'kwargs': {'a': [1], 'b': [0, 0.25, 0.5]}}}, 'input_att': {'q5:res-q5.ro': 10}, 'input_gain': {'q4:res-q4.ro': {'gain_I': 2, 'gain_Q': 3}}, 'latency_corrections': {'q4:mw-q4.01': 8e-09, 'q5:mw-q5.01': 4e-09}, 'mixer_corrections': {'q4:mw-q4.01': {'amp_ratio': 0.9999, 'phase_error': -4.2}, 'q4:res-q4.ro': {'amp_ratio': 0.9997, 'dc_offset_i': -0.054, 'dc_offset_q': -0.034, 'phase_error': -4.0}}, 'modulation_frequencies': {'q0:mw-q0.01': {'interm_freq': 50000000.0, 'lo_freq': None}, 'q0:res-q0.ro': {'interm_freq': None, 'lo_freq': 7800000000.0}, 'q4:mw-q4.01': {'interm_freq': 200000000.0, 'lo_freq': None}, 'q4:res-q4.ro': {'interm_freq': None, 'lo_freq': 7200000000.0}, 'q5:mw-q5.01': {'interm_freq': 50000000.0, 'lo_freq': None}, 'q5:res-q5.ro': {'interm_freq': 50000000.0}, 'q6:mw-q6.01': {'lo_freq': 5000000000.0}}, 'output_att': {'q0:mw-q0.01': 4, 'q0:res-q0.ro': 12, 'q5:mw-q5.01': 4, 'q6:mw-q6.01': 6}, 'sequencer_options': {'q0:res-q0.ro': {'ttl_acq_threshold': 0.5}}}
The dictionary can be parsed using the
parse_obj
method.qblox_hw_options = QbloxHardwareOptions.parse_obj(qblox_hw_options_dict) qblox_hw_options
QbloxHardwareOptions(latency_corrections={'q4:mw-q4.01': 8e-09, 'q5:mw-q5.01': 4e-09}, distortion_corrections={'q0:fl-cl0.baseband': DistortionCorrection(filter_func='scipy.signal.lfilter', input_var_name='x', kwargs={'b': [0, 0.25, 0.5], 'a': [1]}, clipping_values=[-2.5, 2.5])}, modulation_frequencies={'q0:res-q0.ro': ModulationFrequencies(interm_freq=None, lo_freq=7800000000.0), 'q0:mw-q0.01': ModulationFrequencies(interm_freq=50000000.0, lo_freq=None), 'q4:mw-q4.01': ModulationFrequencies(interm_freq=200000000.0, lo_freq=None), 'q4:res-q4.ro': ModulationFrequencies(interm_freq=None, lo_freq=7200000000.0), 'q5:mw-q5.01': ModulationFrequencies(interm_freq=50000000.0, lo_freq=None), 'q5:res-q5.ro': ModulationFrequencies(interm_freq=50000000.0, lo_freq=None), 'q6:mw-q6.01': ModulationFrequencies(interm_freq=None, lo_freq=5000000000.0)}, mixer_corrections={'q4:mw-q4.01': MixerCorrections(dc_offset_i=0.0, dc_offset_q=0.0, amp_ratio=0.9999, phase_error=-4.2), 'q4:res-q4.ro': MixerCorrections(dc_offset_i=-0.054, dc_offset_q=-0.034, amp_ratio=0.9997, phase_error=-4.0)}, input_gain={'q4:res-q4.ro': ComplexInputGain(gain_I=2, gain_Q=3)}, output_att={'q0:mw-q0.01': 4, 'q0:res-q0.ro': 12, 'q5:mw-q5.01': 4, 'q6:mw-q6.01': 6}, input_att={'q5:res-q5.ro': 10}, sequencer_options={'q0:res-q0.ro': SequencerOptions(init_offset_awg_path_0=0.0, init_offset_awg_path_1=0.0, init_gain_awg_path_0=1.0, init_gain_awg_path_1=1.0, ttl_acq_threshold=0.5, qasm_hook_func=None, instruction_generated_pulses_enabled=False)})
Create a new model by parsing and validating input data from keyword arguments.
Raises ValidationError if the input data cannot be parsed to form a valid model.
- input_gain: Optional[Dict[str, Union[RealInputGain, ComplexInputGain]]][source]#
Dictionary containing the input gain settings (values) that should be applied to the inputs that are connected to a certain port-clock combination (keys).
- output_att: Optional[Dict[str, OutputAttenuation]][source]#
Dictionary containing the attenuation settings (values) that should be applied to the outputs that are connected to a certain port-clock combination (keys).
- input_att: Optional[Dict[str, InputAttenuation]][source]#
Dictionary containing the attenuation settings (values) that should be applied to the inputs that are connected to a certain port-clock combination (keys).
- sequencer_options: Optional[Dict[str, SequencerOptions]][source]#
Dictionary containing the options (values) that should be set on the sequencer that is used for a certain port-clock combination (keys).