跳至主要内容

Lab 09 — 設計取捨綜合 scaling

麵包屑模擬實驗室 › 雜訊與抖動 › 本頁(設計取捨入門)。上游:lab_06lab_08;進階版:lab_17

前面八個 lab 把每個機制各別跑通了。這個綜合 lab 不引入新模擬,而是把 [P1] Eq.(21) 這條招牌式當成設計旋鈕地圖:固定其他條件,分別掃 qmaxq_{max}Γrms\Gamma_{rms}、 ring 級數 NN,看 phase noise L\mathcal{L} 與 rms jitter σt\sigma_t 怎麼動。 全程用 canonical 數值(規範第 8 節)做口算,建立「動哪個旋鈕、賺幾 dB」的反射。

物理直覺(先講結論)1/f21/f^2 phase noise Γrms2/qmax2\propto\Gamma_{rms}^2/q_{max}^2。 想降相位雜訊只有兩條大路:把訊號電荷 qmaxq_{max} 做大(多存能量,雜訊相對變小), 或把 ISF Γrms\Gamma_{rms} 做小(讓波形對雜訊不敏感)。 兩者都是 20log1020\log_{10} 的關係qmaxq_{max} 加倍 → 相位雜訊 6-6 dB; Γrms\Gamma_{rms} 減半 → 也是 6-6 dB。ring 振盪器的 NN 同時動兩件事,要小心淨效果。

1. 教學目標

  • 把 [P1] Eq.(21) 讀成 scaling law,建立 qmaxq_{max}Γrms\Gamma_{rms}NN 的設計直覺。
  • 用 canonical 數值算出「動一個旋鈕賺幾 dB / 幾 fs」。
  • 看懂 ring 振盪器 NN 的雙面性(ΓrmsN3/2\Gamma_{rms}\propto N^{-3/2},但功率/面積也漲)。
  • 把 scaling 結論連到各 design insight 頁。

2. 數學模型

起點是 [P1] Eq.(21), p.185:

L{Δω}=10log10 ⁣(Γrms2qmax2in2/Δf4Δω2)\mathcal{L}\{\Delta\omega\}=10\log_{10}\!\left(\frac{\Gamma_{rms}^2}{q_{max}^2}\cdot\frac{\overline{i_n^2}/\Delta f}{4\,\Delta\omega^2}\right)

把對數展開成「相加的旋鈕」(固定 Δω\Delta\omegaSi=in2/ΔfS_i=\overline{i_n^2}/\Delta f):

L=20log10Γrms20log10qmax+10log10Si20log10(2Δω)+const.\mathcal{L}=20\log_{10}\Gamma_{rms}-20\log_{10}q_{max}+10\log_{10}S_i-20\log_{10}(2\Delta\omega)+\text{const}.
  • 讀法:每個旋鈕都是 20log1020\log_{10}(電壓/電荷類)或 10log1010\log_{10}(功率類)。 qmaxq_{max}Γrms\Gamma_{rms} 都進 20log1020\log_{10},所以「加倍/減半 = ±6\pm6 dB」。

jitter 與 phase noise 同源:對 1/f21/f^2 skirt,σt=12πf0Sϕdf\sigma_t=\frac{1}{2\pi f_0}\sqrt{\int S_\phi df} (規範公式 19),而 SϕΓrms2/qmax2S_\phi\propto\Gamma_{rms}^2/q_{max}^2,所以

σt    Γrmsqmax(固定f0, Si, 積分範圍).\sigma_t\;\propto\;\frac{\Gamma_{rms}}{q_{max}}\qquad(\text{固定}f_0,\ S_i,\ \text{積分範圍}).
  • dB 與 jitter 的橋L\mathcal{L}66 dB(功率 ×14\times\frac14)→ σt\sigma_t 減半(\sqrt{})。

ring 振盪器:[P2] 給出兩條 scaling——級數越多,每級 ISF 越尖但 rms 越小([P2] Eq.(16), p.794):

