Banerjee PLL相位噪声建模

本文基于 Dean Banerjee PLL Performance Simulation and Design 深度解析 第 14-15 章提炼。Banerjee 的相位噪声模型涵盖 PFD/参考/VCO/分频器各噪声源、带内/带外噪声贡献、闪烁噪声以及集成相位噪声量的计算方法。


前后关系

前置知识:

本书内部链条:

  • Ch.14-15(本文)← Ch.8-9 (传递函数决定噪声传播)
  • → Ch.26 (滤波器参数对相位噪声的影响)
  • Ch.16 (锁定时间) 与相位噪声存在环路带宽上的权衡设计

Ch.14: PLL Phase Noise Modeling and Behavior

相位噪声模型结构

PLL 相位噪声模型按噪声源分类,每个源通过相应的传递函数影响输出:

噪声源物理来源传递函数特性
晶体参考噪声参考振荡器低通 × 1/R
PFD/电荷泵噪声PFD/CP 电路低通 × 1/Kφ
R 分频器噪声R 计数器低通
N 分频器噪声N 计数器低通
VCO 噪声VCO 自身高通

各噪声源定量贡献公式

假设各噪声源不相关,输出相位噪声功率谱密度为各源贡献之和:

其中 为闭环传递函数, 为误差传递函数。

带内近似():

  • 参考路径总贡献:
  • PFD 路径总贡献:
  • VCO 贡献可忽略(被环路抑制)

带外近似():

  • VCO 噪声直接传递:
  • 参考/PFD 路径被环路滤波衰减

带内噪声(In-Band Noise)

所有参考路径相关噪声(参考、PFD、R/N 分频器)在 带内 占主导。环路带宽内这些噪声被乘以 N(开环增益的倒数):

因此 N 值越小,带内相位噪声越低——这是分数 N PLL 的重要优势。

带外噪声(Out-of-Band Noise)

VCO 噪声在 带外 占主导。环路带宽外 VCO 噪声直接传递到输出(传递函数 ≈ 1):

PFD 噪声的特殊性

PFD 噪声与比较频率相关:更高的比较频率意味着单位时间内更多次校正 → 更多噪声:

这是 PFD 噪声随 Fcomp 增加而增加的原因。

闪烁噪声(1/f Noise)

PFD/CP 的闪烁噪声在低频偏移处显著,表现为相位噪声谱的 1/f 区域。VCO 也存在闪烁噪声,但在闭环内被抑制。

闪烁噪声建模

PFD/CP 的闪烁噪声贡献可建模为:

其中 为闪烁噪声系数(由工艺决定,典型值 )。

1/f 拐角频率:闪烁噪声与白噪声功率相等时的偏移频率:

在 Banerjee 模型中,PFD/CP 的 通常在 kHz 范围内。当 时,闪烁噪声会在带内占主导。

各频段噪声主导源

频率偏移范围主导噪声源典型斜率
闪烁噪声(PFD/CP/VCO) dB/dec
PFD/CP 白噪声 + 参考噪声 dB/dec(带内平底)
VCO 噪声 dB/dec(高通)
采样噪声基底平底

VCO 相位噪声的 Leeson 模型与 Banerjee 工程模型

模型数学表达适用场景
Leeson 模型物理级精确建模
Banerjee 工程模型工程快速估算(数据手册参数驱动)
Gardner 简化模型系统级分析

相位噪声合成总图

总输出相位噪声为各源噪声的功率和(假设各源不相关):

其中 为各源的传递函数。

系统噪声预算分配模板

在 PLL 设计初期,需要将系统级相位噪声指标分解到各模块的噪声预算中。以下是一个系统化的噪声预算分配方法。

噪声预算分配流程

