On 10/30/2014 03:29 AM, Slichter, Daniel H. wrote:
> 1.       If a DDS frequency needs to be changed, how long would it 
> take to load the required data for reprogramming into the output 
> queue of the RTIO core? Let’s assume we need to change freq, phase, 
> and amplitude – thus 64 bits sent over an 8 bit parallel bus to the 
> DDS boards – and that the values are pre-calculated on the computer 
> rather than being calculated on the fly by the SoC.

The DDS reprogramming routine is as follows:
1. wait for all previous RF switch commands to be completed
2. wait for any previous FUD pulse to be completed
3. load the data into the DDS registers
4. determine the FUD timing:
  a. if FUD is not required to be real-time (because the RF switch is
currently off), take the current RTIO counter value + 4000 cycles
  b. if real-time FUD is required (because the RF switch is on and we
are changing the frequency on-the-fly), use the "now" value
5. later we will probably want to adjust that FUD timing depending on
the SYNC_CLK phase
6. program the FUD pulse and the RF switch command(s) into the RTIO

I guesstimate the whole routine would take a couple microseconds. Steps
1-5 are automatically removed by the compiler when it determines that
the frequency is the same as previously programmed, in which case it
boils down to the regular RTIO pulse case.

Amplitude and phase control are not currently implemented. Amplitude
control sounds straightforward; for the phase control, I'm not sure
about your exact needs. Should the driver give basic access to the phase
control word (with some conversion for experiment code portability, e.g.
the phase would be specified in turns or in radians by the user) or
should there be some phase tracking algorithm built into the driver?

Sébastien
_______________________________________________
ARTIQ mailing list
https://ssl.serverraum.org/lists/listinfo/artiq

Reply via email to