quantify_scheduler.backends.qblox.instrument_compilers

Compiler classes for Qblox backend.

Module Contents

Classes

LocalOscillator

Implementation of an InstrumentCompiler that compiles for a generic LO. The main

QcmModule

QCM specific implementation of the qblox compiler.

QrmModule

QRM specific implementation of the qblox compiler.

QcmRfModule

QCM-RF specific implementation of the qblox compiler.

QrmRfModule

QRM-RF specific implementation of the qblox compiler.

Cluster

Compiler class for a Qblox cluster.

Attributes

COMPILER_MAPPING

Maps the names in the hardware config to their appropriate compiler classes.

class LocalOscillator(parent: quantify_scheduler.backends.qblox.compiler_container.CompilerContainer, name: str, total_play_time: float, instrument_cfg: Dict[str, Any])[source]

Bases: quantify_scheduler.backends.qblox.compiler_abc.InstrumentCompiler

Implementation of an InstrumentCompiler that compiles for a generic LO. The main difference between this class and the other compiler classes is that it doesn’t take pulses and acquisitions.

Constructor for a local oscillator compiler.

Parameters
  • parent – Reference to the parent container object.

  • name – QCoDeS name of the device it compiles for.

  • total_play_time – Total time execution of the schedule should go on for. This parameter is used to ensure that the different devices, potentially with different clock rates, can work in a synchronized way when performing multiple executions of the schedule.

  • instrument_cfg – The part of the hardware mapping dict referring to this instrument.

property frequency: Optional[float][source]

Getter for the frequency.

Returns

The current frequency.

compile(repetitions: int = 1) Optional[Dict[str, Any]][source]

Compiles the program for the LO InstrumentCoordinator component.

Parameters

repetitions – Number of times execution the schedule is repeated.

Returns

Dictionary containing all the information the InstrumentCoordinator component needs to set the parameters appropriately.

class QcmModule(parent, name: str, total_play_time: float, instrument_cfg: Dict[str, Any], latency_corrections: Optional[Dict[str, float]] = None)[source]

Bases: quantify_scheduler.backends.qblox.compiler_abc.QbloxBasebandModule

QCM specific implementation of the qblox compiler.

Constructor function.

Parameters
  • parent (quantify_scheduler.backends.qblox.compiler_container.CompilerContainer) – Reference to the parent object.

  • name – Name of the QCoDeS instrument this compiler object corresponds to.

  • total_play_time – Total time execution of the schedule should go on for. This parameter is used to ensure that the different devices, potentially with different clock rates, can work in a synchronized way when performing multiple executions of the schedule.

  • instrument_cfg – The part of the hardware configuration dictionary referring to this device. This is one of the inner dictionaries of the overall hardware config.

  • latency_corrections – Dict containing the delays for each port-clock combination. This is specified in the top layer of hardware config.

supports_acquisition: bool = False[source]
static_hw_properties: quantify_scheduler.backends.types.qblox.StaticHardwareProperties[source]
class QrmModule(parent, name: str, total_play_time: float, instrument_cfg: Dict[str, Any], latency_corrections: Optional[Dict[str, float]] = None)[source]

Bases: quantify_scheduler.backends.qblox.compiler_abc.QbloxBasebandModule

QRM specific implementation of the qblox compiler.

Constructor function.

Parameters
  • parent (quantify_scheduler.backends.qblox.compiler_container.CompilerContainer) – Reference to the parent object.

  • name – Name of the QCoDeS instrument this compiler object corresponds to.

  • total_play_time – Total time execution of the schedule should go on for. This parameter is used to ensure that the different devices, potentially with different clock rates, can work in a synchronized way when performing multiple executions of the schedule.

  • instrument_cfg – The part of the hardware configuration dictionary referring to this device. This is one of the inner dictionaries of the overall hardware config.

  • latency_corrections – Dict containing the delays for each port-clock combination. This is specified in the top layer of hardware config.

