At the end of a successful startup initialization of the RF-ADC the background calibration is enabled. The purpose of the background calibration is to provide real time adjustment for the various skews and mismatches introduced by environmental changes to the sub-RF-ADCs, primarily that of temperature. The blocks that are running in the background (in real time) include OCB1, GCB, and TSCB. As noted, OCB1 runs in the background to adjust for residual sub-RF-ADC offset levels introduced by temperature change without affecting the input signal content. Signal content present at k*Fs/N is unaffected by this block.
The gain calibration block (GCB) and the time skew calibration block (TSCB)
provide correction to the sub-RF-ADC gain and time
skews respectively. Both blocks use and depend on the input signal to estimate and
correct for the skews. When the input signal drops below -40 dBFs it is no longer
effective to use the signal for the computation. Thus the optimal usage of these two
blocks is to dynamically control the coefficient update (freeze and resume) of these two
blocks. The control of these two blocks for freezing and resuming is implemented using
the Vivado IP port RF-ADC calibration freeze ports in the ADVANCE control panel. The CAL freeze
port is independently available for each RF-ADC and
includes a freeze control signal (
int_cal_freeze) and a
status signal (
cal_frozen). An active-High on the
freeze control signal freezes both blocks for computation and coefficient update.
Coefficients computed prior to the freeze event continue to be in effect until the next
enable (unfreeze) event, which corresponds to a Low signal on the freeze control port.
The time it takes the blocks to change state is approximately 7 μs upon a change in the
control signal level. Note that this is significantly shorter than the time constants
for both the GCB and TSCB. Care does have to be taken so that the freeze control port
does not change faster than 7 μs intervals. The freeze control mechanism can be provided
in one of many different methods, depending on application needs.
A simple signal level detector can be implemented in the PL to monitor the digital output level of the RF-ADC and control the state of the background calibration. Typically a leaky integrator of the absolute value of the RF-ADC output and a hysteresis counter will suffice. A signal magnitude detector is integrated in each RF-ADC channel since Gen 3/DFE.
For applications that have a pre-determined duty cycle on the receiver, such as TDD-LTE wireless radios, the TX/RX switching signal can be used with the level detector to provide more precise control of the GCB and TSCB blocks.
Note that at the initial startup of the RF-ADC the GCB and TSCB are not at the optimal performance because they both need the presence of some signal to train up the coefficients. The time constant setting for these calibration blocks is in the order of 2^20 to 2^22 T1 samples for the various RF generations.
For applications that requires fast convergence, consider providing a training signal that can be eventually shut off to train the GCB and TSCB blocks right after the startup state machine is completed. This is particularly useful for applications where the input signal is very bursty and with low duty cycle and low power during system startup.