Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bugfix: NDAveragerProgram fails for a >1D sweep #237

Merged

Conversation

yoshi74ls181
Copy link
Contributor

The pull request #228 broke NDAveragerProgram, which now fails to generate the correct program for a multi-dimensional sweep because the register 16 in page 0 is used as both the second sweep counter and the trigger bits for QickProgram.trigger. The sweep counter never reaches 0 because it gets overwritten by the trigger bits every time a readout is triggered inside the loop, creating an infinite loop.

This bugfix changes the register assignment in NDAveragerProgram such that only the registers 17-21 in page 0 are used as sweep counters. NDAveragerProgram now only works for up to a 5D sweep instead of 7D, but this should be sufficient for most use cases.

@meeg
Copy link
Collaborator

meeg commented Feb 28, 2024

Thanks, good catch! I hadn't remembered where ND keeps its loop registers. I updated the little note in asm_v1 that I use to remember what registers are being used by different program skeletons.

@meeg meeg merged commit fa07642 into openquantumhardware:main Feb 28, 2024
2 checks passed
@yoshi74ls181 yoshi74ls181 deleted the bugfix/ndaverager-register branch February 28, 2024 18:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants