WR2RF operational timings
Introduction
Throughout this page we will expand on the operating characteristics of the WR2RF-VME and detail various calibration sequences that may have to be performed, either once at start-up or periodically, perhaps after every cycle.
AD9910, RFNCO reset receipt and stable RF
If the ad9910 is not outputting a stable signal when the nco_reset signal is asserted, the RF signal is observed from the front panel as shown below. It takes somewhere between 400-500 ns to achieve a stable RF signal.
If the ad9910 is outputting a stable signal, when the nco_reset signal is asserted, the RF signal is observed from the front panel as shown below. It takes somewhere around 200 ns to achieve a stable RF signal. I have assumed that a pre-injection is available 300 ms before the nco_reset signal will be asserted.
RFNCO versus Xilinx DDS, glitchy RF close to 1 usec after nco_reset
In the following plot, I'm mixing the IQDAC and AD9910 DDS. On RF1 channel 1 (blue) I send a signal from a Xilinx DDS, whilst on channel 2 (green) I show the mixed output when deriving the IF via the RFNCO and IQModulation blocks. The nco_reset (yellow) is the triggering cause for this plot. When using the RFNCO and IQModulation blocks there is a glitch close to 950 ns after nco_reset. This glitch in the RF is not present if I use the output from a Xilinx DDS.
We have to delay the trigger unit sync signal until we have stable RF, otherwise our trigger unit output will be glitchy too. For tracking the RF during a ramp we'd like this delay to be as small as possible but guaranteeing stable/reproducible RF.
UPDATE: After simulating the RFNCO and IQModulation blocks it takes 744 ns for the IF signal to be generated within the FPGA. This breaks down as:
- 600 ns or 75 cycles latency for the RFNCO
- 144 ns or 18 cycles latency for the IQModulation block Then there are a few register stages to get off the FPGA, IQDAC, Mixer + RF analog components (amplifiers and attenuators) plus RF switches and finally 8 ns coax cable, probably account for the 200 ns increase to ~950 ns.
Therefore we observe two glitches in the output RF:
- the first at around 120 ns is due to ad9910 re-syncing
- the second at around 950 ns is due to the IF RF signal re-syncing
RF phase after injection when nco_reset has been delayed
To avoid glitches in the RF, we must drive the sync signal into the first trigger unit after the RF has become stable. In addition, we have multiple injection frequencies with fixed target protons and LHC protons having 300 kHz difference. We need to measure the phase differences between these two signals and determine if there's one set of parameters, used to delay the trigger units sync signal, that could operate for all proton injections.
To investigate this problem, I simulated two RFtrains at the separate injection frequencies. In the upper display from the trace below, you can observe a delayed version of nco_reset (blue) triggering after the RF has become stable (200 ns earlier). The display is in persistent mode because we're swapping between the RFtrains and we want to observe their differences. Some observations from the lower display that shows the zoomed in region around nco_reset_delayed:
- the relationship between nco_reset_delayed and either RFtrain program is reproducible
- the zero crossing of the two RF signals is separated by ~400 ps or 8 % of the RF
- this is < 30 degrees of phase difference
The nco_reset_delayed signal was delayed some 70 WR clock cycles (16 ns) after nco_reset was received and sent to the RFNCO. This phase difference between fixed target and lhc protons after 1.2 us was pre-calculated to be around 140 degrees, not the 30 degrees that we observe.
This discrepancy occurs because we only start accumulating differences when rfnco and iqmod start outputting their calculated signal after 744 ns. See the RFNCO and IQMod simulation trace below:
The first single cycle pulse that starts the process is nco_reset and the second is coefs_vld signal out of the RFNCO to drive the IQMod block. The RF signal is still unusable for at least 1 us after nco reset but we’re only accumulating phase differences for part of this period not all it. The conclusion from this investigation is that it should be possible to find a single set of parameters to define the delay for nco_reset for all proton injections.