Skip to content

Add DualThresholdedTriggerCount

Explanation of changes

Add a new operation for QTM modules. DualThresholdedTriggerCount can take two counts thresholds and can send triggers on 4 different addresses depending on whether:

  • counts < threshold_low
  • threshold_low <= counts < threshold_high
  • counts >= threshold_high
  • counts invalid

Example:

schedule = Schedule("test")

trigcnt = schedule.add(
    DualThresholdedTriggerCount(
        port="q0:example",
        clock="digital",
        duration=10e-6,
        threshold_low=10,
        threshold_high=20,
        label_low="q0_low",
        label_mid="q0_mid",
        label_high="q0_high",
    ),
    ref_pt="start",
)

cond_body = Schedule("cond_body")
cond_body.add(X("q0"))

schedule.add(
    ConditionalOperation(body=cond_body, qubit_name="q0_low"),
    ref_op=trigcnt,
    rel_time=1000e-9,
)
schedule.add(IdlePulse(4e-9))
schedule.add(
    ConditionalOperation(body=cond_body, qubit_name="q0_mid"),
)
schedule.add(IdlePulse(4e-9))
schedule.add(
    ConditionalOperation(body=cond_body, qubit_name="q0_high"),
)
schedule.add(IdlePulse(4e-9))

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 Thomas Middelburg

Merge request reports

Loading