DLL_ChargePumpDLL4DO

DLL_ChargePumpDLL4DO : A charge-pump delayed locked loop (DLL) with 4 differential outputs

A delay locked loop (DLL) is a feedback loop that aligns the phase of an output clock to the phase of an input clock by adjusting the delay of a delay line. This particular DLL produces multiphase output clocks by tapping different positions in the delay line.

This DLL model is composed of a phase detector (PD), a charge pump (CP), and a voltage-controlled delay line (VCDL). The PD compares the phases of the input and output clocks, clk_in and clk_out, and produces the error expressed as the difference between the up and dn pulse widths. The CP then adjusts the control voltage, vctrl, so that the delay of the VCDL can align the phases of clk_in and clk_out with a gap of pi radians. When the DLL is in lock, the VCDL produces a set of multiphase clocks clk_out and clk_outb, uniformly spanning the phase range of 0~2*pi.

Input/Output Terminals

Name I/O Type Description
clk_out[3:0] output xbit multiphase output clocks (pos)
clk_outb[3:0] output xbit multiphase output clocks (neg)
clk_in input xbit input clock

Parameters

Name Type Default Description
Kvcdl real -12n VCDL gain (s/V)
vctrl0 real 0.5 nominal vctrl value (V)
delay0 real 3.2n VCDL delay at nominal vctrl value (s)
delay_max real 5.6n maximum limit on VCDL delay (s)
delay_min real 0.8n minimum limit on VCDL delay (s)
vctrl_init real 0.5 initial value of vctrl (V)
Iup real 200e-6 charge-pump up current (A)
Idn real 200e-6 charge-pump down current (A)
C real 100p loop-filter capacitance (F)

List of Children Cells

BLK_ChargePumpLoopFilter : A loop filter for charge-pump PLL
DLN_LinearVCDL4DO : A voltage-controlled delay line (VCDL) with a linear V-to-D characteristic and 4 differential outputs
PDC_SRLatchPD : An edge-triggered phase-only detector with an set-reset (SR) latch

List of Testbenches

tb_check_lock : A testbench for checking the locking transient response of a delay-locked loop (DLL)
tb_meas_freqstep : A testbench for measuring the frequency step response of a delay-locked loop (DLL)
tb_meas_phasestep : A testbench for measuring the phase step response of a delay-locked loop (DLL)
tb_meas_tfac : A testbench for measuring the frequency-domain transfer characteristics of a delay-locked loop (DLL)

tb_check_lock : A testbench for checking the locking transient response of a delay-locked loop (DLL)

This testbench checks the locking transient of a delay-locked loop (DLL), by initializing the DLL to a condition far from the correct locking point. The phase and delay trajectories of the DLL output clock indicate whether the DLL can acquire a correct lock.

When the DLL acquires a correct lock, the difference between the phases of the input clock clk_in and output clock clk_out should converge to a value of pi (rad) and the delay of the VCDL should converge to a half period of the clock.

Simulation Results

locking transients of the output clock phase and delay

Figure. locking transients of the output clock phase and delay.

the input and multiphase output clocks at the locked state

Figure. the input and multiphase output clocks at the locked state.

tb_meas_freqstep : A testbench for measuring the frequency step response of a delay-locked loop (DLL)

This testbench measures the frequency step response of a delay-locked loop (DLL). Once the DLL reaches its lock position, the testbench applies a step change to the frequency of the input clock clk_in using a combination of step_gen and freq_to_clk primitives and observes the response in the frequency of the output clock clk_out[3].

As it is a type-I DLL that locks its delay to a half of the input clock period, the output clock frequency is expected to follow the change in the input clock frequency immediately after the delay while the delay will converge to a half of the new clock period with the settling time determined by the DLL’s bandwidth.

Simulation Results

frequency step response of the DLL

Figure. frequency step response of the DLL.

tb_meas_phasestep : A testbench for measuring the phase step response of a delay-locked loop (DLL)

This testbench measures the phase step response of a delay-locked loop (DLL). Once the DLL reaches its lock position, the testbench applies a step change in the phase of the input clock clk_in using a combination of step_gen and phase_to_clk primitives and observes the phase response of the output clock clk_out[3].

As it is a type-I DLL that locks its delay to a half of the input clock period, the output clock phase is expected to follow the change in the input clock phase immediately after the delay.

Simulation Results

phase step response of the VCDL

Figure. phase step response of the VCDL.

tb_meas_tfac : A testbench for measuring the frequency-domain transfer characteristics of a delay-locked loop (DLL)

This testbench measures the frequency-domain transfer characteristics between the input clock period and output delay of a DLL using a probe_ac primitive. The probe_ac primitive supplies an AC stimulus to the input clock period value, with its frequency gradually varying from 10kHz to 10MHz. The primitive also measures the DLL’s output delay as the response and collects the frequency-domain transfer function between the input clock period and output delay.

This input clock period vs. output delay transfer characteristics can indicate the closed-loop bandwidth of a type-I DLL.

Simulation Results

the frequency-domain transfer characteristics between the input clock period and output delay of the DLL

Figure. the frequency-domain transfer characteristics between the input clock period and output delay of the DLL.