β: This English translation is in beta — the Traditional-Chinese original is the authoritative version.
Complete PLL phase-noise budget and optimal loop BW
Prerequisites: white_noise_to_phase_noise (where the VCO term comes from), serdes_clocking_connection (the CDR/PLL's high-pass on the VCO, jitter integration bandwidth), lc_vs_ring (why ring's is high and LC's is low) | Next: exercises, lab_13_pll_cdr_transfer
This page answers a question a system-design engineer faces every day: for a phase-locked loop (PLL — a negative-feedback loop that locks an oscillator's phase to a reference clock), which sources contribute how much to the output phase noise, and which one dominates at which offset band? How wide should the loop bandwidth (the highest offset the feedback can still track) be chosen to minimize total jitter? We write out the transfer function of each of the five noise sources to the output, sum them as
(canonical Section 11.2, "PLL output noise budget"; for a fractional-N loop a third term — the ΔΣ quantization noise — must be added, see the section "The third term for fractional-N" on this page; it is zero for integer-N), then minimize (integrated phase variance, proportional to rms jitter squared) to find that famous U-shaped curve and its minimum.
Physical intuition (conclusion first): a PLL is a low-pass tracker. Within the loop bandwidth , the feedback reacts fast enough that the output follows the reference — so the noise of the reference and the loop's front end (PFD, charge-pump, divider) is amplified and low-passed onto the output (and the reference is also multiplied by , so its power is multiplied by ); meanwhile the VCO's own close-in drift is corrected away by the feedback (VCO high-pass). Beyond , the feedback can't keep up, and the output follows the free-running VCO — the VCO's noise leaks straight through. So in-band tracks ref/CP, out-of-band tracks VCO, with the crossover at . Set too narrow → too much VCO leaks through (U-shape's left arm rises); too wide → too much ref/CP gets carried through (right arm rises). There must be an optimal in between.
This page's PLL closed-loop transfer function (loop transfer / open-loop gain / type-II stability — the higher-order details) belongs to standard PLL literature (Gardner, Razavi, Best), not among the five source PDFs downloaded for this site; we only cite its type-II second-order closed-loop result (already recorded in canonical Section 10.2), and focus on "the ISF determines the VCO term " and "how the budget sums up and how the optimal BW is found." The microscopic origin of the VCO term () is precisely the output of this site's whole ISF theory built up so far.
Why do a "noise budget"
Phase noise is not a single number — it's a curve that varies with offset, and different sources dominate different segments of that curve. Doing a budget = plotting each source as one curve, and seeing where each one pokes up and what the total looks like. The value of doing this:
- Find the bottleneck: close-in too high? Usually the reference or the charge-pump (amplified by ). Far-out too high? It's the VCO. Treat the actual cause, don't swap parts blindly.
- Choose the loop BW: the crossover point and total jitter are both strongly tied to ; the budget lets you quantify this trade-off.
- Connect to system metrics: integrate to get rms jitter , and feed it directly into the SerDes eye/BER (see serdes_clocking_connection).
PLL block diagram and the five noise sources
The skeleton of an integer-N PLL: reference clock → phase detector (PFD, phase-frequency detector) + charge-pump (turns the phase error into current pulses) → loop filter (integrates the current into a control voltage) → VCO (voltage-controlled oscillator) → divider (÷N, pulls the output back down to the reference frequency for comparison). The five noise injection points, shown below:
Each source takes a different path to the output, so the shaping differs:
| Source | Symbol | Physical origin | Transfer to output | Shaping at output |
|---|---|---|---|---|
| reference | crystal/reference phase noise | then low-pass | (in-band, amplified by ) | |
| PFD/charge-pump | CP current noise, PFD dead-zone, mismatch | low-pass | (in-band, flat floor) | |
| divider | jitter of the ÷N logic | low-pass (same path as ref) | (in-band; often folded into ) | |
| loop filter | filter resistor thermal noise modulating the VCO | band-pass (peaks near ) | (usually small, omitted) | |
| VCO | tank/tail thermal noise via ISF (this site's main thread) | high-pass | (dominates out-of-band) |
Why the reference is multiplied by . The divider pulls the output frequency back down to for comparison — equivalent to requiring output phase = reference phase (phase is also multiplied up). Phase amplified by means power spectral density amplified by . So a clean crystal ( very low) combined with a large (e.g. ) has its equivalent in-band noise floor at the output raised by dB — this is why an integer-N PLL's in-band noise is usually determined jointly by the reference and the charge-pump, not the VCO.
Design takeaway: the in-band floor ; to suppress it, either lower (use fractional-N or a higher-frequency reference), or lower the charge-pump's current noise. The VCO contributes nothing in-band (it's corrected away by the high-pass).
Step 1: each source's transfer function (type-II second-order)
Using the closed-loop power transfer of canonical Section 10.2, "PLL (type-II 2nd order)." With natural frequency , damping ratio (this page uses near-critical ), and ( the offset frequency):
- Low-frequency limit : (reference/CP fully pass), (VCO suppressed). Confirms "in-band tracks ref/CP."
- High-frequency limit : , (VCO fully passes). Confirms "out-of-band tracks VCO."
- Complementarity: in the standard form , so the output is the sum of the two paths with no double-counting.
- Dimension check: are both rad/s, numerator and denominator are the same order ( or ), is dimensionless — confirmed.
The detailed derivation of these two transfer functions (writing the open-loop gain from the PFD gain , VCO gain , and loop filter , then taking the closed loop) is in lab_13_pll_cdr_transfer; that derivation chain and type-II stability belong to standard PLL literature (not among the five source PDFs).
Step 2: summing into the output budget
The reference and charge-pump/divider take the same low-pass path (with the reference first multiplied by ), the VCO takes the high-pass path, and the three segments are uncorrelated — their powers add (canonical Section 11.2):
- Dimension check: are all , and are dimensionless, so the three terms add in the same units — confirmed.
- Where did the divider go: takes the same low-pass path as the charge-pump and is shaped identically by at the output, so in practice is often folded into as "the loop front end's equivalent in-band floor." This page's is the combined total of "PFD + charge-pump + divider."
- The loop-filter term: 's (loop-filter resistor thermal noise modulating the VCO) transfer has a small peak near , usually smaller in magnitude than ref/CP and VCO; this page's toy budget omits it (marked illustrative). A real design needs to include it and optimize resistor noise.
- The fractional-N third term: if the divider modulus is dithered by a ΔΣ modulator (fractional-N), the quantization noise enters the budget as — same low-pass path as the CP, but not multiplied by , and shaped as a rising ramp of dB/dec. Full derivation and worked example in the section "The third term for fractional-N: ΔΣ quantization noise" on this page. For integer-N (this page's lab_20 setup) this term is zero.
The VCO term is precisely this site's ISF result
doesn't come out of thin air — it is exactly the output of this site's whole ISF theory. In the region (white-noise upconversion),
(clean time-domain version, see white_noise_to_phase_noise; corresponds to [P1] Eq.(21), p.185, off by an SSB factor-of-2). So the answer to "why is the VCO term in the PLL budget, why " is entirely in the ISF. A ring VCO has a large and small , so is high (see lc_vs_ring) — this is exactly the root reason a ring-PLL needs to open up to suppress the VCO.
Step 3: the in-band vs out-of-band handoff
Break into three segments:
- Deep in-band (): , . — a flat floor set by the reference and the charge-pump (if the reference contains , this segment tilts up slightly toward close-in).
- Out-of-band (): , . — the VCO's dB/decade skirt leaks straight through.
- Crossover (): the two segments meet. At , at ( dB), ( dB), and their sum ( dB) — this is the slight peaking, also the origin of the common "bump near the loop BW" seen in PLL output (the two curves are actually equal at , each about , dB, not at ). Too small a (underdamped) makes the peaking sharp. The exact location and height of the peak actually have a closed-form solution — see the next section.
Reading a PN plot at a glance: see a flat close-in floor → measure in-band, back out ; see the floor start falling at dB/dec from some offset → that knee is , beyond it is VCO. A sharp peak in the middle → insufficient damping or an overshooting loop-BW design.
Supplementary derivation: the closed-form peaking — a type-II with a zero is destined to bump
Step 3 measured ( dB) at — but that is not the maximum. This section solves analytically for the peak frequency and peak magnitude of the type-II second-order (the canonical Section-10.2 form). The derivation itself is pure algebra (self-contained); the " phase margin mapping" and the "cascaded 0.1-dB rule" belong to standard control/telecom literature, each labeled as such (external literature, not among this site's five source PDFs).
Normalization
Let (dimensionless; rad/s ÷ rad/s — checks out). Divide the numerator and denominator of the canonical Section-10.2 by :
Finding the extremum: a beautiful quadratic
Let (). Numerator , denominator , derivatives , . The extremum condition of the quotient is ; expand term by term:
(The two cross terms cancel exactly, leaving a quadratic with no .) Setting it to zero and taking the positive root:
(The two forms are equal: multiply numerator and denominator by and use .)
Why it "always" peaks
At (DC), — positive for every . The DC gain is 1 and the slope points up, so for any finite , always holds and the peak is necessarily above 0 dB. The physical reason: a type-II loop has two integrators (open-loop phase starts at ) and can only be stabilized by the loop filter's zero () pulling the phase back early; that zero first lifts the closed-loop gain above 1 before the double pole pushes it down — peaking is the price of type-II stability, not a design mistake. Contrast: an ordinary second-order low-pass without a zero has no resonance peak for ; a type-II with a zero always peaks, the peak merely getting lower and sliding toward lower frequency as grows.
Peak magnitude: substitute back and simplify
Let (dimensionless). Three intermediate quantities, simplified step by step (using repeatedly):
(The last step uses .) Therefore
Peaking (dB) . dB bookkeeping note: this is of a power transfer, numerically equal to of the magnitude transfer — the same number; there is no SSB /2 or /4 bookkeeping here (that only arises when converting to — see canonical Eq. 16 and the [P1] Eq.(21) discussion).
Dimension check: are all dimensionless; (dimensionless) Hz — checks out; is a dimensionless power ratio — checks out.
Golden-ratio easter egg: at (), , , and — the peak is exactly the golden ratio, peaking dB, located at . The dB read at in Step 3 is only the right shoulder of this peak.
ζ → peaking table (with phase margin)
| peaking (dB) | phase margin | ||
|---|---|---|---|
| 0.5 | 0.856 | 3.33 | 51.8° |
| 0.707 | 0.786 | 2.09 | 65.5° |
| 1.0 | 0.707 | 1.25 | 76.3° |
| 1.5 | 0.611 | 0.65 | 83.7° |
| 4.32 | 0.388 | 0.10 | 89.2° |
Where the PM mapping comes from: back out the open loop from , ; setting gives the crossover frequency ; and , hence
This expression is identical in form to the textbook "standard second-order system (no-zero prototype)" PM mapping (the algebraic identity makes the two arguments equal), so the common rule of thumb degrees (valid for ) carries over as well (the standard PM mapping and the rule are external literature, not among this site's five source PDFs: F. M. Gardner, Phaselock Techniques, 3rd ed., Wiley, 2005; B. Razavi, Design of CMOS Phase-Locked Loops, Cambridge Univ. Press, 2020).
The cascade rule: why telecom specs obsess over 0.1 dB
Cascade loops with identical transfers (a chain of repeaters/CDRs on a long-haul link, each regenerating and re-transmitting the clock): the total jitter transfer is — the dBs add directly: the peak becomes dB.
- 2.09 dB per stage () 20 stages 41.8 dB: jitter near is amplified more than a hundredfold — the link is dead.
- 0.1 dB per stage 20 stages 2 dB: manageable.
This is why the SONET/SDH era pinned the regenerator jitter-transfer peaking spec at the 0.1 dB level (external standards literature: Telcordia GR-253-CORE and the ITU-T G.783/G.958 family of telecom specs; this site has not verified the individual clause numbers — we cite the magnitude and the spirit). Inverting the closed form, 0.1 dB requires (PM , heavily overdamped) — completely different from the – that minimizes a single PLL's integrated jitter: single-loop optimal is not cascade optimal; a CDR's is a system spec set by "which stage of the chain you are."
Rigor note: adding dBs assumes every stage has the same (peaks aligned — worst case); in practice the stages' are slightly staggered and the compounding is milder than , but specs are written for the worst case.
Numerical cross-check (repo pll_utils)
Closed form vs H_lowpass_mag2 from simulations/common/pll_utils.py (a 4-million-point fine
sweep):
import numpy as np
from simulations.common.pll_utils import H_lowpass_mag2
def peak_closed(zeta): # closed form: f_pk/f_n and |H_lp|^2_max
s = np.sqrt(1 + 8*zeta**2)
return np.sqrt((s - 1)/(4*zeta**2)), (s + 1)**2/((s - 1)*(s + 3))
x = np.linspace(0.001, 5, 4_000_001) # x = f/f_n (take f_n = 1 Hz)
for z in (0.5, 0.707, 1.0, 1.5):
xpk, g = peak_closed(z)
m2 = H_lowpass_mag2(x, 1.0, z)
k = int(np.argmax(m2))
print(f"{z}: closed {xpk:.4f}/{10*np.log10(g):.4f} dB, "
f"numeric {x[k]:.4f}/{10*np.log10(m2[k]):.4f} dB")
# -> 0.707: closed 0.7862/2.0903 dB, numeric 0.7862/2.0903 dB (others: zeta=0.5→3.3339, 1.0→1.2494, 1.5→0.6514; closed = numeric to 4 decimals)
zg = np.linspace(2, 8, 600001) # sweep zeta to invert for 0.1 dB peaking
pk = 10*np.log10(peak_closed(zg)[1])
z01 = zg[int(np.argmin(np.abs(pk - 0.1)))]
print(round(z01, 3)) # -> 4.319 (zeta required for 0.1 dB)
Conditions of validity and failure (this section's closed form):
- Valid only for the ideal type-II second-order closed loop of canonical Section 10.2 (linearized charge-pump PLL, no extra poles). Real loops usually add 1–2 high-frequency poles in the loop filter (third/fourth-order loops); the peak location and height shift and must be computed numerically.
- The PM mapping assumes the crossover happens on the ideal ; extra poles eat PM, and loses accuracy accordingly.
- This peak is a bump of the transfer function; the actual PN bump near at the output must still be multiplied by each source's PSD (see Step 3).
Step 4: reference spur (brief)
Besides random phase noise (a continuous skirt), PLL output also commonly has discrete spurs (single-frequency spikes). The most common is the reference spur: the charge-pump injects a current pulse every reference period, and this periodic disturbance appears at the output at integer multiples of (i.e. offset ). Its source is CP current mismatch, leakage, and PFD dead-zone, which impose a small ripple on the control voltage, converted by the VCO's into phase-modulation sidebands.
- Spur vs. random PN: a spur is a deterministic, narrow line (a needle in the spectrum), random PN is a continuous skirt; in measurement, the spur's height doesn't change with resolution bandwidth RBW (its power is concentrated in one bin), whereas random PN's dBc/Hz is genuinely "per-Hz."
- Relation to loop BW: the reference spur at offset , if , is attenuated by 's low-pass (narrower loop BW → more spur suppression); this is consistent with "narrow BW favors random in-band noise," but it sacrifices VCO suppression — the same trade-off again.
- This page's budget only covers the random part (continuous ); a quantitative spur analysis belongs to standard PLL literature (not among the five source PDFs) — here it's only a conceptual link.
Step 5: optimal loop BW — minimizing ∫S_out df
Write out the output's integrated phase variance (canonical Eq. 18):
is a function of , because depends on through . Split it into in-band and out-of-band pieces to see the trend:
- First term (ref/CP) increases monotonically with : the larger , the wider the low-pass passband, carrying more of the in-band floor (including the -amplified reference) through to the output. Roughly (flat floor times passband width).
- Second term (VCO) decreases monotonically with : the larger , the more of the VCO's close-in the high-pass corrects away. For passed through the high-pass, the residual integral (wider BW → less leakage).
One increasing, one decreasing → a U-shape. Setting the derivative with respect to to zero gives a unique minimum: