Skip to content

Enforce two channel names for Measure operation

Explanation of changes

Make the channel map explicit: output channel names activate only the output module ports, and inputs only input module ports. Therefore, operations requiring both input and output like Measure require two channel names, which share a portclock. ChannelPath has an extra field channel_name_measure (list is only to allow for a second element for compatibility with old style hardware configs).

Allowed channel name combinations with the same portclock:

  • QRM
    • complex_output_0 + complex_input_0
    • real_output_{i} + real_input_{j}
  • QRM_RF: complex_output_0 + complex_input_0

(more combinations are technically allowed, but only for backward compatibility so we do not mention them at the public interface)

These changes define hardware config version "0.2"

Notes:

  • Even though there is only one channel name in the quantify tests, these won’t fail because all acquisitions are mocks.
  • This MR might fix SE-500

Motivation of changes

Having output channel names activating inputs implicitly is very confusing, hard to maintain, and has proven to be bug-prone. Time to fix that.


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 and entry in deprecated code suggestions (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 for breaking changes and AUTHORS.md have been updated (or N/A).
  • Update Hardware backends documentation if backend interface change or N/A
  • Check whether performance is significantly affected by looking at the Performance metrics results.
  • 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.

Edited by Victor Gervilla Palomar

Merge request reports

Loading