Utilty classes for Qblox timetag module.

Module Contents#



Class that performs the compilation steps on the sequencer level, for the QTM.

class TimetagSequencerCompiler(parent: quantify_scheduler.backends.qblox.instrument_compilers.TimetagModuleCompiler, index: int, portclock: tuple[str, str], static_hw_properties: quantify_scheduler.backends.types.qblox.StaticHardwareProperties, settings: quantify_scheduler.backends.types.qblox.TimetagSequencerSettings, latency_corrections: dict[str, float], qasm_hook_func: Callable | None = None)[source]#

Bases: quantify_scheduler.backends.qblox.compiler_abc.SequencerCompiler

Class that performs the compilation steps on the sequencer level, for the QTM.

  • parent – A reference to the module compiler this sequencer belongs to.

  • index – Index of the sequencer.

  • portclock – Tuple that specifies the unique port and clock combination for this sequencer. The first value is the port, second is the clock.

  • static_hw_properties – The static properties of the hardware. This effectively gathers all the differences between the different modules.

  • settings – The settings set to this sequencer.

  • latency_corrections – Dict containing the delays for each port-clock combination.

  • qasm_hook_func – Allows the user to inject custom Q1ASM code into the compilation, just prior to returning the final string.

_prepare_acq_settings(acquisitions: list[quantify_scheduler.backends.qblox.operation_handling.base.IOperationStrategy], acq_metadata: quantify_scheduler.schedules.schedule.AcquisitionMetadata) None[source]#

Sets sequencer settings that are specific to certain acquisitions. For example for a TTL acquisition strategy.

  • acquisitions – List of the acquisitions assigned to this sequencer.

  • acq_metadata – Acquisition metadata.

_write_pre_wait_sync_instructions(qasm: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) None[source]#

Write instructions to the QASM program that must come before the first wait_sync.

The duration must be equal for all module types.

_write_repetition_loop_header(qasm: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) None[source]#

Write the Q1ASM that should appear at the start of the repetition loop.

The duration must be equal for all module types.

_insert_qasm(op_strategy: quantify_scheduler.backends.qblox.operation_handling.base.IOperationStrategy, qasm_program: quantify_scheduler.backends.qblox.qasm_program.QASMProgram) None[source]#

Get Q1ASM instruction(s) from op_strategy and insert them into qasm_program.