跳至主要内容

PLL 完整相位雜訊預算與最佳 loop BW

先備white_noise_to_phase_noise(VCO 那一項 SvcoΓrms2/qmax2Si/f2S_{vco}\propto\Gamma_{rms}^2/q_{max}^2\cdot S_i/f^2 從哪來)、serdes_clocking_connection(CDR/PLL 對 VCO 的 high-pass、jitter 積分頻寬)、lc_vs_ring(為何 ring 的 SvcoS_{vco} 高、LC 低)| 接下來exerciseslab_13_pll_cdr_transfer

這頁回答一個系統設計工程師每天都要面對的問題:一顆鎖相環(PLL,phase-locked loop,把振盪器相位鎖到參考時鐘的負回授環)的輸出相位雜訊,到底是由哪些源、各自貢獻 多少、在哪個 offset 頻段誰當家?而 loop bandwidth(環路頻寬,回授追得上的最高 offset) 應該選多寬,才能讓總抖動最小? 我們要把五個雜訊源逐一寫出它們到輸出的轉移函數,加總成

Sout=(SrefN2+Scp)Hlp2+SvcoHhp2S_{out}=(S_{ref}N^2+S_{cp})\,\lvert H_{lp}\rvert^2+S_{vco}\,\lvert H_{hp}\rvert^2

(規範第 11.2 節「PLL 輸出雜訊預算」;若是 fractional-N,還要加上第三項 ΔΣ 量化雜訊 SΔΣHlp2S_{\Delta\Sigma}\,\lvert H_{lp}\rvert^2——見本頁「fractional-N 的第三項」一節,integer-N 時該項為零), 再對 Soutdf\int S_{out}\,df(積分相位變異,正比於 rms jitter 平方)求極小,得到那條著名的 U 形曲線與其最低點。

物理直覺(先講結論):PLL 是一個低通追蹤器。在 loop bandwidth fnf_n 以內,回授來得及 反應,輸出跟著參考走——於是 reference 與環路前端(PFD、charge-pump、divider)的雜訊 被放大且低通地搬到輸出(而且 reference 還被 ×N\times N 倍頻,功率 ×N2\times N^2);同時 VCO 自己的 close-in 漂移被回授糾正掉(VCO 高通)。在 fnf_n 以外,回授來不及,輸出跟著 VCO 自由跑——VCO 的 1/f21/f^2 雜訊原樣漏出。所以 in-band 跟 ref/CP、out-of-band 跟 VCO, 交越就在 fnf_n。把 fnf_n 開太窄→VCO 漏出太多(U 形左臂上揚);開太寬→ref/CP 被搬出來太多 (右臂上揚)。中間必有一個最佳 fnf_n

本頁的 PLL 閉環轉移函數(loop transfer / 開環增益 / type-II 穩定性那些高階細節)屬於 標準 PLL 文獻(Gardner、Razavi、Best),不在本站下載的 5 篇 PDF 之內;我們只引用其 type-II 二階閉環結果(規範第 10.2 節已收錄),重心放在「ISF 決定 VCO 那一項 SvcoS_{vco}」 以及「預算如何加總、最佳 BW 如何取」。VCO 那一項的微觀來源(Γrms2/qmax2\Gamma_{rms}^2/q_{max}^2)正是 本站前面整套 ISF 理論的成果。

為什麼要做「雜訊預算」

phase noise 不是單一數字,它是一條隨 offset 變化的曲線;而曲線上每一段由不同的源主宰。 做預算(budget)= 把每個源畫成一條,看誰在哪段冒頭、總和長什麼樣。 這件事的價值:

  • 找瓶頸:close-in 太高?多半是 reference 或 charge-pump(被 N2N^2 放大)。far-out 太高? 是 VCO。對症下藥,不要盲目換零件。
  • 選 loop BW:交越點、總 jitter 都跟 fnf_n 強相關,預算讓你量化這個取捨。
  • 連到系統指標:把 SoutS_{out} 積分得 rms jitter σt\sigma_t,直接餵進 SerDes 的 eye/BER(見 serdes_clocking_connection)。

PLL 方塊圖與五個雜訊源

一顆整數-N PLL 的骨架:參考時鐘 → 鑑相器(PFD,phase-frequency detector)+ 電荷泵 (charge-pump,把相位差變成電流脈衝)→ loop filter(迴路濾波器,把電流積成控制電壓)→ VCO(壓控振盪器)→ 除頻器(÷N,把輸出拉回參考頻率比相)。五個雜訊注入點如圖:

每個源到輸出走的路徑不同,所以整形(shaping)不同

符號物理來源到輸出的轉移在輸出的整形
referenceSrefS_{ref}晶體/參考的相位雜訊×N\times N 再低通N2Hlp2N^2\lvert H_{lp}\rvert^2(in-band,被 N2N^2 放大)
PFD/charge-pumpScpS_{cp}CP 電流雜訊、PFD dead-zone、mismatch低通Hlp2\lvert H_{lp}\rvert^2(in-band,平坦底)
dividerSdivS_{div}÷N 邏輯的 jitter低通(與 ref 同路徑)Hlp2\lvert H_{lp}\rvert^2(in-band;常併入 ScpS_{cp}
loop filterSlfS_{lf}濾波電阻熱雜訊調 VCO帶通(峰在 fnf_n 附近)Hlp2\propto\lvert H_{lp}\rvert^2(常較小,略)
VCOSvcoS_{vco}tank/tail 熱雜訊經 ISF(本站主線)高通Hhp2\lvert H_{hp}\rvert^2(out-of-band 主宰)

為什麼 reference 要乘 N2N^2 divider 把輸出頻率 fout=Nfreff_{out}=N f_{ref} 拉回 freff_{ref} 比相,等於 要求輸出相位 = N×N\times 參考相位(相位也被倍頻)。相位放大 NN 倍,功率譜密度就放大 N2N^2 倍。所以一顆乾淨晶體(SrefS_{ref} 很低)配上大 NN(例如 N=100N=100)後,等效到輸出的 in-band 雜訊地板會被抬高 20log10N=4020\log_{10}N=40 dB——這是為什麼 整數-N PLL 的 in-band 雜訊往往由參考 ×N2\times N^2 與 charge-pump 共同決定,而不是 VCO。

設計訊息:in-band 地板 (SrefN2+Scp)\approx(S_{ref}N^2+S_{cp});要壓它,要嘛降 NN(用 fractional-N 或更高頻參考)、要嘛降 charge-pump 電流雜訊。VCO 對 in-band 沒有貢獻(被高通糾正掉)。

第 1 步:每個源的轉移函數(type-II 二階)

採規範第 10.2 節「PLL(type-II 2nd order)」的閉環功率轉移。以自然頻率 ωn=2πfn\omega_n=2\pi f_n、 阻尼比 ζ\zeta(本頁取臨界附近 ζ=0.707\zeta=0.707)、ω=2πf\omega=2\pi fff 為 offset 頻率)表示:

Hlp2=(2ζωnω)2+ωn4(ωn2ω2)2+(2ζωnω)2,Hhp2=ω4(ωn2ω2)2+(2ζωnω)2.\lvert H_{lp}\rvert^2=\frac{(2\zeta\omega_n\omega)^2+\omega_n^4}{(\omega_n^2-\omega^2)^2+(2\zeta\omega_n\omega)^2},\qquad \lvert H_{hp}\rvert^2=\frac{\omega^4}{(\omega_n^2-\omega^2)^2+(2\zeta\omega_n\omega)^2}.
  • 低頻極限 ω0\omega\to0Hlp2ωn4/ωn4=1\lvert H_{lp}\rvert^2\to\omega_n^4/\omega_n^4=1(參考/CP 全傳)、 Hhp20\lvert H_{hp}\rvert^2\to0(VCO 被壓)。✓「in-band 跟 ref/CP」。
  • 高頻極限 ω\omega\to\inftyHlp2(2ζωnω)2/ω40\lvert H_{lp}\rvert^2\to(2\zeta\omega_n\omega)^2/\omega^4\to0Hhp2ω4/ω4=1\lvert H_{hp}\rvert^2\to\omega^4/\omega^4=1(VCO 全傳)。✓「out-of-band 跟 VCO」。
  • 互補性:標準式下 Hhp(s)=1Hlp(s)H_{hp}(s)=1-H_{lp}(s),故輸出 = 兩路徑相加,無重複計。
  • Dimension checkω,ωn\omega,\omega_n 同為 rad/s,分子分母同階(ω4\omega^4ωn4\omega_n^4), H2\lvert H\rvert^2 無因次 ✓。

