The DDS outputs on pulseblasters support phase resets, where the absolute phase of the output is reset. As far as I can tell, we do not use this at all, and so there is no phase stability shot-to-shot (unless the phase resets at the start of the experiment, but I don't see that happening explicitly?). Furthermore, the DDS phase does not seem to be stable over long periods, so resetting at the start of an experiment can lead to phase jitter in pulses several seconds later.
I propose that we implement a "phase reset" function. The reset works by setting the reset flag to True, which holds the DDS output at a constant value corresponding to the starting value due to the current phase register, then disabling the reset again (at the next instruction) after which the DDS begins accumulating phase as usual, outputting rf.
I've tested that this produces consistent phases in pulses by manually editing instructions in the pulse program written in the H5 file. I'm not sure what the best labscript implementation would be, as the reset takes 2 instructions, and so has a finite time during which the DDS output is frozen.
Original report (archived issue) by Shaun Johnstone (Bitbucket: shjohnst, GitHub: shjohnst).
The DDS outputs on pulseblasters support phase resets, where the absolute phase of the output is reset. As far as I can tell, we do not use this at all, and so there is no phase stability shot-to-shot (unless the phase resets at the start of the experiment, but I don't see that happening explicitly?). Furthermore, the DDS phase does not seem to be stable over long periods, so resetting at the start of an experiment can lead to phase jitter in pulses several seconds later.
I propose that we implement a "phase reset" function. The reset works by setting the reset flag to True, which holds the DDS output at a constant value corresponding to the starting value due to the current phase register, then disabling the reset again (at the next instruction) after which the DDS begins accumulating phase as usual, outputting rf.
I've tested that this produces consistent phases in pulses by manually editing instructions in the pulse program written in the H5 file. I'm not sure what the best labscript implementation would be, as the reset takes 2 instructions, and so has a finite time during which the DDS output is frozen.