Skip to content

[Qblox] implement device settings to sequencer settings capability

Robert Sokolewicz requested to merge device_config_to_seq_settings into main

Motivation + requirements

Implementing a way that can take settings from DeviceConfig and dump them to the SequencerSettings. This will be useful for !617 (merged), where parameters related to thresholded acquisition are defined inside the qubit device elements (e.g. q0.measure.acq_threshold(0.5)) that need to be translated to SequencerSettings connected to the sequencer that will play a Measurement pulse on q0. Possibly this has other benefits as well (e.g. conditional playback).

Implementation details

  • helper function: sequencer_config_from_device_compilation_config
    • This creates a dictionary of the form e.g. {("q0:res", "q0.r0") : {"thresholded_acq_threshold" : 0.5, "thresholded_acq_rotation": 30}}
  • pass extra_sequencer_cfg to these classes: InstrumentCompiler, ControlDeviceCompiler, Sequencer, QbloxBaseModule, CompilerContainer, Cluster.
  • hardware_compile eventually runs:
extra_sequencer_cfg = helpers.sequencer_config_from_device_compilation_config(
    device_config
)
container = compiler_container.CompilerContainer.from_hardware_cfg(
    schedule, hardware_cfg, extra_sequencer_cfg =extra_sequencer_cfg 
)

which passes the extra_sequencer_cfg around until a Sequencer is instantiated. This runs self._settings.update(extra_sequencer_cfg). setattr(self, param_name, setting)

Edited by Robert Sokolewicz

Merge request reports