Skip to content

Proposal for hardware abstraction layer (HAL) formalization

Viacheslav Ostroukh requested to merge hal_proposal into main

Explanation of changes

Documentation only: add roadmap document for the formalization of hardware abstraction layer in Quantify.

See Developer guide -> Quantify-core Design -> Hardware abstraction layer

Motivation of changes

@adamorangeqs (and many other people) raises concerns that there is no standard way to define schedules that control near-time parameters (like flux bias line current, local oscillator tone, etc.)

I propose a solution for implementation of this abstraction level on the level of quantum devise. The advantages of this approach are:

  • It uses current Quantify concepts
  • It requires minimal amount of changes and fully backwards compatible
  • It leaves quantify-scheduler compilation specific to a domain of real-time scheduling

Merge checklist

See also merge request guidelines

  • Merge request has been reviewed (in-depth by a knowledgeable contributor), and is approved by a project maintainer.
  • New code is covered by unit tests (or N/A).
  • New code is documented and docstrings use numpydoc format (or N/A).
  • New functionality: considered making private instead of extending public API (or N/A).
  • Public API changed: added @deprecated (or N/A).
  • Newly added/adjusted documentation and docstrings render properly (or N/A).
  • Pipeline fix or dependency update: post in #software-for-developers channel to merge main back in or update local packages (or N/A).
  • Tested on hardware (or N/A).
  • CHANGELOG.md and AUTHORS.md have been updated (or N/A).
  • Windows tests in CI pipeline pass (manually triggered by maintainers before merging).
    • Maintainers do not hit Auto-merge, we need to actively check as manual tests do not block pipeline

For reference, the issues workflow is described in the contribution guidelines.

Merge request reports