Recent interface changes
Unreleased: Long waveform support
The instruction_generated_pulses_enabled
option (see Cluster and Pulsar user guides) is deprecated and will be removed in a future version. Long square pulses, staircase pulses and long ramps can be generated with the newly introduced helper functions long_square_pulse
, staircase_pulse
and long_ramp_pulse
. More complex long waveforms can now also be created from the StitchedPulseBuilder
, which generates a StitchedPulse
. For more information, see Long waveform support.
0.12.0: Marker behavior for RF modules; Custom Qblox downconverter
For the Qblox QCM-RF and QRM-RF modules, the marker override QCoDeS parameter
marker_ovr_en
is now always set toFalse
before the execution of a schedule. This way, the markers behave as expected, even if they were previously overridden. Please refer to the qblox-instruments documentation for more information about themarker_ovr_en
andmarker_ovr_value
parameters.For deactivating the custom Qblox downconverter, set
downconverter_freq
tonull
(json) orNone
(instead of0
before).Note
Using
downconverter_freq
requires custom Qblox hardware, do not use otherwise.
0.11.1: Input attenuation parameter both for input and output
Ability to set input_att
parameter for both complex_input_0
and complex_output_0
on QRM-RF.
To make sure that you can use the same sequencer for both input and output
on QRM-RF with input modulation and input attenuation, you can set input_att
on either input or output,
but not on both in the same module at the same time.
0.11.0: Gain and attenuation parameters
Ability to set input/output gain/attenuation parameters via the Qblox hardware configuration file.
Note
input_gain
introduced in version 0.9.0 is now renamed to input_gain_<n>
.
The following parameters are available per device type:
QRM (baseband)
input_gain_I
(forcomplex_output_0
) orinput_gain_0
(forreal_output_0
)input_gain_Q
(forcomplex_output_0
) orinput_gain_1
(forreal_output_1
)
QRM-RF
output_att
(forcomplex_output_0
)input_att
(forcomplex_input_0
)
QCM-RF
output_att
(forcomplex_output_0
)output_att
(forcomplex_output_1
)
See quantify_scheduler/schemas/examples/qblox_test_mapping.json
for concrete examples (see Usage of the backend).
0.8.0: Dynamic Sequencer Allocation
The Qblox backend now dynamically allocates sequencers to port-clock combinations as required. This enables the user to target an arbitrary number of port-clock combinations using the same module, as long as they are not being simultaneously targeted. Given that Qblox instruments have 6 sequencers, up to 6 port-clock combinations may be simultaneously targeted.
This change has introduced a new syntax for the hardware configuration file:
We now specify a list of
portclock_configs
instead of sequencers.Furthermore, we moved latency correction to top-level key
latency_corrections
We provide a helper function that may be used to convert from old to new syntax:
Temporarily, this method is called by the Qblox backend before compilation.
The old syntax:
hardware_cfg = {
"backend": "quantify_scheduler.backends.qblox_backend.hardware_compile",
"qcm0": {
"instrument_type": "Pulsar_QCM",
"ref": "internal",
"complex_output_0": {
"lo_name": "lo0",
"seq0": {
"port": "q0:mw",
"clock": "q0.01",
"interm_freq": 50e6,
"latency_correction" : 4e-9
},
"seq1": {
"port": "q1:mw",
"clock": "q1.01",
"interm_freq": 100e6
}
},
"complex_output_1": {
"lo_name": "lo1",
"seq2": {
"port": "q2:mw",
"clock": "q2.01",
"interm_freq": None
}
}
},
"lo0": {"instrument_type": "LocalOscillator", "frequency": None, "power": 20},
"lo1": {"instrument_type": "LocalOscillator", "frequency": 7.2e9, "power": 20}
}
The new syntax:
hardware_cfg = {
"backend": "quantify_scheduler.backends.qblox_backend.hardware_compile",
"latency_corrections": {
"q0:mw-q0.01": 4e-9
},
"qcm0": {
"instrument_type": "Pulsar_QCM",
"ref": "internal",
"complex_output_0": {
"lo_name": "lo0",
"portclock_configs": [
{
"port": "q0:mw",
"clock": "q0.01",
"interm_freq": 50e6
},
{
"port": "q1:mw",
"clock": "q1.01",
"interm_freq": 100e6
}
]
},
"complex_output_1": {
"lo_name": "lo1",
"portclock_configs": [
{
"port": "q2:mw",
"clock": "q2.01",
"interm_freq": None
}
]
}
},
"lo0": {"instrument_type": "LocalOscillator", "frequency": None, "power": 20},
"lo1": {"instrument_type": "LocalOscillator", "frequency": 7.2e9, "power": 20}
}