Phaser uses five 25 MS/s (Kasli) NCOs for pulse shaping. The update cycles of these NCOs are not aligned. Consequently, to achieve deterministic timing between different NCOs, the experiment timeline must be referenced with the Kasli NCO update cycle. Is there any way to determine/set the Kasli-NCO update cycle?

A similar issue is also encountered when updating the DUC. The DUC output rate 500 MS/s, presumably the experiment and Kasli-NCOs must be referenced with this to achieve deterministic behaviour.

The oscillator updates are aligned to samples, the samples are aligned to frames, the DUC parameter updates are aligned to frames. The RTIO timestamp of the (any) fastlink response mirrors the frame alignment. Use the timestamp of the frame to determine the phase of both frame and sample. See the STFT branch for a similar use case and implementation.