這兩條轉移函數的詳細推導(從 PFD gain KdK_d、VCO gain KvK_v、loop filter F(s)F(s) 寫開環 G(s)=KdKvF(s)/sG(s)=K_dK_vF(s)/s 再求閉環)見 lab_13_pll_cdr_transfer; 那條鏈路與 type-II 穩定性屬標準 PLL 文獻(不在 5 篇 PDF 內)。

第 2 步:加總成輸出預算

reference 與 charge-pump/divider 走同一條低通路徑(reference 先 ×N\times N),VCO 走高通路徑, 三段不相關、功率相加(規範第 11.2 節):

Sout(f)=(Sref(f)N2+Scp(f))Hlp(f)2+Svco(f)Hhp(f)2.S_{out}(f)=\big(S_{ref}(f)\,N^2+S_{cp}(f)\big)\,\lvert H_{lp}(f)\rvert^2+S_{vco}(f)\,\lvert H_{hp}(f)\rvert^2 .
  • Dimension checkSref,Scp,Svco,SoutS_{ref},S_{cp},S_{vco},S_{out}rad2/Hz\text{rad}^2/\text{Hz}NNH2\lvert H\rvert^2 無因次,三項同單位相加 ✓。
  • divider 去哪了SdivS_{div} 與 charge-pump 走同一條低通路徑、在輸出同樣是 Hlp2\lvert H_{lp}\rvert^2 整形,故工程上常把 SdivS_{div} 併進 ScpS_{cp} 當作「環路前端等效 in-band 地板」。本頁的 ScpS_{cp} 就是「PFD + charge-pump + divider」的合計。
  • loop-filter 那一項SlfS_{lf}(濾波電阻熱雜訊調制 VCO)的轉移在 fnf_n 附近有個小峰,量級 通常比 ref/CP 與 VCO 小,本頁的 toy 預算略去(標 illustrative);真實設計要納入並做電阻雜訊 最佳化。
  • fractional-N 的第三項:若除數由 ΔΣ 調變器抖動(fractional-N),量化雜訊以 SΔΣ(f)Hlp2S_{\Delta\Sigma}(f)\,\lvert H_{lp}\rvert^2 進預算——與 CP 同路徑低通,但不乘 N2N^2、 形狀是 +20(m1)+20(m-1) dB/dec 的上升斜坡。完整推導與 worked example 見本頁 「fractional-N 的第三項:ΔΣ 量化雜訊」一節。integer-N(本頁 lab_20 的設定)此項為零。

VCO 那一項就是本站的 ISF 結果

SvcoS_{vco} 不是天上掉下來的——它就是前面整套 ISF 理論的輸出。對 1/f21/f^2 區(白噪上轉),

Svco(f)=Γrms2qmax2in2/Δf(2πf)2[rad2/Hz]S_{vco}(f)=\frac{\Gamma_{rms}^2}{q_{max}^2}\cdot\frac{\overline{i_n^2}/\Delta f}{(2\pi f)^2}\quad[\text{rad}^2/\text{Hz}]

(時域乾淨版,見 white_noise_to_phase_noise; 對應 [P1] Eq.(21), p.185,差個 SSB factor-of-2)。所以「PLL 預算裡 VCO 為什麼是 1/f21/f^2、為什麼 Γrms2/qmax2\propto\Gamma_{rms}^2/q_{max}^2」——答案全在 ISF。ring VCO 的 Γrms\Gamma_{rms} 大、qmaxq_{max} 小, SvcoS_{vco} 就高(見 lc_vs_ring),這正是 ring-PLL 要把 fnf_n 開大 去壓 VCO 的根本原因。

第 3 步:in-band vs out-of-band 的切換

SoutS_{out} 拆成三段讀:

  1. deep in-band(ffnf\ll f_nHlp21\lvert H_{lp}\rvert^2\approx1Hhp20\lvert H_{hp}\rvert^2\approx0SoutSrefN2+ScpS_{out}\approx S_{ref}N^2+S_{cp}——一條由參考×N2\times N^2與 charge-pump 撐起的平坦地板 (若參考含 1/f1/f,這段會微微往 close-in 翹)。
  2. out-of-band(ffnf\gg f_nHlp20\lvert H_{lp}\rvert^2\approx0Hhp21\lvert H_{hp}\rvert^2\approx1SoutSvco1/f2S_{out}\approx S_{vco}\propto1/f^2——VCO 的 20-20 dB/decade 裙邊原樣漏出。
  3. 交越(ffnf\approx f_n:兩段交會。ζ=0.707\zeta=0.707 下,在 fnf_nHlp21.5\lvert H_{lp}\rvert^2\approx1.5+1.76+1.76 dB)、Hhp20.5\lvert H_{hp}\rvert^2\approx0.53-3 dB), 兩者之和 2\approx2+3+3 dB)——這就是輕微的鼓包(peaking),也是 PLL 輸出常見的 「在 loop BW 附近隆起一塊」的由來(兩條曲線真正相等發生在 f1.55fnf\approx1.55\,f_n,各約 0.850.850.7-0.7 dB, 並非在 fnf_n)。ζ\zeta 太小(欠阻尼)鼓包會很尖。峰值的精確位置與高度其實有閉式解—— 見下一節。

一眼判讀 PN 圖:看到 close-in 平坦地板 → 量 in-band,反推 SrefN2+ScpS_{ref}N^2+S_{cp};看到地板 外緣某 offset 開始以 20-20 dB/dec 下滑 → 那個轉折就是 fnf_n,外面是 VCO。中間若有尖峰 → 阻尼不足或 loop BW 設計過衝。

補充推導:peaking 的閉式解——type-II 帶零點注定隆起

第 3 步在 f=fnf=f_n 處量到 Hlp21.5\lvert H_{lp}\rvert^2\approx1.5+1.76+1.76 dB),但那不是最高點。 這一節把 type-II 二階 Hlp2\lvert H_{lp}\rvert^2(規範 10.2 原式)的峰值頻率與峰值大小 解析地解出來。推導本身是純代數(自含);「ζ\zeta\leftrightarrow phase margin 對應」與 「級聯 0.1 dB 法則」屬標準控制/電信文獻,逐一標明(外部文獻,非本站 5 篇 PDF)。

無因次化

x=ω/ωn=f/fnx=\omega/\omega_n=f/f_n(無因次;rad/s ÷ rad/s ✓)。把規範 10.2 的 Hlp2\lvert H_{lp}\rvert^2 分子分母同除 ωn4\omega_n^4

Hlp2=(2ζωnω)2+ωn4(ωn2ω2)2+(2ζωnω)2=1+4ζ2x2(1x2)2+4ζ2x2g(x).\lvert H_{lp}\rvert^2=\frac{(2\zeta\omega_n\omega)^2+\omega_n^4}{(\omega_n^2-\omega^2)^2+(2\zeta\omega_n\omega)^2} =\frac{1+4\zeta^2x^2}{(1-x^2)^2+4\zeta^2x^2}\equiv g(x) .

求極值:一條漂亮的二次式

u=x2u=x^2u0u\ge0)。分子 N(u)=1+4ζ2uN(u)=1+4\zeta^2u、分母 D(u)=(1u)2+4ζ2u=u2+(4ζ22)u+1D(u)=(1-u)^2+4\zeta^2u=u^2+(4\zeta^2-2)u+1,導數 N=4ζ2N'=4\zeta^2D=2u+4ζ22D'=2u+4\zeta^2-2。 商的極值條件是 NDND=0N'D-ND'=0,逐項展開:

NDND=4ζ2[u2+(4ζ22)u+1](1+4ζ2u)[2u+4ζ22]=[4ζ2u2+(16ζ48ζ2)u+4ζ2][8ζ2u2+(16ζ48ζ2)u+2u+4ζ22]=4ζ2u22u+2  =  2(2ζ2u2+u1).\begin{aligned} N'D-ND'&=4\zeta^2\big[u^2+(4\zeta^2-2)u+1\big]-(1+4\zeta^2u)\big[2u+4\zeta^2-2\big]\\ &=\big[4\zeta^2u^2+(16\zeta^4-8\zeta^2)u+4\zeta^2\big]-\big[8\zeta^2u^2+(16\zeta^4-8\zeta^2)u+2u+4\zeta^2-2\big]\\ &=-4\zeta^2u^2-2u+2\;=\;-2\big(2\zeta^2u^2+u-1\big). \end{aligned}

(兩個 16ζ416\zeta^4 交叉項恰好對消,剩下的二次式不含 ζ4\zeta^4。)令它為零、取正根:

2ζ2u2+u1=0u\*=1+8ζ214ζ2=21+8ζ2+1,fpk=fnu\*.2\zeta^2u^2+u-1=0\quad\Longrightarrow\quad u^\*=\frac{\sqrt{1+8\zeta^2}-1}{4\zeta^2}=\frac{2}{\sqrt{1+8\zeta^2}+1},\qquad f_{pk}=f_n\sqrt{u^\*}.

(兩個寫法相等:分子分母同乘 1+8ζ2+1\sqrt{1+8\zeta^2}+1,用 8ζ2=(1+8ζ2)218\zeta^2=(\sqrt{1+8\zeta^2})^2-1。)

為什麼「一定」隆起

u=0u=0(DC)處,NDND=4ζ2(4ζ22)=+2N'D-ND'=4\zeta^2-(4\zeta^2-2)=+2——ζ\zeta 無關、恆為正。 DC 增益是 1、斜率往上,所以對任何有限 ζ\zetau\*>0u^\*>0 恆成立、峰值必高於 0 dB。物理原因: type-II 有兩個積分器(開環相位從 180-180^\circ 起跳),必須靠 loop filter 的 zero (fz=fn/(2ζ)f_z=f_n/(2\zeta))提前把相位拉回來才穩得住;這個 zero 先把閉環增益過 1、 雙極點才把它壓下去——peaking 是 type-II 穩定性的代價,不是設計失誤。對照:沒有零點的 普通二階低通,ζ1/2\zeta\ge1/\sqrt2 時就沒有共振峰;帶零點的 type-II 則永遠有峰, 只是 ζ\zeta 越大峰越矮、位置越往低頻縮。

峰值大小:代回化簡

s=1+8ζ2s=\sqrt{1+8\zeta^2}(無因次)。三個中間量逐步化簡(反覆用 8ζ2=s218\zeta^2=s^2-1):

N(u\*)=1+4ζ2u\*=1+(s1)=s,1u\*=12s+1=s1s+1,D(u\*)=(s1s+1)2+(s1)=(s1)[(s1)+(s+1)2](s+1)2=s(s1)(s+3)(s+1)2.\begin{aligned} N(u^\*)&=1+4\zeta^2u^\*=1+(s-1)=s,\\ 1-u^\*&=1-\frac{2}{s+1}=\frac{s-1}{s+1},\\ D(u^\*)&=\Big(\frac{s-1}{s+1}\Big)^2+(s-1) =\frac{(s-1)\big[(s-1)+(s+1)^2\big]}{(s+1)^2} =\frac{s\,(s-1)(s+3)}{(s+1)^2}. \end{aligned}

(最後一步用 (s1)+(s+1)2=s2+3s=s(s+3)(s-1)+(s+1)^2=s^2+3s=s(s+3)。)所以

Hlpmax2=N(u\*)D(u\*)=(s+1)2(s1)(s+3),fpk=fn2s+1,s=1+8ζ2.\lvert H_{lp}\rvert^2_{max}=\frac{N(u^\*)}{D(u^\*)}=\frac{(s+1)^2}{(s-1)(s+3)},\qquad f_{pk}=f_n\sqrt{\frac{2}{s+1}},\qquad s=\sqrt{1+8\zeta^2}.

peaking(dB)=10log10Hlpmax2=10\log_{10}\lvert H_{lp}\rvert^2_{max}dB 記帳註:這是功率轉移的 10log1010\log_{10},數值上等於幅度轉移的 20log1020\log_{10}——同一個數字;此處沒有 SSB 的 /2、/4 記帳問題(那是把 SϕS_\phiL\mathcal{L} 才有的事,見規範 Eq.16 與 [P1] Eq.(21) 的討論)。

Dimension checkx,u,ζ,sx,u,\zeta,s 全無因次;fpk=fn×f_{pk}=f_n\times(無因次)== Hz ✓; Hlpmax2\lvert H_{lp}\rvert^2_{max} 為無因次功率比 ✓。

黃金比例彩蛋ζ=1/2\zeta=1/\sqrt2ζ2=12\zeta^2=\tfrac12)時 s=5s=\sqrt5u\*=2/(5+1)=(51)/2=1/φ=0.618u^\*=2/(\sqrt5+1)=(\sqrt5-1)/2=1/\varphi=0.618,而 Hlpmax2=(5+1)/2=φ=1.618\lvert H_{lp}\rvert^2_{max}=(\sqrt5+1)/2=\varphi=1.618——峰值恰是黃金比例, peaking =10log101.618=2.09=10\log_{10}1.618=2.09 dB,位置 fpk=0.786fnf_{pk}=0.786\,f_n。第 3 步在 fnf_n 讀到的 +1.76+1.76 dB 只是這座峰的右肩。

ζ → peaking 對照表(含 phase margin)

ζ\zetafpk/fnf_{pk}/f_npeaking(dB)phase margin
0.50.8563.3351.8°
0.7070.7862.0965.5°
1.00.7071.2576.3°
1.50.6110.6583.7°
4.320.3880.1089.2°

ζ\zeta\leftrightarrowPM 的來源:由 HlpH_{lp} 反解開環 G(s)=Hlp/(1Hlp)=(2ζωns+ωn2)/s2G(s)=H_{lp}/(1-H_{lp})=(2\zeta\omega_n s+\omega_n^2)/s^2,令 G(jωc)=1\lvert G(j\omega_c)\rvert=1 得 交越頻率 ωc=ωn2ζ2+4ζ4+1\omega_c=\omega_n\sqrt{2\zeta^2+\sqrt{4\zeta^4+1}};而 G=180+arctan(2ζωc/ωn)\angle G=-180^\circ+\arctan(2\zeta\omega_c/\omega_n),故

PM=arctan ⁣(2ζ2ζ2+4ζ4+1).\mathrm{PM}=\arctan\!\Big(2\zeta\sqrt{2\zeta^2+\sqrt{4\zeta^4+1}}\Big).

這條式子與教科書「標準二階系統(無零點原型)」的 ζ\zeta\leftrightarrowPM 映射完全同式 (代數恆等式 (4ζ4+12ζ2)(4ζ4+1+2ζ2)=1(\sqrt{4\zeta^4+1}-2\zeta^2)(\sqrt{4\zeta^4+1}+2\zeta^2)=1 使兩者的 arctan\arctan 引數相等),所以常用經驗式 PM100ζ\mathrm{PM}\approx100\,\zeta 度(ζ0.7\zeta\lesssim0.7 適用)也照搬 (ζ\zeta\leftrightarrowPM 標準映射與 100ζ100\zeta 經驗式屬外部文獻,非本站 5 篇 PDF: F. M. Gardner, Phaselock Techniques, 3rd ed., Wiley, 2005;B. Razavi, Design of CMOS Phase-Locked Loops, Cambridge Univ. Press, 2020)。

級聯法則:為什麼電信規格盯著 0.1 dB