Γrms=2π23η3  1N1.5([P2] Eq.(16), p.794(v7 已重核:根號只蓋常數,ΓrmsN3/2;η=0.75 時 ≈ 4/N1.5,即 [P2] Fig.8 的實線)),f0=12NτD [P2] Eq.(15).\Gamma_{rms}=\sqrt{\dfrac{2\pi^2}{3\eta^3}}\;\dfrac{1}{N^{1.5}}\quad(\text{[P2] Eq.(16), p.794(v7 已重核:根號只蓋常數,}\Gamma_{rms}\propto N^{-3/2}\text{;η=0.75 時 ≈ 4/}N^{1.5}\text{,即 [P2] Fig.8 的實線)}),\qquad f_0=\frac{1}{2N\tau_D}\ \text{[P2] Eq.(15)}.
  • 單看 phase noise,NN 從 5 → 15(×3\times3):Γrms\Gamma_{rms}33/2=0.1923^{-3/2}=0.192L\mathcal{L} 變化 20log100.192=14.320\log_{10}0.192=-14.3 dB。級數多 → 功率、面積、qmaxq_{max} 分配都變, 且 f0f_0 下降(除非縮 τD\tau_D),所以這只是「孤立看 Γrms\Gamma_{rms}」的 toy scaling,非淨設計結論。

3. Block diagram

4. Python 核心 code

本 lab 不產生新圖,scaling 直接用 [P1] Eq.(21) 口算。下面這段(沿用 simulations/lab_08_jitter_integration.py 的習慣)示範如何把旋鈕變化換成 dB 與 fs, 讓你能自己掃參數:

import math

def L_dbc(Grms, qmax, Si, df):
"""Hajimiri-Lee Eq.(21): 1/f^2 SSB phase noise [dBc/Hz]."""
dw = 2 * math.pi * df
return 10 * math.log10((Grms**2 / qmax**2) * (Si / (4 * dw**2)))

# canonical baseline (規範例 B)
f0, df, Si = 5e9, 1e6, 1e-24
base = L_dbc(Grms=0.5, qmax=1e-12, Si=Si, df=df) # -148.0 dBc/Hz

print("baseline :", round(base, 1), "dBc/Hz")
print("q_max x2 :", round(L_dbc(0.5, 2e-12, Si, df) - base, 1), "dB") # -6.0
print("Gamma_rms /2 :", round(L_dbc(0.25, 1e-12, Si, df) - base, 1), "dB") # -6.0
# ring N: Gamma_rms ~ N^-1.5 ([P2] Eq.(16), p.794, re-verified v7: sqrt covers only the constant); show isolated scaling
for N in (5, 15, 45):
rel = (N / 5.0) ** -1.5
print(f"N={N:2d} Gamma_rms rel={rel:.3f} dL={20*math.log10(rel):+.1f} dB")

# jitter scales as Gamma_rms / q_max -> -6 dB phase noise = sigma_t / 2
  • L_dbc 與 lab_08 的 integrate_rms_jitter 不同:lab_08 從 L\mathcal{L} 積分出 jitter; 這裡反向用 Eq.(21) 產生 L\mathcal{L},再用 scaling 推 jitter。兩頁互為正反操作。

5. 完整 script path

本 lab 為綜合分析,無專屬 script。引用的計算來自: simulations/lab_06_white_noise_phase_noise.pyΓrms2/qmax2\Gamma_{rms}^2/q_{max}^2 scaling 的模擬證據)、 simulations/lab_03_ring_toy_model.py(LC vs ring ISF 與 NN scaling)、 simulations/lab_08_jitter_integration.pyLσt\mathcal{L}\to\sigma_t)。 上面的口算片段可存成獨立小腳本自行掃參數。

6. 參數表

