JOVANA
Library Glossary Getting Started Three Levels Fields How it works Mission
Join the mission
All guides

Generating the Tone: VCOs, PLLs and Phase Noise

On the mixer rung we waved a magic wand and conjured a perfectly clean **local oscillator** — a pure sine wave at exactly the right gigahertz. That wand doesn't exist. Inside every phone is a tiny on-chip oscillator that hums on its own, drifts with temperature, and shivers with random noise. This guide shows how an LC VCO actually makes that tone, how a phase-locked loop tames it against a crystal you can trust, and why a metric called **phase noise** quietly decides whether your call drops.

The clean tone the mixer demanded

On the previous rung the mixer multiplied your incoming radio signal by a local oscillator (LO) — a steady sine wave — to slide a whole channel down from gigahertz to something an ADC can swallow. We simply assumed that LO existed: pure, single-frequency, parked exactly on 2.412 GHz or wherever the channel lives. Now we have to build it. And here is the uncomfortable truth: an oscillator is the one block in the radio that has to make energy out of nothing — it sustains an oscillation with no input signal at all — which makes it uniquely vulnerable to noise.

A radio needs two things from this tone. First, the right frequency: WiFi has dozens of channels 5 MHz apart, and the LO must hop to any of them on command and stay there. Second, spectral purity: the tone should be a needle-thin spike, not a fuzzy smear. We'll see that those two demands pull against each other, and resolving the tension is the whole art of the frequency synthesizer.

An LC tank that rings — the VCO

Strike a wine glass and it rings at one pitch, set by its size and stiffness. An oscillator needs exactly that: a resonator with a natural frequency. On-chip we build it from an LC tank — an inductor in parallel with a capacitor. Energy sloshes back and forth between the inductor's magnetic field and the capacitor's electric field, ringing at the resonant frequency f₀ = 1 / (2π√(LC)). For a 2.4 GHz radio you might use roughly 1 nH of inductance and a few hundred femtofarads of capacitance — numbers small enough to live entirely on silicon.

But a real tank loses energy every cycle — the metal coil has resistance, the silicon substrate leaks. Left alone it rings down and dies, like the wine glass fading to silence. So we add an active circuit — typically a cross-coupled pair of transistors — that senses the dying oscillation and pumps energy back in on every swing, exactly cancelling the loss. The result rings forever. That self-sustaining LC-plus-amplifier loop *is* the oscillator.

        Vdd
         |
      +--+--+
      L     C(var)   <- LC tank: sets f0 = 1/(2*pi*sqrt(L*C))
      |     |
  +---o-----o---+    Vtune --> changes C(var) --> changes f0
  |   |     |   |
  |  [M1]  [M2] |    cross-coupled NMOS:
  |   |\   /|   |    each transistor's drain drives
  |   | \ / |   |    the OTHER's gate -> positive
  |   |  X  |   |    feedback that REPLACES the energy
  |   | / \ |   |    the tank loses each cycle
  +---+/   \+---+
         |
        Itail  (bias current sets the swing)
A classic cross-coupled LC VCO. The transistors hand energy back to the tank each cycle; the varactor C(var) lets a tuning voltage stretch the frequency.

What makes it voltage-controlled? We replace the fixed capacitor with a varactor — a diode whose capacitance shrinks as you reverse-bias it harder. Feed it a control voltage V_tune and the tank capacitance changes, so f₀ changes. Now we have a knob: dial V_tune from 0 to 1 V and the tone sweeps across the band. The slope of that knob, in megahertz of output per volt of input, is the VCO gain K_VCO, and it'll matter enormously in a moment.

Phase noise — the tone that shivers

An ideal oscillator output is V(t) = A·cos(2πf₀t): one frequency, forever. A real one is V(t) = A·cos(2πf₀t + φ(t)), where φ(t) is a tiny random wobble in the *phase* — the timing of each zero crossing drifts a hair early, then a hair late. That random φ(t) is [[ic-vco-phase-noise|phase noise]]. Look at the output on a spectrum analyzer and instead of a single infinitely-thin spike you see a spike with skirts — fuzzy shoulders of power smeared out to either side of f₀.

We quantify it as the power in a 1 Hz slice at some offset from the carrier, relative to the carrier power — in units of dBc/Hz. A good 2.4 GHz CMOS VCO might hit −110 dBc/Hz at a 1 MHz offset. Read it as: the noise one megahertz away from the tone is a hundred billion times weaker than the tone itself. Closer in, the skirts rise steeply (often 20–30 dB per decade of offset); farther out they flatten into a noise floor.