MM 顆 transfer 相同的環串接(長途鏈路上一串 repeater/CDR,每顆都重生時脈再轉發), 總 jitter transfer 是 HlpMH_{lp}^M——dB 直接相加:峰值變成 M×PM\times P dB。

  • 每級 2.09 dB(ζ=0.707\zeta=0.707×\times 20 級 == 41.8 dBfpkf_{pk} 附近的 jitter 被放大 百倍以上,鏈路直接報廢。
  • 每級 0.1 dB ×\times 20 級 == 2 dB:可控。

這就是 SONET/SDH 世代把 regenerator 的 jitter-transfer peaking 規格壓在 0.1 dB 量級的 原因(外部標準文獻:Telcordia GR-253-CORE 與 ITU-T G.783/G.958 系列電信規範;本站未逐條 核對條號,引用其量級與精神)。由閉式反解,0.1 dB 需要 ζ4.32\zeta\approx4.32 (PM 89.2\approx89.2^\circ,重阻尼)——與單顆 PLL 積分 jitter 最省的 ζ0.7\zeta\approx0.711 完全不同單顆最佳不等於級聯最佳,CDR 的 ζ\zeta 是由「你在鏈路的第幾級」決定的 系統規格。

嚴格註:dB 相加假設每級 fn,ζf_n,\zeta 相同(峰對齊,最壞情況);實務上各級 fnf_n 略錯開, 疊加會比 M×PM\times P 輕,但規格以最壞情況立。

數值互驗(repo pll_utils

閉式 vs simulations/common/pll_utils.pyH_lowpass_mag2(400 萬點細掃):

import numpy as np
from simulations.common.pll_utils import H_lowpass_mag2

def peak_closed(zeta): # 閉式:f_pk/f_n 與 |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(取 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(其餘 ζ=0.5→3.3339、1.0→1.2494、1.5→0.6514,閉式=數值到小數 4 位)

zg = np.linspace(2, 8, 600001) # 掃 ζ 反解 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(0.1 dB 所需的 ζ)

適用與失效(本節閉式):

  • 只適用於規範 10.2 的理想 type-II 二階閉環(charge-pump PLL 線性化、無額外極點)。 真實迴路的 loop filter 多半再加 1–2 個高頻極點(三階/四階環),峰值位置與高度會偏移, 要數值算。
  • PM 映射假設交越發生在理想 G(s)G(s) 上;額外極點會吃掉 PM,PM100ζ\mathrm{PM}\approx100\zeta 隨之失準。
  • 這裡的峰是轉移函數的隆起;輸出 PN 在 fnf_n 附近的實際鼓包還要乘上各源 PSD (見第 3 步)。

第 4 步:reference spur(簡述)

除了隨機相位雜訊(連續的裙邊),PLL 輸出還常有離散的 spur(雜散,單一頻率的尖刺)。 最常見的是 reference spur:charge-pump 在每個參考週期注入電流脈衝,這個週期性擾動以 freff_{ref} 的整數倍(即 offset =±fref,±2fref,=\pm f_{ref},\pm2f_{ref},\dots)出現在輸出。來源是 CP current mismatch、leakage、PFD dead-zone,把控制電壓調出一個 freff_{ref} 的小漣波,再被 VCO 的 KvK_v 轉成相位調制邊帶。

  • spur vs 隨機 PN:spur 是確定性、窄的線(在頻譜上是一根針),隨機 PN 是連續裙邊; 量測上 spur 不隨解析頻寬 RBW 改變高度(功率集中在一根),隨機 PN 的 dBc/Hz 才是「per-Hz」。
  • 與 loop BW 的關係:reference spur 在 offset freff_{ref} 處,若 fref>fnf_{ref}>f_n 會被 Hlp2\lvert H_{lp}\rvert^2 低通衰減(loop BW 越窄、spur 越被壓);這與「窄 BW 對隨機 in-band 有利」一致,但會犧牲 VCO 抑制——又是同一個取捨。
  • 本頁的預算只算隨機部分(連續 SoutS_{out});spur 的定量分析屬標準 PLL 文獻(不在 5 篇 PDF 內),這裡僅作概念連結。

第 5 步:最佳 loop BW——對 ∫S_out df 求極小

把輸出的積分相位變異寫出來(規範公式 18):

σϕ2(fn)=f1f2Sout(f;fn)df,σt(fn)=12πf0σϕ2(fn).\sigma_\phi^2(f_n)=\int_{f_1}^{f_2}S_{out}(f;f_n)\,df,\qquad \sigma_t(f_n)=\frac{1}{2\pi f_0}\sqrt{\sigma_\phi^2(f_n)} .

σϕ2\sigma_\phi^2fnf_n 的函數,因為 SoutS_{out} 透過 Hlp2,Hhp2\lvert H_{lp}\rvert^2,\lvert H_{hp}\rvert^2 依賴 fnf_n。 把它拆成 in-band 與 out-of-band 兩塊看趨勢:

σϕ2(fn)(SrefN2+Scp)Hlp2df隨 fn 而  (通帶變寬,搬出更多 ref/CP)+SvcoHhp2df隨 fn 而  (壓掉更多 VCO close-in).\sigma_\phi^2(f_n)\approx\underbrace{\int (S_{ref}N^2+S_{cp})\,\lvert H_{lp}\rvert^2\,df}_{\text{隨 }f_n\,\uparrow\ \text{而 }\uparrow\ (\text{通帶變寬,搬出更多 ref/CP})}+\underbrace{\int S_{vco}\,\lvert H_{hp}\rvert^2\,df}_{\text{隨 }f_n\,\uparrow\ \text{而 }\downarrow\ (\text{壓掉更多 VCO close-in})} .
  • 第一塊(ref/CP)隨 fnf_n 單調增fnf_n 越大,低通通帶越寬,把越多 in-band 地板(含被 N2N^2 放大的參考)搬到輸出。粗估 (SrefN2+Scp)fn\propto(S_{ref}N^2+S_{cp})\cdot f_n(平坦地板乘以通帶寬度)。
  • 第二塊(VCO)隨 fnf_n 單調減fnf_n 越大,高通把越多 VCO 的 1/f21/f^2 close-in 糾正掉。對 Svco=k/f2S_{vco}=k/f^2 經高通,殘留積分 k/fn\propto k/f_n(BW 越寬、漏出越少)。

一增一減 → U 形。對 fnf_n 求導令為零,存在唯一極小:

dσϕ2dfn=0(ref/CP 漏出的邊際增加)=(VCO 壓制的邊際減少).\frac{d\,\sigma_\phi^2}{d f_n}=0\quad\Longrightarrow\quad \text{(ref/CP 漏出的邊際增加)}=\text{(VCO 壓制的邊際減少)}.

用上面兩個粗估(afn+b/fna\,f_n+b/f_n 形式,aSrefN2+Scpa\propto S_{ref}N^2+S_{cp}bSvcob\propto S_{vco} 係數)求極小:

ddfn ⁣(afn+bfn)=abfn2=0  fn\*=ba  Svco 係數SrefN2+Scp.\frac{d}{df_n}\!\left(a f_n+\frac{b}{f_n}\right)=a-\frac{b}{f_n^2}=0\ \Longrightarrow\ f_n^\*=\sqrt{\frac{b}{a}}\ \propto\ \sqrt{\frac{S_{vco}\text{ 係數}}{S_{ref}N^2+S_{cp}}} .
  • 物理意義VCO 越吵(bb 大)→ 最佳 BW 越大(要更寬的環去壓 VCO);ref/CP 越吵或 NN 越大(aa 大)→ 最佳 BW 越小(不能把太多 in-band 地板搬出來)。這條 fn\*b/af_n^\*\propto\sqrt{b/a} 是 PLL 設計的核心直覺,雖然係數要靠數值積分定。
  • toy 註記:上面 afn+b/fnaf_n+b/f_n 是把整形近似成理想磚牆濾波的啟發式估算;真實積分要用完整 H2\lvert H\rvert^2(含 fnf_n 附近的 peaking),故下面用 lab_20 的數值積分給精確最低點。

對應模擬圖(lab_20)

lab_20simulations/lab_20_pll_budget.py)用上面的 type-II 二階預算,左圖在固定 fn=1f_n=1 MHz 畫出三條(ref×N2\times N^2+CP 低通、VCO 高通、總和),右圖掃 fnf_nσt(fn)\sigma_t(f_n) 畫成 U 形並標出 最低點。

PLL 輸出雜訊預算(左:in-band 跟 ref/CP、out-of-band 跟 VCO)與最佳 loop BW(右:U 形 σt vs fn)

參數表(lab_20,representative levels、非特定矽製程,illustrative):

說明
f0f_05 GHzVCO/輸出頻率
NN100除頻比(reference ×N2=40\times N^2=40 dB 放大)
ζ\zeta0.707阻尼比(臨界附近,鼓包小)
SrefS_{ref}1016+1018(106/f)10^{-16}+10^{-18}(10^6/f)乾淨晶體:低平坦底 + 輕微 1/f1/f
ScpS_{cp}5×10135\times10^{-13}(平坦)PFD/charge-pump/divider 合計 in-band 地板
SvcoS_{vco}2×1010(106/f)22\times10^{-10}(10^6/f)^2ring VCO,100-100 dBc/Hz @ 1 MHz,1/f21/f^2
積分區間10310^310910^9 Hz1 kHz 到 1 GHz

單位表:

單位
f,f0,fnf,f_0,f_nHz
ω,ωn\omega,\omega_nrad/s
Sref,Scp,Svco,SoutS_{ref},S_{cp},S_{vco},S_{out}rad2/Hz\text{rad}^2/\text{Hz}
Hlp2,Hhp2,N,ζ\lvert H_{lp}\rvert^2,\lvert H_{hp}\rvert^2,N,\zeta無因次
σϕ\sigma_\phirad
σt\sigma_ts

如何解讀圖:

  • 左圖:藍點線(ref×N2\times N^2+CP)在 in-band 是一條 1.5×1012 rad2/Hz\approx1.5\times10^{-12}\ \text{rad}^2/\text{Hz} 的平坦地板(SrefN2+Scp=10161002+5×1013=1.5×1012S_{ref}N^2+S_{cp}=10^{-16}\cdot100^2+5\times10^{-13}=1.5\times10^{-12}),到 fnf_n 之後被低通拉下去;紅點線(VCO 高通)在 in-band 被壓掉、在 out-of-band 沿 1/f21/f^2 漏出;黑線 (總和)= close-in 平坦、far-out 走 VCO 的 1/f21/f^2,交越在 fnf_n 附近並有輕微鼓包。
  • 右圖σt\sigma_tfnf_n 是 U 形。fnf_n 太窄(左臂)→ VCO close-in 漏出太多 → jitter 暴增; fnf_n 太寬(右臂)→ ref×N2\times N^2/CP 被搬出太多 → jitter 回升。最低點落在 fn\*6.90f_n^\*\approx6.90 MHz、 σt259\sigma_t\approx259 fs(lab_20 實測列印值)。

核心 Python(完整 script:simulations/lab_20_pll_budget.py):

import numpy as np
from simulations.common.pll_utils import H_lowpass_mag2, H_highpass_mag2

def output_psd(f, fn, N, zeta=0.707):
lp = H_lowpass_mag2(f, fn, zeta)
hp = H_highpass_mag2(f, fn, zeta)
S_ref = 1e-16 + 1e-18 * (1e6 / f) # 乾淨晶體
S_cp = 5e-13 * np.ones_like(f) # PFD/CP/divider 平坦底
S_vco = 2e-10 * (1e6 / f) ** 2 # ring VCO -100 dBc/Hz @1MHz, 1/f^2
return (S_ref * N**2 + S_cp) * lp + S_vco * hp # 預算加總

f = np.logspace(3, 9, 3000); f0 = 5e9; N = 100
fns = np.logspace(4.5, 7.5, 60)
jit = [np.sqrt(np.trapezoid(output_psd(f, fn, N), f)) / (2*np.pi*f0) for fn in fns]
k = int(np.argmin(jit))
print(fns[k]/1e6, "MHz", jit[k]*1e15, "fs") # -> ~6.90 MHz, ~259 fs

Worked examples 數值例題

格式:題目 → 逐步代入(帶單位)→ 結果 → dimension check → 一行 Python 驗證。沿用 lab_20 的 representative 數值(f0=5f_0=5 GHz、N=100N=100ζ=0.707\zeta=0.707、上表三個 SS)。

例 1(in-band 地板 + reference ×N2\times N^2 的代價):求 deep in-band(ffnf\ll f_n)的輸出 相位雜訊地板,並換算成 dBc/Hz;比較「若 NN 從 100 降到 10」會差多少 dB。

逐步代入:

  1. deep in-band 時 Hlp21\lvert H_{lp}\rvert^2\approx1Hhp20\lvert H_{hp}\rvert^2\approx0,取平坦部分 (忽略參考的 1/f1/f):
Sout,in-bandSrefN2+Scp=1016×1002+5×1013.S_{out,\,\text{in-band}}\approx S_{ref}N^2+S_{cp}=10^{-16}\times100^2+5\times10^{-13}.
  1. 算 reference 項:1016×104=1012 rad2/Hz10^{-16}\times10^{4}=10^{-12}\ \text{rad}^2/\text{Hz}
  2. 加 CP 項:1012+5×1013=1.5×1012 rad2/Hz10^{-12}+5\times10^{-13}=1.5\times10^{-12}\ \text{rad}^2/\text{Hz}
  3. 換 dBc/Hz(L12Sϕ\mathcal{L}\approx\tfrac12 S_\phi,規範 Eq.16): L=10log10(12×1.5×1012)=10log10(7.5×1013)\mathcal{L}=10\log_{10}(\tfrac12\times1.5\times10^{-12})=10\log_{10}(7.5\times10^{-13})

結果: in-band 地板 Sout1.5×1012 rad2/HzS_{out}\approx1.5\times10^{-12}\ \text{rad}^2/\text{Hz},即 L121.2\mathcal{L}\approx-121.2 dBc/Hz。其中 reference 貢獻 101210^{-12}、CP 貢獻 0.5×10120.5\times10^{-12}reference×N2\times N^2 是 in-band 的主角。若 NN 從 100 降到 10,reference 項由 101210^{-12} 降到 1016×100=101410^{-16}\times100=10^{-14}(降 100×=20100\times=20 dB),此時 in-band 改由 Scp=5×1013S_{cp}=5\times10^{-13} 主宰, 總地板 5.1×1013\approx5.1\times10^{-13},改善約 10log10(1.5×1012/5.1×1013)4.710\log_{10}(1.5\times10^{-12}/5.1\times10^{-13})\approx4.7 dB。

Dimension check: Sref[rad2/Hz]×N2[無因次]+Scp[rad2/Hz]=[rad2/Hz]S_{ref}\,[\text{rad}^2/\text{Hz}]\times N^2\,[\text{無因次}]+S_{cp}\,[\text{rad}^2/\text{Hz}] =[\text{rad}^2/\text{Hz}] ✓;取 10log1010\log_{10} 後讀作 dBc/Hz ✓。

import numpy as np
S_ref, N, S_cp = 1e-16, 100, 5e-13
S_in = S_ref*N**2 + S_cp
print(S_in, "rad^2/Hz", round(10*np.log10(0.5*S_in), 1), "dBc/Hz") # 1.5e-12, -121.2
print("N=10:", round(10*np.log10(0.5*(S_ref*10**2 + S_cp)), 1), "dBc/Hz") # -125.9

例 2(U 形與最佳 BW:窄、最佳、寬三點對照):用 lab_20 的完整預算,數值積分 11 kHz–11 GHz, 比較 fn=0.3f_n=0.3 MHz(太窄)、fn\*6.9f_n^\*\approx6.9 MHz(最佳)、fn=30f_n=30 MHz(太寬)三點的 rms jitter, 驗證 U 形與最低點。

逐步(概念 + 數值):

  1. 對每個 fnf_n,逐頻算 Sout(f;fn)=(SrefN2+Scp)Hlp2+SvcoHhp2S_{out}(f;f_n)=(S_{ref}N^2+S_{cp})\lvert H_{lp}\rvert^2+S_{vco}\lvert H_{hp}\rvert^2
  2. 積分得 σϕ2=103109Soutdf\sigma_\phi^2=\int_{10^3}^{10^9}S_{out}\,df(梯形法),開根號得 σϕ\sigma_\phi
  3. 換算 σt=σϕ/(2πf0)\sigma_t=\sigma_\phi/(2\pi f_0)f0=5f_0=5 GHz。

結果(lab_20 數值):

fnf_nσt\sigma_t誰漏出
0.30 MHz(太窄)867\approx867 fsVCO close-in 大量漏出(U 形左臂)
6.90 MHz(最佳)259\approx259 fs兩邊平衡,最低點
30 MHz(太寬)396\approx396 fsref×N2\times N^2/CP 被搬出(U 形右臂)

從最佳點往窄走(6.90.36.9\to0.3 MHz)jitter 漲到 3.3×3.3\times;往寬走(6.9306.9\to30 MHz)漲到 1.5×1.5\timesU 形左臂比右臂陡——因為這顆是 ring VCO(SvcoS_{vco} 大、1/f21/f^2 漏出對 BW 很敏感),所以 「寧可開稍寬、不可開太窄」。這正是 ring-PLL 偏好大 loop BW 的設計準則。

Dimension check: Soutdf\int S_{out}\,df[rad2/Hz]×[Hz]=[rad2][\text{rad}^2/\text{Hz}]\times[\text{Hz}]=[\text{rad}^2]σϕ[rad]\sigma_\phi\,[\text{rad}]σϕ/(2πf0)\sigma_\phi/(2\pi f_0)rad/(rad/s)=s\text{rad}/(\text{rad/s})=\text{s} ✓。

import numpy as np
from simulations.common.pll_utils import H_lowpass_mag2, H_highpass_mag2
f = np.logspace(3, 9, 3000); f0 = 5e9; N = 100
def Sout(fn):
lp, hp = H_lowpass_mag2(f, fn), H_highpass_mag2(f, fn)
S_ref = 1e-16 + 1e-18*(1e6/f); S_cp = 5e-13; S_vco = 2e-10*(1e6/f)**2
return (S_ref*N**2 + S_cp)*lp + S_vco*hp
for fn in [0.3e6, 6.9e6, 30e6]:
st = np.sqrt(np.trapezoid(Sout(fn), f))/(2*np.pi*f0)
print(f"fn={fn/1e6:5.2f} MHz -> sigma_t={st*1e15:.0f} fs") # 867 / 259 / 396 fs

fractional-N 的第三項:ΔΣ 量化雜訊

到目前為止的預算是 integer-Nfout=Nfreff_{out}=Nf_{ref},頻率步進只能是 freff_{ref} 的整數倍。 要細步進(例如通訊頻道間距 200 kHz)而不犧牲 freff_{ref},就得用 fractional-N(分數除頻): 讓除數在整數之間抖動(這個參考週期 ÷NN、下一個 ÷(N+1)(N{+}1)……),使平均除數為 N+αN+\alpha0α<10\le\alpha<1)。這帶來雙重紅利——freff_{ref} 可以開高、NN 變小,in-band 的 SrefN2S_{ref}N^2 地板直接下降——但除數抖動本身是量化誤差,會變成一個新雜訊源。用 ΔΣ 調變器(delta-sigma modulator,把量化誤差整形推向高頻的回授量化器)產生除數序列, 就能把誤差功率推到高 offset、讓環路低通濾掉。這一節把它寫成預算的第三項

