Electronic – How to observe a PLL’s frequency tracking once the lock has been acquired

cadencepllsimulation

I am trying to design a basic PLL (second order-type 1) to understand its dynamics. I am using Cadence Virtuoso for simulations. I have designed a voltage controlled oscillator that has a center frequency (at Vcontrol = VDD/2) of 16MHz, an XOR phase detector and a passive RC low pass filter.

As I've observed, for an input signal of 15-20MHz, the loop acquires the lock.

I want to observe how the PLL tracks any change in the input frequency, once the lock has been acquired. Is there any way I could simulate this?

Parametric analysis provides different set of curves for different input frequencies. This does not tell you much about the response of loop. If I could observe, once the loop is locked, how the output frequency tracks the input say for a step change in input frequency.

Best Answer

how the output frequency tracks the input say for a step change in input frequency

If you look at the control voltage into the VCO, its average value (ignoring ripple) is representative of the output frequency produced: -

enter image description here

If this filtered control voltage is stable (not end stopped) then the PLL is in equilibrium or has settled to a constant steady state error (ignoring noise).

So, if you made a step change to the reference frequency, you would see the classic 2nd order response of the control voltage: -

enter image description here

Picture taken from here

But, because there are many, many types of loop filters and amplifiers you could get variations rather like you would with a PID controller: -

enter image description here

Picture taken from here

In other words, with a simple proportional control (kp), there will be a frequency lock error because the loop gain is finite. If the gain were made too high then it could become unstable. So, the integral term becomes useful (ki) and this can reduce the frequency error to zero without necessarily causing instability. The differential term (kd) can act as a "brake" on the control loop and significantly reduce overshoot.

I'm stating all this because it is not 100% clear what your control loop actually is.