Why obsess over a hundred-billion-to-one impurity? Two real failures, both quietly catastrophic:

  1. Reciprocal mixing. Your phone tunes its LO to a weak desired channel — but a *strong* interferer sits one channel over. In the mixer, the LO's noisy skirts multiply against that strong neighbour and dump a smear of noise right on top of your weak signal. The desired channel was perfectly fine; a dirty LO buried it. Phase noise, not antenna or amplifier, sets how close a strong neighbour you can survive.
  2. EVM degradation. Modern radios pack bits into the *phase* of the carrier — think 256-QAM, a fine grid of constellation points each at a precise angle. Phase noise jitters the LO's angle, so every received point lands fuzzily off its true spot. That smear is EVM (error vector magnitude). Past a threshold the decoder can't tell neighbouring symbols apart and the link throughput collapses — your '5G' quietly downshifts.

Locking the singer to the fork — the PLL

The VCO can reach any frequency but drifts and shivers. A crystal oscillator is the opposite: a slab of quartz that vibrates at one fixed frequency (say 40 MHz) with breathtaking stability and clean phase noise — but it's stuck at that one frequency and far too low for the air. The trick of a [[phase-locked-loop|phase-locked loop]] is to marry them: borrow the crystal's *purity and accuracy*, but multiply it up to the VCO's *high, tunable frequency*.

Picture a feedback loop, a thermostat for frequency. A phase/frequency detector compares the divided-down VCO against the crystal reference and reports who's ahead. A charge pump turns that 'too fast / too slow' verdict into little squirts of current. A loop filter averages those squirts into a smooth tuning voltage. That voltage nudges the VCO. And a ÷N divider in the feedback path is the magic dial: it tells the loop that N VCO cycles must equal one reference cycle, so the loop drives the VCO until f_out = N × f_ref. Want a different channel? Change N.

  f_ref           PFD          charge      loop          VCO       f_out
 (crystal) --->  +---+  up/dn   pump      filter       +-----+ --+--> (to mixer)
  e.g. 40MHz     |   |------>  /-\ ----> [R+C low-pass] | VCO |   |   e.g. 2440 MHz
                 +---+        \-/      Vtune ---------->|     |   |
                   ^                                    +-----+   |
                   |                                              |
                   +------------------  / N  <---------------------+
                       divided VCO    (program N to pick channel)

  In lock:  f_out / N  ==  f_ref     ==>   f_out = N * f_ref
  e.g.  N = 61  ->  f_out = 61 * 40 MHz = 2440 MHz
A charge-pump PLL frequency synthesizer. The divide ratio N selects the channel; the loop forces the VCO to track the crystal.

Step through what the loop does when it powers up:

  1. The VCO starts wherever its varactor happens to sit — wrong frequency.
  2. The detector sees the divided VCO drifting against the reference and pumps charge to correct it.
  3. The tuning voltage ramps; f_out swings toward N × f_ref.
  4. Phase error shrinks to zero. The loop is locked — and stays locked, hunting out any drift the instant it appears.

Loop bandwidth — where two noises trade places

Here's the elegant payoff, and the central design tension of every [[ic-frequency-synthesizer|frequency synthesizer]]. The PLL is a feedback loop, and a loop only corrects errors *slower* than its own reaction time. That reaction time is set by the loop bandwidth — typically a few hundred kHz. Inside that bandwidth the loop is fast and alert; outside it, the loop is asleep and the VCO is on its own.

Now watch how that splits the phase-noise spectrum in two:

  1. Close to the carrier (inside the loop bandwidth): the loop is fast enough to chase the VCO's drift and slam it down. Here the output inherits the crystal's clean, accurate phase noise (scaled up by N).
  2. Far from the carrier (outside the loop bandwidth): the loop can't react this fast, so the output is just the raw VCO phase noise, rolling off down its natural skirt.

So the loop bandwidth is the crossover between two noise sources — and choosing it is a genuine trade-off, not a free win. Push the bandwidth *wider* and the loop suppresses more VCO noise (good for close-in purity) and locks faster onto a new channel (good for fast WiFi/5G channel hopping) — but it also lets more reference noise and fractional-N quantization noise leak through, and it can spawn nasty reference spurs. Pull it *narrower* and you reject reference junk beautifully, but you lean harder on the bare VCO and lock more sluggishly.

  Phase noise
  (dBc/Hz)
     |
  -80|\
     | \__ shaped by REFERENCE+loop      <-- inside loop BW: loop wins
     |    \____
  -100|        \___
     |  loop BW --> :  \
     |             :   \___ shaped by raw VCO  <-- outside loop BW: VCO alone
  -120|            :       \____
     |             :            \____
     +-------------+------------------------> offset from carrier (Hz)
        1k        ~300k       1M        10M

  Move loop BW left  = quieter reference region, noisier close-in, slower lock
  Move loop BW right = quieter close-in VCO region, more ref spurs, faster lock
The synthesizer's output phase noise is a stitch of two curves. Loop bandwidth is the seam — and where you put the seam is the core design decision.