本節整形結果屬標準 ΔΣ frequency-synthesis 理論(外部文獻,非本站 5 篇 PDF);經典出處: T. A. D. Riley, M. A. Copeland, and T. A. Kwasniewski, "Delta-Sigma Modulation in Fractional-N Frequency Synthesis," IEEE J. Solid-State Circuits, vol. 28, no. 5, pp. 553–559, May 1993。以下推導自含、逐步。

從除數抖動到相位雜訊(四步)

(i)MASH-m 的輸出。 mm 階 MASH(MASH-1-1-1 即 m=3m=3:三個一階 accumulator 級聯)的 除數控制序列可寫成

y[k]=α+(1z1)me[k],y[k]=\alpha+(1-z^{-1})^m\,e[k],

e[k]e[k] 是最後一級的量化誤差,白噪模型:均勻分布於 ±Δ/2\pm\Delta/2、方差 σe2=Δ2/12\sigma_e^2=\Delta^2/12Δ=1\Delta=1 LSB(注意:這裡的 Δ\Delta 是量化步階=每參考週期 1 個 VCO cycle,不是 offset 的 Δf\Delta f)。(1z1)m(1-z^{-1})^m 就是 ΔΣ 的雜訊整形: 把誤差功率推向高頻。

(ii)誤差累積成相位(積分一次)。kk 個參考週期除數多吞了 y[k]αy[k]-\alpha 個 VCO cycle;每個 cycle 是輸出相位 2π2\pi rad,而相位是頻率誤差的累積

