quantify_scheduler.backends.qblox_backend
Compiler backend for Qblox hardware.
Module Contents
Functions
|
Generate a dict referring to long square pulses to replace in the schedule. |
|
Replace any square pulses indicated by pulse_idx_map by a long_square_pulse. |
Replace square pulses in the schedule with long square pulses. |
|
|
Generate qblox hardware instructions for executing the schedule. |
- _get_square_pulses_to_replace(schedule: quantify_scheduler.Schedule) Dict[str, List[int]] [source]
Generate a dict referring to long square pulses to replace in the schedule.
This function generates a mapping (dict) from the keys in the
operations()
dict to a list of indices, which refer to entries in the “pulse_info” list that describe a square pulse.
- _replace_long_square_pulses(schedule: quantify_scheduler.Schedule, pulse_idx_map: Dict[str, List[int]]) quantify_scheduler.Schedule [source]
Replace any square pulses indicated by pulse_idx_map by a long_square_pulse.
- Parameters
schedule (Schedule) – A
Schedule
, possibly containing long square pulses.pulse_idx_map (Dict[str, List[int]]) – A mapping from the keys in the
operations()
dict to a list of indices, which refer to entries in the “pulse_info” list that describe a square pulse.
- Returns
The schedule with square pulses longer than
PULSE_STITCHING_DURATION
replaced bylong_square_pulse()
. If no replacements were done, this is the original unmodified schedule.- Return type
- compile_long_square_pulses_to_awg_offsets(schedule: quantify_scheduler.Schedule, **_: Any) quantify_scheduler.Schedule [source]
Replace square pulses in the schedule with long square pulses.
Introspects operations in the schedule to find square pulses with a duration longer than
PULSE_STITCHING_DURATION
. Any of these square pulses are converted tolong_square_pulse()
, which consist of AWG voltage offsets.If any operations are to be replaced, a deepcopy will be made of the schedule, which is returned by this function. Otherwise the original unmodified schedule will be returned.
- Parameters
schedule (Schedule) – A
Schedule
, possibly containing long square pulses.- Returns
schedule – The schedule with square pulses longer than
PULSE_STITCHING_DURATION
replaced bylong_square_pulse()
. If no replacements were done, this is the original unmodified schedule.- Return type
- hardware_compile(schedule: quantify_scheduler.Schedule, config: quantify_scheduler.backends.graph_compilation.CompilationConfig | Dict[str, Any] | None = None, *, hardware_cfg: Optional[Dict[str, Any]] = None) quantify_scheduler.CompiledSchedule [source]
Generate qblox hardware instructions for executing the schedule.
The principle behind the overall compilation is as follows:
For every instrument in the hardware configuration, we instantiate a compiler object. Then we assign all the pulses/acquisitions that need to be played by that instrument to the compiler, which then compiles for each instrument individually.
This function then returns all the compiled programs bundled together in a dictionary with the QCoDeS name of the instrument as key.
- Parameters
schedule – The schedule to compile. It is assumed the pulse and acquisition info is already added to the operation. Otherwise an exception is raised.
config – Compilation config for
QuantifyCompiler
, of which only theCompilationConfig.connectivity
is currently extracted in this compilation step.hardware_cfg – (deprecated) The hardware configuration of the setup. Pass a full compilation config instead using config argument.
- Returns
The compiled schedule.
- Raises
ValueError – When both config and hardware_cfg are supplied.