Skip to content

Perform an upd_param instruction instead of a wait when amplitude of a pulse is too low

Explanation of changes

If both indices in a GenericPulseStrategy are zero, it means the amplitude of the given pulse is too low and would have resulted in an awg_gain of 0. Previously it would just wait for the duration of the pulse instead. However previous instructions might have some lingering awg_offset instructions which would have been set with the play instruction. Placing an upd_param instruction ensures these offsets are still set.

2 tests had to be changed. One of them had a 200 line q1asm program in a json file. I've formatted that json file to be readable.
This commit shows the changes made in that q1asm program due to the change.

Motivation of changes

The StichedPulse would add only waits if the amplitude for each (sub)ramp was too low, the offsets places were never updated.
This has now been fixed. Effectively turning the long ramp pulse in a staircase pulse for low amplitudes.


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 Leon Wubben

Merge request reports

Loading