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_lowthreshold_low <= counts < threshold_highcounts >= 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 @deprecatedand 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-developerschannel to mergemainback in or update local packages (or N/A). -
Tested on hardware (or N/A). -
CHANGELOG.mdfor breaking changes andAUTHORS.mdhave 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