Specs

Metric Target Achieved
Center Frequency () [GHz] 4.9 4.5 4.89 5.26 4.89
Tuning Range [%] 15 15.6
Phase Noise @ 100 kHz [dBc/Hz] <= -92 -94.8 -96.6 -90.4 -90.4
Phase Noise @ 1 MHz [dBc/Hz] <= -117 -115 -117.1 -116.3 -115
FOM @ 1 MHz [dBc/Hz] >= 182 179.8 182.7 182.5 179.8
  • Voltage Controlled Oscillator for WiFi 802.11a (WLAN) Receiver
  • IF: 20 MHz
  • PDK: GF 22nm FDSOI
    • mosfets: slvtnfet_rf_b and slvtpfet_rf_b from cmos22fdsoi_rf
    • inductor: indp_mmw from cmos22fdsoi_mmw

References

Research

A Voltage Controlled Oscillator (VCO) is an oscillator whose frequency varies in response to an input control voltage. The gain () is generally linear in the VCO's tunable range.

A popular choice for RF VCO's is LC Oscillators with a Varactor where the oscillation frequency is determined by

Design

voltage-controlled-oscillator-sch.svg > invert

An initial estimation of the power budget can be made from the FOM specification (182 dBc/Hz) and target phase noise (-117 dBc/Hz). This comes out to about 7.6 mW, quite large for the requirements.

FOM=182 → 182
f0=4900 → 4,900
df=1 → 1
PN=-117 → -117
 
Pdiss=10^((20*log10(f0/df)-PN-FOM)/10)mW → 7.593 mW
Imax=Pdiss/0.9V → 8.436 mA

The oscillation condition of an LC oscillator is given by , where is the transconductance of the mosfet (M1,M2) and is the parasitic resistance of the inductor (L1,L2). In this pdk, the Q factor is about 16 at 4.9 MHz. The minimum required is about 1 mS.

Q=16 → 16
L=1.5nH → 1.5 nH
f0=4.9GHz → 4.9 GHz
 
Rp=Q*L*2pi*f0 → 738.903 ohm
gm=1/Rp → 1.353 mS

The required is easily attainable, and a simple parametric sweep can be used to determine the width based on and . So in consideration of noise, is selected 1 and a ratio of 20 is targeted. This comes out to a width of 60 .

The total capacitance needed for a 4.9 LC tank with a 1.5 inductor is 700 . Frequency must be tunable to 4.9 (4.5325 to 5.2675 GHz). When , the range of can be estimated with

f0=4.9GHz → 4.9 GHz
L=1.5nH → 1.5 nH
C=1/((2pi*f0)^2*L) → 703.326 fF
 
df=0.15*f0 → 0.735 GHz
dC=2pi*df*sqrt(L*C)*2*C → 210.998 fF

So the CMOS varactors need to have a tunable range of 210 between 0-0.8 .
According to the Razavi book, increasing the channel length widens the capacitance range. A trail and error approach shows a range of 239 to 13 and thus a delta of 226 when varactor is sized to 80/200. will need some tuning to account for the capacitance offset, but calculating it here isn't worthwhile as there are other parasitics that will become apparent in the simulations.

Initial simulation to verify frequency show that is about 3.93 with a control voltage of 0.46 , which is the midpoint of the varactor. Reducing to 320 raises to 4.91 . Tuning Range simulation shows the range is 5.28 to 4.45 GHz, or 4.865 17%. Now some fine tuning finds that 70 varactor width and 340 for achieves 4.86 15.5%, just a bit closer to the required tuning range.

fmax=5.23GHz → 5.23 GHz
fmin=4.48GHz → 4.48 GHz
 
df=fmax-fmin → 0.75 GHz
fc=df/2+fmin → 4.855 GHz
df_percent=df/fc*100 → 15.448

Running Phase Noise simulations show that the noise across the spectrum is 20 to high, which is concerning. Attempts to reduce this by playing with mosfet size and show only marginal improvements. The only remaining way to meet these specifications is the use a small inductor. Not sure why this is the case, Q is much lower so I would expect a higher noise. Anyways, this will mean redoing varactor design AHHHHHHHH. Another note is that noise is minimized at low very .

# -- transconductance -------- 
Q=15.6 → 15.6
L=0.9nH → 0.9 nH
f0=4.9GHz → 4.9 GHz
 
Rp=Q*L*2pi*f0 → 432.258 ohm
gm=1/Rp → 2.313 mS
 
# -- varactor ---------------- 
C=1/((2pi*f0)^2*L) → 1.172 pF
 
df=0.15*f0 → 0.735 GHz
dC=2pi*df*sqrt(L*C)*2*C → 351.663 fF
 
# -- tuning results ---------- 
fmax=5.26GHz → 5.26 GHz
fmin=4.5GHz → 4.5 GHz
 
df=fmax-fmin → 0.76 GHz
fc=df/2+fmin → 4.88 GHz
df_percent=df/fc*100 → 15.574
Pdiss=0.9*7.38 → 6.642
 
f_0V=4500 → 4,500
f_0p4V=4890 → 4,890
f_0p8V=5260 → 5,260
 
noise_0V=-115 → -115
noise_0p4V=-117.1 → -117.1
noise_0p8V=-116.3 → -116.3
 
FOM_0V=20*log10(f_0V)-noise_0V-10*log10(Pdiss) → 179.841
FOM_0p4V=20*log10(f_0p4V)-noise_0p4V-10*log10(Pdiss) → 182.663
FOM_0p8V=20*log10(f_0p8V)-noise_0p8V-10*log10(Pdiss) → 182.497

A balance was needed between inductor size and varactor size due to the limited Q. This was a bit tricky as small changes could drop the noise performance or fail to converge. Final device sizes in ECE1390 RF A3 - Report.pdf.

Simulations

Pasted image 20251207001714.png

Tuning Range

Analyses Setup

  • analysis: pss
    • engine: Harmonic Balance
    • beat frequency: 4.9G
    • output harmonics: number of harmonics -> 10
    • accuracy: conservative
    • tstab: 6n
    • oscillator: checked
      • oscillator node+: /VO
      • oscillator node+: /VOB
    • sweep: checked
      • variable name: vctrl
      • start: 0
      • stop: 0.8
      • sweep type: linear
      • number of steps: 10

Direct Plot Form

  • analysis: pss
    • function: Harmonic Frequency
      • select 1 for Harmonic Frequency
      • press plot

Phase Noise

Analyses Setup

  • analysis: pss
    • engine: Harmonic Balance
    • beat frequency: 4.9G
    • output harmonics: number of harmonics -> 10
    • accuracy: conservative
    • tstab: 6n
    • oscillator: checked
      • oscillator node+: /VO
      • oscillator node+: /VOB
    • sweep: unchecked
  • analysis: pnoise
    • sweeptype: default
    • relative harmonic: 1
    • start: 100
    • stop: 100M
    • sweep type: Logarithmic
    • points per decade: 10
    • maximum sideband: 10
    • output: voltage
      • positive output node: /VO
      • negative output node: /VOB

Direct Plot Form

  • analysis: pnoise
    • function: Output Noise
    • units: dBc/Hz
    • plot

Results

Transient

Pasted image 20251207175232.png

Range and Noise

tuning_range.png
noise.png