规格输入:L_total(f) @ 各偏移频率
  │
  ├─ 1. 确定目标集成相噪 σ_ϕ_target (rad RMS)
  │     从通信标准推导(如 GSM: σ_ϕ < 1°, WCDMA: σ_ϕ < 0.5°)
  │
  ├─ 2. 初步分配噪声权重
  │     带内(< Fc):参考 60%, PFD/CP 30%, 分频器 10%
  │     带外(> Fc):VCO 90%, 其他 10%
  │
  ├─ 3. 计算各源分配的噪声密度
  │     反向推导:从比例 ➔ L_source(f)
  │
  ├─ 4. 对比数据手册与分配值
  │     芯片手册值 ≤ 分配值?→ OK
  │     芯片手册值 > 分配值?→ 调整设计或重新分配
  │
  └─ 5. 迭代收敛(通常 2-3 轮)

噪声预算分配模板表

噪声源分配比例(带内)分配比例(带外)典型值(10kHz偏移)数据手册对比设计控制参数
参考晶振 dBc/Hz晶振数据表晶振类型(OCXO/TCXO)
PFD/CP dBc/Hz(归一化)LMX 数据表 ,
R 分频器 dBc/Hz忽略(通常很低)R 计数器架构
N 分频器 dBc/Hz芯片数据表N 值大小
VCO(环路抑制) dBc/HzVCO 数据表VCO 拓扑、
运放(有源滤波器)(仅设计有源) dBc/Hz(@1kHz)运放 规格运放噪声、滤波器拓扑
合计100%100%——

噪声预算迭代示例

设计要求: dBc/Hz, GHz, kHz

迭代参考分配PFD 分配VCO 分配计算总相噪结果调整
1 dBc/Hz(50%) dBc/Hz(30%) dBc/Hz(20%) dBc/Hz✅ 满足无需调整
2 dBc/Hz(60%) dBc/Hz(25%) dBc/Hz(15%) dBc/Hz❌ 不满足需降低参考噪声 dB 或增大
3 dBc/Hz(50%) dBc/Hz(30%) dBc/Hz(20%) dBc/Hz✅ 满足使用 OCXO + 增大

关键结论:

  1. 带内噪声预算中参考晶振通常占最大份额(),改善晶振是降低带内相噪的最直接手段
  2. VCO 在带外占绝对主导, 的选择是带内/带外噪声权衡的核心
  3. 噪声预算应在设计初期完成(Phase 1),作为芯片选型和环路带宽选择的依据

Ch.15: Integrated Phase Noise Quantities

积分相位噪声

相位噪声谱密度在频率偏移区间上的积分:

在实际工程中,使用带限积分(从 到 ,取决于应用带宽)。

RMS 相位误差

通信系统中用于评估本振信号质量的指标。

RMS 频率误差

由于频率是相位的微分,频率误差可通过相位噪声的加权积分获得:

Jitter 计算

根据 RMS 相位误差和载波频率可计算周期抖动和累积抖动:

从集成相噪到系统级指标转换

RMS 相位误差 / Jitter 是 PLL 作为本振时的核心指标,直接影响通信系统的 EVM 和 BER。以下搭建设计桥接。

EVM 转换公式

对于不同调制格式,RMS 相位误差 对 EVM 的贡献为:

实际系统中,EVM 还受幅度误差、滤波器失真等因素影响,PLL 相位噪声贡献通常占总 EVM 预算的 。

调制格式 公式典型 要求( EVM 预算)等效 (°)
QPSK rad
16QAM rad
64QAM rad
256QAM rad
OFDM (802.11ac) dB rad

BER 估计

对于无记忆调制(如 M-PSK, M-QAM),相位噪声导致的 BER 退化可近似为:

当 时,BER 退化的 dB 值为:

实例: rad → SNR 退化 dB(可忽略); rad → SNR 退化 dB(需纳入链路预算)。

通信标准对本振的相噪要求