參數符號canonical 值角色
載波頻率f0f_055 GHz固定
offsetΔf\Delta f11 MHz固定(評估點)
電流雜訊 PSDSiS_i1×10241\times10^{-24} A²/Hz固定(單一白噪源)
最大電荷擺幅qmaxq_{max}11 pC(基準)旋鈕 1,掃 0.5,1,20.5,1,2 pC
ISF rmsΓrms\Gamma_{rms}0.50.5(基準)旋鈕 2,掃 0.25,0.50.25,0.5
ring 級數NN55(基準)旋鈕 3,掃 5,15,455,15,45
基準相位雜訊L\mathcal{L}148.0-148.0 dBc/Hz由 Eq.(21) 得(=規範例 B)

7. 單位表

符號單位
最大電荷擺幅qmaxq_{max}C
ISF rmsΓrms\Gamma_{rms}無因次
ring 級數NN無因次
相位雜訊L\mathcal{L}dBc/Hz
rms jitterσt\sigma_ts
電流雜訊 PSDSiS_iA²/Hz

8. scaling 表(口算,toy scaling)

以 canonical 基準 L=148.0\mathcal{L}=-148.0 dBc/Hz(qmax=1q_{max}=1 pC、Γrms=0.5\Gamma_{rms}=0.5Si=1024S_i=10^{-24}、5 GHz @ 1 MHz)為 00 dB 參考。σtΓrms/qmax\sigma_t\propto\Gamma_{rms}/q_{max}

旋鈕變化L\mathcal{L} 變化σt\sigma_t 變化物理理由
qmax×2q_{max}\times22\to2 pC)6.0-6.0 dB×0.5\times0.520log10qmax-20\log_{10}q_{max};訊號電荷大、雜訊相對小
qmax×0.5q_{max}\times0.50.5\to0.5 pC)+6.0+6.0 dB×2\times2同上反向
Γrms×0.5\Gamma_{rms}\times0.50.25\to0.256.0-6.0 dB×0.5\times0.5+20log10Γrms+20\log_{10}\Gamma_{rms};波形對雜訊不敏感
ring N:515N:5\to15×3\times314.3-14.3 dB×0.192\times0.192ΓrmsN3/2\Gamma_{rms}\propto N^{-3/2}(孤立看,[P2] Eq.(16), p.794,v7 已重核)
ring N:545N:5\to45×9\times928.6-28.6 dB×0.037\times0.037同上;但功率/面積/f0f_0 也一起變

口算示範qmaxq_{max} 從 1 pC 加倍到 2 pC,L\mathcal{L} 改變 20log10(1/2)=6.020\log_{10}(1/2)=-6.0 dB → 154.0-154.0 dBc/Hz;jitter 隨 \sqrt{} 減半。 把 lab_08 的 447.9447.9 fs(那是 100-100 dBc/Hz 的情境)做同樣 6-6 dB 操作,會降到 224\approx224 fs。

9. 如何解讀圖(重用既有圖)

圖一:Γrms2/qmax2\Gamma_{rms}^2/q_{max}^2 scaling 的模擬證據。 lab_06 的白噪 PSD 圖,把 ISF 換成不同 Γrms\Gamma_{rms}(或改 qmaxq_{max})時,整條 1/f21/f^2 線只是上下平移,斜率不變——這就是 scaling 表 「動旋鈕 = 平移 dB」的視覺版。

白噪 → 1/f²;改 Γ_rms 或 q_max 只平移整條線、不改斜率

圖二:LC vs ring 的 ISF 形狀與 NN lab_03 的對比圖:ring 的 ISF 敏感度集中在 transition, NN 越大每級 ISF 越尖、但 rms 越小(ΓrmsN3/2\Gamma_{rms}\propto N^{-3/2})。這解釋了 scaling 表 旋鈕 3 的來源,也提醒這是孤立 scaling。

LC(-sin)與 ring(triangular)ISF 對比,N 越大 rms 越小

  • 怎麼用兩張圖:圖一告訴你「qmaxq_{max}/Γrms\Gamma_{rms} 旋鈕 = 垂直平移」; 圖二告訴你「ring 的 Γrms\Gamma_{rms} 怎麼隨 NN 變」。合起來就是設計地圖。

