Qblox backend - Apply latency corrections from top layer of hardware config (QAE-79)
Explanation of changes
For the Qblox backend, latency corrections for a quantum device until now is provided by the user while specifying the sequencer settings inside the hardware config file (eg hardware_cfg["qcm0"]["seq0"]["latency_correction"]
). With this MR, the user would have to specify these corrections in the top layer of hardware config file against a portclock key (hardware_cfg["latency_corrections"]["portclock"]
). The portclock key definition is coherent with that of !388 (merged) and the layout of hardware_config follows from !328 (merged) (dynamic sequencer allocation). NB: Similar MR (!395 (closed)) is obsolete and is closed prior to this MR.
Previous config layout:
{
"backend": "quantify_scheduler.backends.qblox_backend.hardware_compile",
"qcm0": {
"instrument_type": "Pulsar_QCM",
"ref": "internal",
"complex_output_0": {
"line_gain_db": 0,
"lo_name": "lo0",
"seq0": {
"port": "q0:mw",
"clock": "q0.01",
"latency_correction" : 4e-9
},
},
}
New config layout (in accordance with !328 (merged)):
{
"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": {
"line_gain_db": 0,
"lo_name": "lo0",
"portclock_configs": [
{
"port": "q0:mw",
"clock": "q0.01",
"interm_freq": 50e6
},
]
},
}
Motivation of changes
Merge checklist
See also merge request guidelines
-
Merge request has been reviewed and approved by a project maintainer. -
Merge request contains a clear description of the proposed changes and the issue it addresses. -
Merge request made onto appropriate branch (main for most MRs). -
New code is fully tested. -
New code is documented and docstrings use numpydoc format. -
CHANGELOG.rst
andAUTHORS.rst
have been updated (when applicable). -
CI pipelines pass -
pre-commit run --all-files --hook-stage commit
passes (gitlab-ci), - test suite passes (gitlab-ci),
- no degradation in code-coverage (codacy),
- no (serious) new pylint code quality issues introduced (codacy),
- documentation builds successfully (CI and readthedocs),
-
windows tests pass (manually triggered by maintainers before merging).
-
For reference, the issues workflow is described in the contribution guidelines.