[Qblox] implement device settings to sequencer settings capability
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}}
- This creates a dictionary of the form e.g.
- 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