quantify_scheduler.backends.types.qblox

Python dataclasses for compilation to Qblox hardware.

Module Contents

Classes

BoundedParameter

Specifies a certain parameter with a fixed max and min in a certain unit.

MarkerConfiguration

Specifies the marker configuration set during the execution of the sequencer

StaticHardwareProperties

Specifies the fixed hardware properties needed in the backend.

OpInfo

Data structure describing a pulse or acquisition and containing all the information

LOSettings

Dataclass containing all the settings for a generic LO instrument.

BaseModuleSettings

Shared settings between all the Qblox modules.

BasebandModuleSettings

Settings for a baseband module.

PulsarSettings

Global settings for the Pulsar to be set in the InstrumentCoordinator component.

RFModuleSettings

Global settings for the module to be set in the InstrumentCoordinator component.

PulsarRFSettings

Settings specific for a Pulsar RF. Effectively, combines the Pulsar specific

SequencerSettings

Sequencer level settings.

class BoundedParameter[source]

Specifies a certain parameter with a fixed max and min in a certain unit.

min_val :float[source]

Min value allowed.

max_val :float[source]

Max value allowed.

units :str[source]

Units in which the parameter is specified.

class MarkerConfiguration[source]

Specifies the marker configuration set during the execution of the sequencer program.

init :Optional[int][source]

Value to set in the header before the wait sync.

start :Optional[int][source]

The setting set in the header at the start of the program (after the wait sync).

end :Optional[int][source]

Setting set in the footer at the end of the program.

class StaticHardwareProperties[source]

Specifies the fixed hardware properties needed in the backend.

instrument_type :str[source]

The type of instrument.

max_sequencers :int[source]

The amount of sequencers available.

max_awg_output_voltage :float[source]

Maximum output voltage of the awg.

marker_configuration :MarkerConfiguration[source]

The marker configuration to use.

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.

name :str[source]

Name of the operation that this pulse/acquisition is part of.

data :dict[source]

The pulse/acquisition info taken from the data property of the pulse/acquisition in the schedule.

timing :float[source]

The start time of this pulse/acquisition. Note that this is a combination of the start time “t_abs” of the schedule operation, and the t0 of the pulse/acquisition which specifies a time relative to “t_abs”.

property duration float[source]

The duration of the pulse/acquisition.

Returns

The duration of the pulse/acquisition.

property is_acquisition[source]

Returns true if this is an acquisition, false if it’s a pulse.

Returns

Is this an acquisition?

__str__()[source]

Return str(self).

__repr__()[source]

Return repr(self).

class LOSettings[source]

Bases: dataclasses_json.DataClassJsonMixin

Dataclass containing all the settings for a generic LO instrument.

power :Dict[str, float][source]

Power of the LO source.

frequency :Dict[str, Optional[float]][source]

The frequency to set the LO to.

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.

scope_mode_sequencer :Optional[int][source]

The index of the sequencer that triggers scope mode Acquisitions. Only a single sequencer can perform trace acquisition. This setting gets set as a QCoDeS parameter on the driver as well as used for internal checks. Having multiple sequencers perform trace acquisition will result in an exception being raised.

offset_ch0_path0 :Union[float, None][source]

The DC offset on the path 0 of channel 0.

offset_ch0_path1 :Union[float, None][source]

The DC offset on the path 1 of channel 0.

offset_ch1_path0 :Union[float, None][source]

The DC offset on path 0 of channel 1.

offset_ch1_path1 :Union[float, None][source]

The DC offset on path 1 of channel 1.

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 :Union[float, None][source]

The frequency of Output 0 (O0) LO. If left None, the parameter will not be set.

lo1_freq :Union[float, None][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 PulsarRFSettings[source]

Bases: RFModuleSettings, PulsarSettings

Settings specific for a Pulsar RF. Effectively, combines the Pulsar specific settings with the RF specific settings.

classmethod extract_settings_from_mapping(mapping: Dict[str, Any], **kwargs: Optional[dict]) PulsarRFSettings[source]

Factory method that takes all the settings defined in the mapping and generates a PulsarRFSettings 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 drivers these settings are typically recognized by parameter names of the form "sequencer_{index}_{setting}". These settings are set once at the start and will remain unchanged after. Meaning that these correspond to the “slow” QCoDeS parameters and not settings that are changed dynamically by the sequencer.

nco_en :bool[source]

Specifies whether the NCO will be used or not.

sync_en :bool[source]

Enables party-line synchronization.

connected_outputs :Union[Tuple[int], Tuple[int, int]][source]

Specifies which physical outputs this sequencer produces waveform data for.

modulation_freq :float[source]

Specifies the frequency of the modulation.

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.

classmethod initialize_from_config_dict(seq_settings: Dict[str, Any], connected_outputs: Union[Tuple[int], Tuple[int, int]]) SequencerSettings[source]

Instantiates an instance of this class, with initial parameters determined from the sequencer configuration dictionary.

Parameters

seq_settings – The sequencer configuration dict.

Returns

The class with initial values.