ϕΔΣ[k]=2πjk(y[j]α)=2π(1z1)m1e[k][rad].\phi_{\Delta\Sigma}[k]=2\pi\sum_{j\le k}\big(y[j]-\alpha\big)=2\pi\,(1-z^{-1})^{m-1}e[k]\quad[\text{rad}] .

(累加在 zz 域是 1/(1z1)1/(1-z^{-1}),恰好吃掉一階整形:mm頻率整形 → m1m-1相位整形。)

(iii)白噪序列的 PSD。 取樣率 freff_{ref} 的白序列,功率 σe2\sigma_e^2 平鋪在 ±fref/2\pm f_{ref}/2(雙邊記帳)→ 每 Hz 密度 σe2/fref=Δ2/(12fref)\sigma_e^2/f_{ref}=\Delta^2/(12f_{ref});離散差分的 頻率響應大小 1ej2πf/fref=2sin(πf/fref)\lvert1-e^{-j2\pi f/f_{ref}}\rvert=2\lvert\sin(\pi f/f_{ref})\rvert。合起來 (referred to 輸出相位、尚未經環路):

LΔΣ(f)=(2πΔ)212fref[2sin(πffref)]2(m1),SΔΣ(f)=2LΔΣ(f)=(2πΔ)26fref[2sin(πffref)]2(m1)\mathcal{L}_{\Delta\Sigma}(f)=\frac{(2\pi\Delta)^2}{12\,f_{ref}}\Big[2\sin\Big(\frac{\pi f}{f_{ref}}\Big)\Big]^{2(m-1)},\qquad S_{\Delta\Sigma}(f)=2\,\mathcal{L}_{\Delta\Sigma}(f)=\frac{(2\pi\Delta)^2}{6\,f_{ref}}\Big[2\sin\Big(\frac{\pi f}{f_{ref}}\Big)\Big]^{2(m-1)}

SΔΣS_{\Delta\Sigma} 單位 rad2/Hz\text{rad}^2/\text{Hz},單邊)。factor-of-2 記帳 flag(每次都標): 文獻慣用的 1/121/12 版本是雙邊記帳,數值上剛好等於 SSB 的 L\mathcal{L}(因為 L12Sϕ\mathcal{L}\approx\tfrac12S_\phi12\tfrac12 抵銷單邊化的 ×2\times2);嚴格的本站單邊 SϕS_\phi 慣例要 ×2\times2(變 1/61/6)。兩種寫法文獻都有,引用時務必說明你讀的是哪一種—— 這與 [P1] Eq.(21) 的 /4(SSB 記帳)vs 時域乾淨版 /2 是同一類 factor-of-2 問題。

(iv)沒有 ×N2\times N^2 這一項與 SrefS_{ref} 同樣從 PFD 端進環、同樣被 Hlp2\lvert H_{lp}\rvert^2 低通,但不乘 N2N^2:誤差本來就以「VCO cycle」計數,2π2\pi 已是 輸出相位的 rad。若你堅持 referred to divider 輸出(每 cycle 只算 2π/N2\pi/N rad),到輸出 還要 ×N\times N、功率 ×N2\times N^2N2N^2 恰好對消。新手預算表最常見的錯就是替它多乘 N2N^2

