Add thresholded trigger count acquisition (SE-422)
Explanation of changes
Add a new acquisition protocol ThresholdedTriggerCount, which allows conditional playback with a trigger count acquisition on Qblox QTM or QRM modules.
Usage:
schedule = Schedule("example")
schedule.add(ThresholdedTriggerCount(
port="qe0:optical_readout",
clock="qe0.ge0",
duration=10e-6,
threshold=10,
feedback_trigger_label="qe0",
feedback_trigger_condition=TriggerCondition.GREATER_EQUAL,
)
)
sub_schedule = ...
schedule.add(ConditionalOperation(body=sub_schedule, qubit_name="qe0"), rel_time=...)
To do in follow-up MRs:
- more documentation (e.g. for usage with
ConditionalOperation) - gate-level NV center support
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 Gábor Oszkár Dénes