标准频段相噪要求(典型)等效 关键偏移频率
GSM900/1800 MHz dBc/Hz @ 400kHz信道间隔相关
WCDMA2.1 GHz dBc/Hz @ 15MHz相邻信道泄漏
LTE700-2600 MHz dBc/Hz @ 100MHz宽频集成
802.11ac5 GHz dBc/Hz @ 1MHzOFDM 子载波间隔
Bluetooth LE2.4 GHz dBc/Hz @ 500kHz宽松(GFSK 调制)
5G NR3.5/28 GHz dBc/Hz @ 100MHz极严格(256QAM)

设计流程桥接:

示例计算(书中实例)

Banerjee 给出完整的相位噪声合成示例:

  1. 确定各源噪声谱密度(从数据手册提取)
  2. 按传递函数加权
  3. 叠加得总输出相位噪声
  4. 在指定频带内积分 → RMS 相位误差

完整数值实例

设计规格: MHz, kHz, kHz, mA,

步骤 1:数据手册提取各源噪声

噪声源指标数值来源
参考晶振 dBc/Hz晶振数据表
PFD/CP 本底 dBc/Hz(归一化)LMX2315 数据表
VCO dBc/HzVCO 数据表
VCO dBc/HzVCO 数据表

步骤 2:按传递函数加权

  • 带内参考贡献:(假设 )
  • 带内 PFD/CP 贡献:
  • 带外 VCO 贡献:(带外直接传递)

步骤 3:功率叠加

偏移频率参考贡献PFD 贡献VCO 贡献总和主导源
1 kHz参考
10 kHz参考
100 kHz参考外噪声抬高
1 MHzVCO 主导

交叉频率:带内噪声(参考主导)与 VCO 噪声相等处的偏移频率,约 kHz。

步骤 4:积分得 RMS 相位误差 在 积分:

RMS Jitter:

相位噪声/杂散/锁定时间的权衡

  • 宽环路带宽 → 锁定时间短、VCO 噪声抑制好,但参考杂散和 PFD 噪声恶化
  • 窄环路带宽 → 杂散低、带内噪声低,但锁定时间长、VCO 噪声恶化

关键设计参数对相位噪声的影响汇总

设计参数增大该参数的影响适用场景
↑带内 PFD 噪声 ↑,VCO 噪声 ↓VCO 噪声主导的系统
↑PFD 噪声 ↓(参考路径增益改善)高杂散容限系统
↓带内噪声 ↓ 分数-N 架构的优势
↑PFD 噪声 ↑, ↓(综合效果取决于架构)需仔细权衡

PLL 相位噪声仿真设置

Banerjee 的相位噪声解析公式提供快速趋势预估,但精确的相位噪声验证必须通过电路仿真。以下给出基于 SpectreRF PSS+PNOISE 分析的系统化仿真设置方法。

PSS+PNOISE 分析基础

PSS(Periodic Steady-State)设置

PSS 分析计算 PLL 锁定后的周期性稳态工作点,是 PNOISE 分析的前置条件:

参数整数 N PLL分数 N PLL
Beat Frequency()(比较频率)(分数周期)
(谐波数)(需包含 ΔΣ 噪声折叠频率)
(稳定时间)(分数 N 收敛更慢)
精度设置(tstab/maxstep)conservativeconservative

关键规则:

  • 整数 N:,因为 PLL 输出的稳态周期等于参考周期
  • 分数 N:,因为分数分频器的输出周期是 个参考周期的公倍数
  • 若 PSS 不收敛,增大 tstab 至 ,或使用 homotopy=gear 方法

PNOISE(Periodic Noise)设置

PNOISE 分析在 PSS 工作点基础上计算各噪声源的传递和谐波折叠效应:

参数推荐值说明
Sweep Typerelative相对于载波的偏移频率
Frequency Range Hz 覆盖 区域到噪底
(整数 N),(分数 N)包含噪声折叠的边带数
maxsideband 为最大关心的偏移频率
Output ProbeVCO 输出节点(电压)或相位端口推荐使用相位端口(phout)输出

精度与速度的折衷选择:

目标Sweep Resolution仿真时间(典型)
快速评估5 points/decade10 hr
标准验证10 points/decade20 hr
精确签核20 points/decade30 hr

各噪声源的仿真分离方法

PNOISE 分析默认将所有噪声源一并贡献到输出。为诊断主导噪声源,需进行噪声贡献分解(Noise Contribution):

SpectreRF 噪声贡献设置

// 噪声贡献分解设置(Spectre netlist)
pnoise noise_start=1 noise_stop=10G \
  proj_scale=1 \
  \% 噪声贡献列表
  noise_contributions=[
    vp.vco_osc_device   % VCO 噪声
    Iphi.pfd_device     % PFD/CP 噪声
    V1.ref_osc          % 参考晶振噪声
    H1.R_counter        % R 分频器噪声
    H2.N_counter        % N 分频器噪声
  ]
  \% 指定输出端口
  out_device=VCO
  out_probe_type=voltage

各噪声源仿真模型的参数提取

噪声源SpectreRF 模型关键参数典型数据来源
参考晶振veriloga 或 xo_osc 模型 曲线或 参数晶振数据手册
PFD/CPBSIM4 + 瞬态噪声(归一化噪底)芯片数据手册或 SPICE 仿真
VCOBSIM4 + PSS+PNOISE、、独立 VCO 仿真
R/N 分频器数字行为模型(分频器噪底)数字仿真或近似 dBc/Hz
环路滤波器电阻resistor 模型 + noise=yes 热噪声自动计入

噪声源隔离技巧

技巧1:逐一使能法

在一次 PNOISE 分析中只有使能一个噪声源,其他源设为 noise=no,依次运行 次仿真即可分离各源贡献:

// 示例:仅 VCO 噪声
pnoise ...
  noise_contributions=[
    vp.vco_osc_device   % VCO 噪声
    Iphi.pfd_device     % 禁用
    V1.ref_osc          % 禁用
  ]

技巧2:pnoise_contributions 后处理

在 Ocean 脚本中直接提取各源贡献(无需修改 netlist):

; 提取 PNOISE 结果中特定噪声源的贡献
pn = pnoiseResult(?resultDir "./pnoise")
% 提取 VCO 贡献
L_vco = pn->getContrib("vp.vco_osc_device") 
% 提取 PFD 贡献
L_pfd = pn->getContrib("Iphi.pfd_device")
% 总噪声
L_total = pn->getNoise("output")
% 绘制对比图
plot(L_vco L_pfd L_total ?xlog t ?ylog nil)

闪烁噪声(Flicker Noise)的仿真建模

闪烁噪声是 PLL 近载波相噪( kHz 偏移)的主导来源。在仿真中需根据各模块的工艺特性正确建模。

PFD/CP 闪烁噪声模型

PFD 和 CP 的闪烁噪声通过 flickerNoise 参数在器件模型中定义,或使用 Verilog-A 行为模型显式注入:

// PFD/CP 闪烁噪声注入模型片段
analog begin
  // 热噪声(白噪声)
  I(iout) <+ white_noise(4*`P_K*$temperature*Kphi, "thermal");
  
  // 闪烁噪声(1/f 噪声),注入到 PFD 输入
  V(phi_err) <+ flicker_noise(Kf_pfd, 1.0, "flicker");
  // Kf_pfd 为闪烁噪声系数,从测量或工艺文档提取
  // 典型值范围:1e-12 ~ 1e-14 rad²/Hz
end

VCO 闪烁噪声建模

VCO 的闪烁噪声通过 upconversion(上变频)机制出现在载波附近,建模最为复杂:

建模方法复杂度精度适用阶段
PSS+PNOISE(SpectreRF 直接计算)低 dB最终验证
相位域宏模型(Verilog-A 注入 噪声)中 dB早期设计
瞬态噪声(tran noise + FFT 后处理)高 dB后仿签核

Verilog-A VCO 闪烁噪声宏模型:

// VCO 相位域宏模型(含闪烁噪声上变频)
module vco_phasenoise (vtune, phi_out);
  input vtune; electrical vtune;
  output phi_out; phase phi_out;
  
  parameter real Kvco = 30e6;   // VCO 增益 (Hz/V)
  parameter real f0 = 2e9;      // 中心频率 (Hz)
  parameter real L_1k = -80;    // @1kHz 相噪 (dBc/Hz)
  
  real freq_dev;
  real flicker_power;
  analog begin
    // 频率调制
    freq_dev = V(vtune) * Kvco;
    
    // 闪烁噪声注入(1/f 噪声上变频后表现为 1/f³)
    flicker_power = pow(10, L_1k/10) * `P_T;
    // 通过频率调制实现 1/f³ 噪声谱形
    freq_dev = freq_dev + flicker_noise(flicker_power, 1.0, "vco_1f3");
    
    // 相位积分:phi = 2π ∫ (f0 + freq_dev) dt
    phi_out <+ 2 * `M_PI * (f0 * $realtime() + idtmod(freq_dev, 0, 1.0));
  end
endmodule

噪声预算的仿真验证流程

完整的相位噪声仿真验证应按以下步骤闭环执行:

Step 1: 构建各模块独立仿真 testbench
  ├─ 参考晶振:PNOISE 验证 @ 1kHz/10kHz/100kHz
  ├─ PFD/CP:瞬态噪声仿真 → 提取归一化噪底
  ├─ VCO:PSS+PNOISE 独立仿真 → L_vco(f) 曲线
  └─ 分频器:数字仿真 → 输出抖动 RMS 值
        ↓
Step 2: 搭建整体 PLL testbench
  ├─ 整数 N:PSS(f_beat=Fcomp) + PNOISE
  ├─ 分数 N:PSS(f_beat=Fcomp/FDEN) + PNOISE(Nsidebands=40)
  └─ 使能 PSS `tstab` 确保稳态收敛
        ↓
Step 3: 提取噪声贡献分解
  ├─ pnoise_contributions → 绘制各源贡献曲线
  ├─ 标记主导噪声源及其频段
  └─ 对比解析公式预测(偏差应 $< 5$ dB)
        ↓
Step 4: 计算集成 RMS 抖动
  ├─ 设置积分带宽(典型 $100$ Hz 到 $F_{out}/2$)
  ├─ pnoise → jitter → 提取 RMS 相位误差
  └─ 对比规格并更新噪声预算表
        ↓
Step 5: 偏差分析与迭代
  ├─ 仿真 VS 解析偏差 $< 3$ dB → 仿真置信度高
  ├─ 偏差 $3\!-\!6$ dB → 检查仿真设置(tstab不足/Nsidebands不够)
  └─ 偏差 $> 6$ dB → 检查噪声模型参数是否与数据手册一致

仿真与解析公式偏差检查表

仿真设置问题典型症状修复措施
tstab 过短带内噪声偏低 dB增大至
不足(分数 N)带外噪声偏高 dB增大至
VCO 闪烁噪声未建模近载波( kHz)偏差 dB添加 flicker_noise 注入
PFD 归一化噪底参数错误全频段偏差 dB核对数据手册或重新提取
分频器噪声被忽略带内偏差 dB添加分频器噪声模型

与现有知识的联系


关键公式

概念公式说明
总相位噪声$S_{total}(f) = \sumT_i(f)
RMS 相位误差频带内积分
PFD 噪声趋势随比较频率升高
Jitter 转换周期抖动
带内 VCO 抑制环路带宽以下 dB/dec
闪烁噪声贡献$S_{\phi,flicker} = K_f/f \cdot2\pi/K_\phi \cdot H(s)
带内参考贡献

参考文献

  • Banerjee, D. (2006). PLL Performance, Simulation, and Design (4th ed.), Ch.14-15.