Dimension check(2πΔ)2(2\pi\Delta)^2 [rad²](Δ\Delta 是無因次的 cycle 數)×\times 1/(12fref)1/(12f_{ref}) [1/Hz] ×\times 整形因子 [無因次] =rad2/Hz=\text{rad}^2/\text{Hz} ✓。

進預算:第三項

Sout(f)=(SrefN2+Scp)Hlp2+SvcoHhp2+SΔΣ(f)Hlp2.S_{out}(f)=\big(S_{ref}N^2+S_{cp}\big)\lvert H_{lp}\rvert^2+S_{vco}\lvert H_{hp}\rvert^2+S_{\Delta\Sigma}(f)\,\lvert H_{lp}\rvert^2 .

它與 CP 雜訊同路徑(低通),但形狀完全不同:ffreff\ll f_{ref}2sin(πf/fref)2πf/fref2\sin(\pi f/f_{ref})\approx2\pi f/f_{ref},所以

SΔΣf2(m1)S_{\Delta\Sigma}\propto f^{\,2(m-1)}

——上升 20(m1)20(m-1) dB/dec 的斜坡(MASH-1-1-1:+40+40 dB/dec),到 fref/2f_{ref}/2 封頂 (整形因子最大 22(m1)=162^{2(m-1)}=16,即 +12.0+12.0 dB)。它不是地板、是從低頻爬上來的牆; 環路要在牆爬到礙事之前用 Hlp2\lvert H_{lp}\rvert^2 把它砍掉。

兩個壓制旋鈕(為什麼高 freff_{ref}、窄 BW 有效):

  • freff_{ref} 開高:固定 ffreff\ll f_{ref}LΔΣf2(m1)/fref2m1\mathcal{L}_{\Delta\Sigma}\propto f^{2(m-1)}/f_{ref}^{\,2m-1}——freff_{ref} 加倍就降 (2m1)×3.0115.05(2m-1)\times3.01\approx15.05 dB(m=3m=3)。直觀:總量化功率 Δ2/12\Delta^2/12 固定,攤到 更寬的 Nyquist 頻寬,且整形分母的 freff_{ref} 變大。
  • loop BW 收窄:in-band spot 值不變(Hlp21\lvert H_{lp}\rvert^2\approx1),但低通提早攔截 斜坡——第三項的峰落在 fn\sim f_n 附近、量級 fn2(m1)\propto f_n^{2(m-1)}m=3m=3fnf_n 減半、 峰降 12 dB);磚牆估計其積分功率 fn2m1\propto f_n^{2m-1}fn5f_n^5,對 BW 極度敏感)。 這與 U 形右臂「窄 BW 壓 in-band」同方向,但與 ring VCO 要寬 BW 直接衝突—— fractional-N + 吵 VCO 是預算上最難的組合,也是低雜訊 fractional-N 合成器偏好 LC VCO 的原因之一。

toy-model 誠實警告(重要):本頁的 type-II 二階 Hlp2\lvert H_{lp}\rvert^2fnf_n 外只掉 20-20 dB/dec,追不上 m=3m=3+40+40 dB/dec 上升——所以在這個 toy 模型裡第三項過了 fnf_n 仍以淨 +20+20 dB/dec 續爬,直到 sin\sin 封頂:fn=100f_n=100 kHz 時峰值 103.6-103.6 dBc/Hz 落在 18.6\approx18.6 MHz,比同 offset 的 VCO 項(125.4-125.4 dBc/Hz)還高約 22 dB。真實 fractional-N 迴路因此必加 loop-filter 高頻極點(三階/四階環),讓 out-of-band 滾降快過 20(m1)20(m-1) dB/dec(外部標準做法,見 Gardner、Razavi 教材;非本站 5 篇 PDF)。這正是 「紙上第三項看似無害、silicon 上高頻 hump 冒出來」的經典事故來源。

Worked example(例 3:MASH-1-1-1 的 spot 貢獻)

例 3:MASH-1-1-1(m=3m=3)、fref=50f_{ref}=50 MHz、Δ=1\Delta=1ζ=0.707\zeta=0.707。求 f=1f=1 MHz 處的 LΔΣ\mathcal{L}_{\Delta\Sigma}(先不含環路,再分別以 fn=1f_n=1 MHz 與 100 kHz 過 Hlp2\lvert H_{lp}\rvert^2),與本頁 in-band 地板 121.2-121.2 dBc/Hz 相比。

逐步代入:

  1. 前置因子:(2π×1)212×50×106=39.4786×108=6.580×108 rad2/Hz\dfrac{(2\pi\times1)^2}{12\times50\times10^6}=\dfrac{39.478}{6\times10^8}=6.580\times10^{-8}\ \text{rad}^2/\text{Hz}
  2. 整形因子:2sin(π×106/(5×107))=2sin(0.06283 rad)=0.125582\sin\big(\pi\times10^6/(5\times10^7)\big)=2\sin(0.06283\ \text{rad})=0.12558; 取 2(m1)=42(m-1)=4 次方 → 2.487×1042.487\times10^{-4}(無因次)。
  3. 未經環路:6.580×108×2.487×104=1.636×10116.580\times10^{-8}\times2.487\times10^{-4}=1.636\times10^{-11}LΔΣ(1 MHz)=107.9\mathcal{L}_{\Delta\Sigma}(1\text{ MHz})=-107.9 dBc/Hz。
  4. fn=1f_n=1 MHz:Hlp(1 MHz)2=1.50\lvert H_{lp}(1\text{ MHz})\rvert^2=1.50+1.76+1.76 dB)→ 106.1-106.1 dBc/Hz—— 比地板 121.2-121.2 dBc/Hz 高 15 dB,in-band 預算全毀:BW 開太寬,斜坡在 1 MHz 已爬到頂 還被 peaking 加持。
  5. fn=100f_n=100 kHz:Hlp2=0.0201\lvert H_{lp}\rvert^2=0.020117.0-17.0 dB)→ 124.8-124.8 dBc/Hz——壓到地板下 3.6 dB,spot 上安全(但高頻 hump 要另檢查,見上面的 toy-model 警告)。
  6. 或者不動 BW、把 freff_{ref} 開到 100 MHz:未經環路變 122.9-122.9 dBc/Hz,改善 15.04 dB (理論漸近 15.0515.05 dB ✓)。

Dimension checkrad2/Hz×\text{rad}^2/\text{Hz}\times 無因次 =rad2/Hz=\text{rad}^2/\text{Hz}10log1010\log_{10} 後讀 dBc/Hz ✓。

import numpy as np
from simulations.common.pll_utils import H_lowpass_mag2

fref, m, Delta, f = 50e6, 3, 1.0, 1e6
P = (2*np.pi*Delta)**2/(12*fref)
shape = (2*np.sin(np.pi*f/fref))**(2*(m - 1))
raw = P*shape
print(f"{P:.4e}", f"{shape:.4e}", round(10*np.log10(raw), 2))
# -> 6.5797e-08 2.4871e-04 -107.86(前置因子 rad^2/Hz、整形因子、未經環路 dBc/Hz)
for fn in (1e6, 1e5):
lp = H_lowpass_mag2(np.array([f]), fn, 0.707)[0]
print(round(fn/1e3), round(10*np.log10(raw*lp), 2))
# -> 1000 -106.1, 100 -124.83(fn=1 MHz vs 100 kHz 的 L_ΔΣ(1 MHz),dBc/Hz)
raw2 = (2*np.pi*Delta)**2/(12*100e6)*(2*np.sin(np.pi*f/100e6))**(2*(m - 1))
print(round(10*np.log10(raw/raw2), 2))
# -> 15.04(f_ref 50→100 MHz 的改善 dB;漸近 (2m-1)x3.01=15.05)

fs = np.logspace(3, np.log10(25e6), 200_000)
LdS = P*(2*np.sin(np.pi*fs/fref))**(2*(m - 1))*H_lowpass_mag2(fs, 1e5, 0.707)
k = int(np.argmax(LdS))
print(round(10*np.log10(LdS[k]), 2), round(fs[k]/1e6, 2))
# -> -103.6 18.55(toy 二階環下第三項的高頻 hump:dBc/Hz、MHz)

