The VAR_LOAD method is suitable for both COUNT and TIME mode usage of the delay line.
In both modes, the tap amount can be read from the CNTVALUEOUT bus and changed through the CNTVALUEIN bus or INC port if necessary.
Note: The procedure to calculate the value to update the delay line is
different for IDELAY and ODELAY, and different for TIME and COUNT mode.
If DELAY_TYPE is VAR_LOAD and DELAY_FORMAT is TIME, the procedure to update the delay line follows (see Figure 3):
- Wait for DELAYCTRL.RDY to go High.
- Make EN_VTC Low to modify the delay line.
- Wait for at least 10 clock cycles.
- Read CNTVALUEOUT[8:0] and load the value into a register.
- Check if updating the delay line is necessary.
- Calculate the new delay value to be written in the delay line.
- Calculate the difference (Dif_Val) between New_Val and Org_Val and the direction to step.
- Make the INC input High or Low to increment or decrement the delay line.
- Toggle the CE pin to execute the increment or decrement.
- Decrement the Dif_Val and check if it is zero.
- If not, continue from step a.
- If so, continue to step 7.
- Wait for at least 10 clock cycles.
- Set EN_VTC High for VT compensation.
- Go back to step 2 for a new delay line update.
If DELAY_TYPE is VAR_LOAD and DELAY_FORMAT is COUNT, the procedure to update the delay line follows:
- After IDELAYCTRL.RDY goes High, EN_VTC is kept Low.
- Read CNTVALUEOUT[8:0] and load the value into a register (Org_Val).
- Check if updating the delay line is necessary.
- Calculate the new delay value, in taps, to be written in the
delay line (New_Val).
- Increment or decrement the current tap position (Org_Val) by 8 taps for glitchless
transition. Jumps higher than 8 taps might result in the delay line jump causing data to
glitch. For outputs the glitch can corrupt the serialization.Note: This step might require fewer than eight taps.
- Put the new delay line value on the CNTVALUEIN[8:0] bus.
- Wait for one clock cycle and pulse LOAD High for a clock cycle.
- Check if the new delay line value (New_Val) is reached.
- If not, continue from step 4.
- If so, continue to step 5.
or
- Calculate the difference (Dif_Val) between New_Val and Org_Val and the direction to step.
- Make the INC input High or Low to increment or decrement the delay line.
- Toggle the CE pin to execute the increment or decrement.
- Decrement the Dif_Val and check if it is zero.
- If not, continue from step 4.
- If so, continue to step 5.
- Increment or decrement the current tap position (Org_Val) by 8 taps for glitchless
transition. Jumps higher than 8 taps might result in the delay line jump causing data to
glitch. For outputs the glitch can corrupt the serialization.
- Wait for at least 10 clock cycles.
- Go back to step 2 for a new delay line update.