fix: append acquisitions on same portclock reserves too much Qblox bins
Explanation of changes
Description: This update modifies how acquisition counts are tracked within the SequencerCompiler class. Previously, acquisitions were counted using a single integer, which did not distinguish between different acquisition channels. This could lead to incorrect acquisition bin calculations when multiple channels were used.
Changes Introduced:
Replaced the integer self._num_acquisitions with a dictionary that maps acquisition channels to their respective acquisition counts.
Updated the _parse_operations method to:
Extract the acq_channel from operation.operation_info.data.
Initialize the count for a new channel or increment the existing count based on acquisition_multiplier.
Updated the _generate_acq_declaration_dict method to:
Retrieve the number of bins using the per-channel acquisition count from self._num_acquisitions[acq_channel].
These changes ensure that acquisitions are correctly tracked and accounted for on a per-channel basis throughout the compilation process.
Motivation of changes
Motivate why the particular solution was chosen.
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 mergemain
back in or update local packages (or N/A). -
Tested on hardware (or N/A). -
CHANGELOG.md
for breaking changes andAUTHORS.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.