適用與失效(ΔΣ 白噪模型)

條件成立時失效時
e[k]e[k] 白噪、均勻α\alpha「忙碌」(無短週期 limit cycle)或有 ditherα\alpha 為簡單分數(如 1/81/8)→ 週期 pattern → fractional spur(離散尖刺,不是連續譜)
PFD/CP 線性高頻整形雜訊被環路濾掉CP up/down mismatch、非線性 → 高頻雜訊摺回 in-band(noise folding),實測比公式差
環路滾降快過斜坡積分受控、hump 不出現二階環 20-20 dB/dec 對 m=3m=3 不夠(本節 toy 已示範 103.6-103.6 dBc/Hz 的 hump)
量化誤差主導上式即第三項DTC 輔助、digital PLL 等其他 fractional 技巧的殘差另計(外部文獻)

design knobs 清單

旋鈕影響怎麼調
loop BW fnf_nU 形最低點;in/out 交越fn\*Svco係數/(SrefN2+Scp)f_n^\*\propto\sqrt{S_{vco}\text{係數}/(S_{ref}N^2+S_{cp})};VCO 吵→開大
除頻比 NNin-band 地板 ×N2\times N^2NN(高頻參考、fractional-N)壓 in-band;但分數雜散要管
charge-pump 電流雜訊in-band 平坦底 ScpS_{cp}加大 CP 電流、降 mismatch;過大會耗功率
阻尼比 ζ\zetafnf_n 附近 peakingζ0.7\zeta\approx0.711 壓鼓包;太小欠阻尼尖峰
VCO Γrms/qmax\Gamma_{rms}/q_{max}SvcoS_{vco} 高低(ISF!)加大 swing qmaxq_{max}、壓 Γrms\Gamma_{rms}(LC 取代 ring)→ 可放鬆 fnf_n
reference 1/f1/fclose-in 翹起選低 1/f1/f 晶體;窄 BW 也壓不掉被 N2N^2 放大的 ref 1/f
CP 電流 mismatchreference spurtrim/校準 charge-pump;窄 BW 衰 spur 但放 VCO
ΔΣ 階數 mmfreff_{ref}(fractional-N)第三項斜坡 +20(m1)+20(m-1) dB/dec、量級 1/fref2m1\propto1/f_{ref}^{2m-1}freff_{ref} 加倍 15-15 dB(m=3m=3);收窄 fnf_n 砍斜坡;loop filter 加極點壓高頻 hump

與 SerDes 的關聯

PLL 輸出的 σt\sigma_t(本頁右圖最低點 259\approx259 fs)就是餵給高速串列收發器 (SerDes)取樣時脈的抖動預算。在 serdes_clocking_connection 裡,這個 σt\sigma_t 直接決定眼圖(eye diagram)的水平閉合與 BER(bit error rate):UI(unit interval,單位間隔)越短(資料率越高),同樣的 σt\sigma_t 吃掉的眼寬比例越大。所以選對 loop BW 把 PLL jitter 壓到最低,是整條 SerDes link 預算的源頭。CDR(時脈資料回復)本身也是 一個 PLL,它對輸入 jitter 的 jitter-tolerance(容忍)轉移就是這裡的 Hlp2\lvert H_{lp}\rvert^2 (低頻 jitter 追得上→容忍、高頻→靠眼圖裕度),見 lab_13_pll_cdr_transfer

適用與失效條件

條件成立時失效時
各源不相關功率直接相加(本頁加總式)若 CP 與 divider 相關,需含交叉項
線性 PLL(小相位誤差)type-II 二階閉環有效大失鎖/slew → 非線性,轉移函數不成立
VCO 為 1/f21/f^2(白噪上轉)Svco=k/f2S_{vco}=k/f^2,本頁 U 形含 flicker(1/f31/f^3 close-in)→ 最佳 BW 偏移、要重積分
忽略 loop-filter 與 spurtoy 預算夠用精確設計要納 SlfS_{lf}、reference spur、fractional 雜散
整數-Nreference ×N2\times N^2fractional-N:ΔΣ 量化雜訊第三項(本頁「fractional-N 的第三項」節已補)

重點回顧

  • PLL 輸出預算:Sout=(SrefN2+Scp)Hlp2+SvcoHhp2S_{out}=(S_{ref}N^2+S_{cp})\lvert H_{lp}\rvert^2+S_{vco}\lvert H_{hp}\rvert^2(規範 11.2)。
  • in-band 跟 ref/CP(被 N2N^2 放大、低通)、out-of-band 跟 VCO(高通、1/f21/f^2 漏出),交越在 fnf_n
  • VCO 那一項就是本站 ISF 結果 SvcoΓrms2/qmax2Si/f2S_{vco}\propto\Gamma_{rms}^2/q_{max}^2\cdot S_i/f^2
  • reference spur 是離散尖刺(CP mismatch/leakage 的 freff_{ref} 漣波),窄 BW 可壓但犧牲 VCO 抑制。
  • 最佳 loop BW:對 Soutdf\int S_{out}df 求極小,fn\*Svco/(SrefN2+Scp)f_n^\*\propto\sqrt{S_{vco}/(S_{ref}N^2+S_{cp})}; 太窄 VCO 漏出、太寬 ref/CP 漏出。lab_20 數值:fn\*6.90f_n^\*\approx6.90 MHz、σt259\sigma_t\approx259 fs。
  • 這顆 ring-PLL U 形左臂比右臂陡 → 偏好稍大的 loop BW。
  • type-II 帶零點必有 peakingfpk=fn2/(s+1)f_{pk}=f_n\sqrt{2/(s+1)}Hlpmax2=(s+1)2/[(s1)(s+3)]\lvert H_{lp}\rvert^2_{max}=(s+1)^2/[(s-1)(s+3)]s=1+8ζ2s=\sqrt{1+8\zeta^2}ζ=0.7072.09\zeta=0.707\to2.09 dB @ 0.786fn0.786f_n(峰值恰為黃金比例 φ\varphi)。級聯時峰值 dB 相加 → 電信規格 0.1 dB(需 ζ4.3\zeta\approx4.3):單顆最佳 \ne 級聯最佳。
  • fractional-N 第三項: LΔΣ=(2πΔ)212fref[2sin(πf/fref)]2(m1)Hlp2\mathcal{L}_{\Delta\Sigma}=\frac{(2\pi\Delta)^2}{12f_{ref}}[2\sin(\pi f/f_{ref})]^{2(m-1)}\lvert H_{lp}\rvert^2 (SSB 讀法;本站單邊 SϕS_\phi×2\times2),×N2\times N^2+40+40 dB/dec(m=3m=3)上爬; freff_{ref} 加倍 15-15 dB、窄 BW 砍斜坡;二階環壓不住 m=3m=3 的高頻 hump(要加濾波極點)。

延伸閱讀

  • 兩條轉移函數的推導與 jitter transfer:lab_13_pll_cdr_transfer
  • VCO 那一項從哪來(ISF→1/f21/f^2):white_noise_to_phase_noise
  • 為什麼 ring 的 SvcoS_{vco} 高、LC 低:lc_vs_ring
  • σt\sigma_t 餵進 eye/BER:serdes_clocking_connection
  • 預算的模擬腳本:simulations/lab_20_pll_budget.py
  • fractional-N ΔΣ 整形的經典出處:T. A. D. Riley, M. A. Copeland, and T. A. Kwasniewski, "Delta-Sigma Modulation in Fractional-N Frequency Synthesis," IEEE J. Solid-State Circuits, vol. 28, no. 5, pp. 553–559, May 1993(外部文獻,非本站 5 篇 PDF)
  • type-II 環路、PM 映射與 jitter-peaking 規格的標準教材:F. M. Gardner, Phaselock Techniques, 3rd ed., Wiley, 2005;B. Razavi, Design of CMOS Phase-Locked Loops, Cambridge Univ. Press, 2020(外部文獻,非本站 5 篇 PDF)