10. 對應 paper 公式/figure

  • 主 scaling:[P1] Eq.(21), p.185,LΓrms2/qmax2\mathcal{L}\propto\Gamma_{rms}^2/q_{max}^2
  • Parseval / Γrms\Gamma_{rms}:[P1] Eq.(20), p.185。
  • ring Γrms\Gamma_{rms} scaling:[P2] Eq.(16), p.794(v7 已重核:根號只蓋常數,ΓrmsN3/2\Gamma_{rms}\propto N^{-3/2}; 正文 4/N^1.5@η=0.75 與 App.B Eq.(55) 三重驗證。v3 曾誤讀為 N^-0.75)。
  • ring 頻率:[P2] Eq.(15), p.794,f0=1/(2NτD)f_0=1/(2N\tau_D)
  • ring 白噪 FOM:[P2] Eq.(23), p.796,L1/f283ηVDDVcharkTP(ω0/Δω)2\mathcal{L}|_{1/f^2}\approx\frac{8}{3\eta}\,\frac{V_{DD}}{V_{char}}\,\frac{kT}{P}(\omega_0/\Delta\omega)^2η\eta 為級延遲比例常數 [P2] Eq.(14),1\approx1γ\gamma 僅透過 Vchar=ΔV/γV_{char}=\Delta V/\gamma 進入)。
  • 概念圖:重用 white_noise_phase_noise_psd.png(lab_06)與 lc_vs_ring_isf_comparison.png(lab_03)。

11. 限制與 approximation

  • toy scaling,非 transistor-level:scaling 假設「只動一個旋鈕、其他完全不變」。 真實電路裡 qmaxq_{max}Γrms\Gamma_{rms}NN、功率、面積、f0f_0 彼此耦合,不能孤立調。
  • ring NN scaling([P2] Eq.(16), p.794,v7 已重核:根號只蓋常數,ΓrmsN3/2\Gamma_{rms}\propto N^{-3/2}; 正文 4/N^1.5@η=0.75 與 App.B Eq.(55) 三重驗證。v3 曾誤讀為 N^-0.75): Γrms=2π2/(3η3)1N1.5\Gamma_{rms}=\sqrt{2\pi^2/(3\eta^3)}\cdot\dfrac{1}{N^{1.5}}η1\eta\approx1);級數變多也改 f0=1/(2NτD)f_0=1/(2N\tau_D)、功率與面積,淨 phase noise/jitter 要看完整 FOM,不能只看 Γrms\Gamma_{rms}
  • 單一白噪源:忽略多源、cyclostationary(Γeff=Γα\Gamma_{eff}=\Gamma\cdot\alpha)、flicker 上轉 (1/f31/f^3,見 lab_07)。close-in 區此表不適用。
  • factor-of-2:用 Eq.(21) 的分母 4Δω24\Delta\omega^2;與時域版差 SSB 記帳 2 倍, 不影響任何 scaling 結論(所有 dB 變化都是相對量)。
  • jitter scalingσtΓrms/qmax\sigma_t\propto\Gamma_{rms}/q_{max} 假設固定積分範圍與 1/f21/f^2 形狀; 若 close-in 1/f31/f^3 主導,jitter 由 c0c_0 與積分下限決定,需另算。

重點回顧

  • 1/f21/f^2 phase noise Γrms2/qmax2\propto\Gamma_{rms}^2/q_{max}^2;jitter Γrms/qmax\propto\Gamma_{rms}/q_{max}
  • qmaxq_{max} 加倍或 Γrms\Gamma_{rms} 減半 → phase noise 6-6 dB、jitter 減半(20log1020\log_{10})。
  • ring NN 孤立看 ΓrmsN3/2\Gamma_{rms}\propto N^{-3/2}N×314.3N\times3\to-14.3 dB),但 f0f_0/功率/面積同時變,是 toy scaling。
  • 基準數字:qmax=1q_{max}=1 pC、Γrms=0.5\Gamma_{rms}=0.5、5 GHz @ 1 MHz、Si=1024S_i=10^{-24}L=148.0\mathcal{L}=-148.0 dBc/Hz。

延伸閱讀