Skip to content

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 and AUTHORS.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.

Edited by Edgar Reehuis

Merge request reports

Loading