instrument_compilers ==================== .. py:module:: quantify_scheduler.backends.qblox.instrument_compilers .. autoapi-nested-parse:: Compiler classes for Qblox backend. Module Contents --------------- Classes ~~~~~~~ .. autoapisummary:: quantify_scheduler.backends.qblox.instrument_compilers.LocalOscillator quantify_scheduler.backends.qblox.instrument_compilers.QcmModule quantify_scheduler.backends.qblox.instrument_compilers.QrmModule quantify_scheduler.backends.qblox.instrument_compilers.QcmRfModule quantify_scheduler.backends.qblox.instrument_compilers.QrmRfModule quantify_scheduler.backends.qblox.instrument_compilers.Cluster Attributes ~~~~~~~~~~ .. autoapisummary:: quantify_scheduler.backends.qblox.instrument_compilers.COMPILER_MAPPING .. py:class:: LocalOscillator(parent: quantify_scheduler.backends.qblox.compiler_container.CompilerContainer, name: str, total_play_time: float, instrument_cfg: Dict[str, Any]) Bases: :py:obj:`quantify_scheduler.backends.qblox.compiler_abc.InstrumentCompiler` Implementation of an :class:`~quantify_scheduler.backends.qblox.compiler_abc.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. :param parent: Reference to the parent container object. :param name: QCoDeS name of the device it compiles for. :param 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. :param instrument_cfg: The part of the hardware mapping dict referring to this instrument. .. py:property:: frequency :type: Optional[float] Getter for the frequency. :returns: The current frequency. .. py:method:: compile(debug_mode, repetitions: int = 1) -> Optional[Dict[str, Any]] Compiles the program for the LO InstrumentCoordinator component. :param debug_mode: Debug mode can modify the compilation process, so that debugging of the compilation process is easier. :param repetitions: Number of times execution the schedule is repeated. :returns: Dictionary containing all the information the InstrumentCoordinator component needs to set the parameters appropriately. .. py:class:: QcmModule(parent, name: str, total_play_time: float, instrument_cfg: Dict[str, Any], latency_corrections: Optional[Dict[str, float]] = None) Bases: :py:obj:`quantify_scheduler.backends.qblox.compiler_abc.QbloxBasebandModule` QCM specific implementation of the qblox compiler. .. py:attribute:: supports_acquisition :type: bool :value: False .. py:attribute:: static_hw_properties :type: quantify_scheduler.backends.types.qblox.StaticHardwareProperties .. py:class:: QrmModule(parent, name: str, total_play_time: float, instrument_cfg: Dict[str, Any], latency_corrections: Optional[Dict[str, float]] = None) Bases: :py:obj:`quantify_scheduler.backends.qblox.compiler_abc.QbloxBasebandModule` QRM specific implementation of the qblox compiler. .. py:attribute:: supports_acquisition :type: bool :value: True .. py:attribute:: static_hw_properties :type: quantify_scheduler.backends.types.qblox.StaticHardwareProperties .. py:class:: QcmRfModule(parent, name: str, total_play_time: float, instrument_cfg: Dict[str, Any], latency_corrections: Optional[Dict[str, float]] = None) Bases: :py:obj:`quantify_scheduler.backends.qblox.compiler_abc.QbloxRFModule` QCM-RF specific implementation of the qblox compiler. .. py:attribute:: supports_acquisition :type: bool :value: False .. py:attribute:: static_hw_properties :type: quantify_scheduler.backends.types.qblox.StaticHardwareProperties .. py:class:: QrmRfModule(parent, name: str, total_play_time: float, instrument_cfg: Dict[str, Any], latency_corrections: Optional[Dict[str, float]] = None) Bases: :py:obj:`quantify_scheduler.backends.qblox.compiler_abc.QbloxRFModule` QRM-RF specific implementation of the qblox compiler. .. py:attribute:: supports_acquisition :type: bool :value: True .. py:attribute:: static_hw_properties :type: quantify_scheduler.backends.types.qblox.StaticHardwareProperties .. py: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) Bases: :py:obj:`quantify_scheduler.backends.qblox.compiler_abc.ControlDeviceCompiler` Compiler class for a Qblox cluster. :param parent: Reference to the parent object. :param name: Name of the `QCoDeS` instrument this compiler object corresponds to. :param total_play_time: Total time execution of the schedule should go on for. :param 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. :param latency_corrections: Dict containing the delays for each port-clock combination. This is specified in the top layer of hardware config. .. py:attribute:: compiler_classes :type: Dict[str, type] References to the individual module compiler classes that can be used by the cluster. .. py:attribute:: supports_acquisition :type: bool :value: True Specifies that the Cluster supports performing acquisitions. .. py:method:: construct_instrument_compilers() -> Dict[str, quantify_scheduler.backends.qblox.compiler_abc.QbloxBaseModule] 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. .. py:method:: prepare() -> None Prepares the instrument compiler for compilation by assigning the data. .. py:method:: distribute_data() -> None Distributes the pulses and acquisitions assigned to the cluster over the individual module compilers. .. py:method:: compile(debug_mode: bool, repetitions: int = 1) -> Optional[Dict[str, Any]] Performs the compilation. :param debug_mode: Debug mode can modify the compilation process, so that debugging of the compilation process is easier. :param repetitions: Amount of times to repeat execution of the schedule. :returns: The part of the compiled instructions relevant for this instrument. .. py:data:: COMPILER_MAPPING :type: Dict[str, type] Maps the names in the hardware config to their appropriate compiler classes.