supports_acquisition: bool = True[source]
static_hw_properties: quantify_scheduler.backends.types.qblox.StaticHardwareProperties[source]
class QcmRfModule(parent, name: str, total_play_time: float, instrument_cfg: Dict[str, Any], latency_corrections: Optional[Dict[str, float]] = None)[source]

Bases: quantify_scheduler.backends.qblox.compiler_abc.QbloxRFModule

QCM-RF specific implementation of the qblox compiler.

Constructor function.

Parameters
  • parent (quantify_scheduler.backends.qblox.compiler_container.CompilerContainer) – Reference to the parent object.

  • name – Name of the QCoDeS instrument this compiler object corresponds to.

  • total_play_time – Total time execution of the schedule should go on for. This parameter is used to ensure that the different devices, potentially with different clock rates, can work in a synchronized way when performing multiple executions of the schedule.

  • instrument_cfg – The part of the hardware configuration dictionary referring to this device. This is one of the inner dictionaries of the overall hardware config.

  • latency_corrections – Dict containing the delays for each port-clock combination. This is specified in the top layer of hardware config.

supports_acquisition: bool = False[source]
static_hw_properties: quantify_scheduler.backends.types.qblox.StaticHardwareProperties[source]
class QrmRfModule(parent, name: str, total_play_time: float, instrument_cfg: Dict[str, Any], latency_corrections: Optional[Dict[str, float]] = None)[source]

Bases: quantify_scheduler.backends.qblox.compiler_abc.QbloxRFModule

QRM-RF specific implementation of the qblox compiler.

Constructor function.

Parameters
  • parent (quantify_scheduler.backends.qblox.compiler_container.CompilerContainer) – Reference to the parent object.

  • name – Name of the QCoDeS instrument this compiler object corresponds to.

  • total_play_time – Total time execution of the schedule should go on for. This parameter is used to ensure that the different devices, potentially with different clock rates, can work in a synchronized way when performing multiple executions of the schedule.

  • instrument_cfg – The part of the hardware configuration dictionary referring to this device. This is one of the inner dictionaries of the overall hardware config.

  • latency_corrections – Dict containing the delays for each port-clock combination. This is specified in the top layer of hardware config.

supports_acquisition: bool = True[source]
static_hw_properties: quantify_scheduler.backends.types.qblox.StaticHardwareProperties[source]
class Cluster(parent: quantify_scheduler.backends.qblox.compiler_container.CompilerContainer, name: str, total_play_time: float, instrument_cfg: Dict[str, Any], latency_corrections: Optional[Dict[str, float]] = None)[source]

Bases: quantify_scheduler.backends.qblox.compiler_abc.ControlDeviceCompiler

Compiler class for a Qblox cluster.

Constructor for a Cluster compiler object.

Parameters
  • parent – Reference to the parent object.

  • name – Name of the QCoDeS instrument this compiler object corresponds to.

  • total_play_time – Total time execution of the schedule should go on for.

  • instrument_cfg – The part of the hardware configuration dictionary referring to this device. This is one of the inner dictionaries of the overall hardware config.

  • latency_corrections – Dict containing the delays for each port-clock combination. This is specified in the top layer of hardware config.

compiler_classes: Dict[str, type][source]

References to the individual module compiler classes that can be used by the cluster.

supports_acquisition: bool = True[source]

Specifies that the Cluster supports performing acquisitions.

construct_instrument_compilers() Dict[str, quantify_scheduler.backends.qblox.compiler_abc.QbloxBaseModule][source]

Constructs the compilers for the modules inside the cluster.

Returns

A dictionary with the name of the instrument as key and the value its compiler.

prepare() None[source]

Prepares the instrument compiler for compilation by assigning the data.

distribute_data() None[source]

Distributes the pulses and acquisitions assigned to the cluster over the individual module compilers.

compile(repetitions: int = 1) Optional[Dict[str, Any]][source]

Performs the compilation.

Parameters

repetitions – Amount of times to repeat execution of the schedule.

Returns

The part of the compiled instructions relevant for this instrument.

COMPILER_MAPPING: Dict[str, type][source]

Maps the names in the hardware config to their appropriate compiler classes.