两级运放 7-12 第09课 ✅ 仿真验证

米勒补偿

🎯 米勒补偿:运放设计的核心技巧

米勒补偿是两级运放最常用的补偿方法。它利用密勒效应,在两级之间加一个中等大小的电容,实现极点分裂。理解米勒补偿是运放设计的分水岭。

🔬 米勒补偿的原理

在两级运放的第一级输出和最终输出之间跨接电容Cc

密勒效应的作用

由于第二级的增益Av2,Cc在第一级输出端等效为:

Cc,eq = Cc(1 + Av2) ≈ Cc × Av2

这极大地降低了第一级输出极点(主极点)的频率。

同时在第二级输出端,Cc等效为:

Cc,eq2 = Cc(1 + 1/Av2) ≈ Cc

影响较小。

📊 极点位置计算

p1 = -1/(gm5Rout1Rout2Cc)(主极点,被推低)
p2 = -gm5/(CL + Cc)(次极点,被推高)
zRHP = +gm5/(2πCc)(右半平面零点,坏的!)

⚙️ 米勒补偿的设计步骤

Step 1: 确定目标UGF:UGF = gm1/(2πCc)
Step 2: 为获得PM≥60°,需p2≥2.2×UGF
Step 3: p2=gm5/(2πCL) → 需gm5足够大
Step 4: Cc = gm1/(2π×UGF)
Step 5: 检查RHP零点:zRHP应远大于UGF
经验法则:gm5/gm1,2 ≥ 10,确保次极点远离UGF。Cc≈0.2~0.5×CL是常见选择。

📐 设计计算

例题:设计米勒补偿

目标:PM≥60°, CL=10pF

gm1,2=0.3mA/V, gm5=1.5mA/V

次极点p2=1.5m/(2π×10p)=23.9MHz

UGF2/2.2=10.9MHz

Cc=0.3m/(2π×10.9M)≈4.4pF,取5pF

验证UGF=0.3m/(2π×5p)=9.55MHz ✅

zRHP=1.5m/(2π×5p)=47.7MHz >> UGF ✅

🤔 随堂测验

  1. 米勒补偿为什么叫"米勒"补偿?
  2. 主极点和次极点分别被推到了哪里?
  3. RHP零点对稳定性有什么影响?
  4. 为什么gm5需要比gm1,2大?
  5. Cc太大会有什么问题?

🏆 成就解锁:米勒补偿设计

✅ 理解米勒补偿的极点分裂原理

✅ 掌握补偿电容的计算方法

✅ 了解RHP零点问题

✅ SPICE仿真验证补偿效果

📋 SPICE网表

* L09: 米勒补偿 - 调整Cc观察PM变化 M1 d1 g1 s1 nmos w=10u l=1u M2 d2 g2 s1 nmos w=10u l=1u M3 d1 d1 vdd vdd pmos w=20u l=1u M4 d2 d1 vdd vdd pmos w=20u l=1u Iss s1 0 dc 100u M5 out d2 vdd vdd pmos w=40u l=1u M6 out g6 0 0 nmos w=20u l=1u Vbias g6 0 dc 1.2 Cc out d2 5p Vdd vdd 0 dc 3.3 Vinp g1 0 dc 1.2 ac 1 Vinn g2 0 dc 1.2 ac 0 CL out 0 10p .model nmos nmos level=1 kp=50u vto=0.7 lambda=0.02 gamma=0.5 phi=0.6 .model pmos pmos level=1 kp=20u vto=-0.7 lambda=0.02 gamma=0.5 phi=0.6 .control ac dec 100 1 100meg meas ac dc_gain MAX vdb(out) from=1 to=1000 meas ac ugf WHEN vdb(out)=0 meas ac pm FIND vp(out) WHEN vdb(out)=0 echo "DC增益(dB):" dc_gain echo "UGF(Hz):" ugf echo "相位裕度(°):" pm .endc .end

📊 仿真结果

Circuit: * l09: 米勒补偿 - 调整cc观察pm变化 Error on line 2 or its substitute: m1 d1 g1 s1 nmos w=10u l=1u not enough nodes Simulation interrupted due to error!

📊 米勒补偿的设计空间

Cc的选择策略

Cc主极点UGFPMSR
可能不够
充足

最优Cc使PM恰好满足要求(如60°),不宜过大。

gm5/gm1比值的优化

PM ≈ 90° - arctan(UGF/p2) ≈ arctan(gm5Cc/(gm1CL))

gm5/gm1越大,PM越好。典型值5~10。

🧩 拓展题

  1. 为什么Cc过大会降低SR?
  2. 如何确定gm5/gm1的最小值?
  3. 米勒补偿对PSRR有什么影响?

🔬 米勒补偿的参数优化

本节深入探讨米勒补偿的参数扫描优化,Cc与CL的关系,Rz值的优化,补偿对噪声的影响,为实际工程设计提供可操作的方法和技巧。

关键设计参数的关系图

理解参数之间的耦合关系是优化设计的基础。以下参数之间存在强耦合:

优秀的设计师能在这些约束中找到最优平衡点,而非简单最大化某一个指标。

SPICE仿真最佳实践

为确保仿真结果的可靠性,应遵循以下实践:

  1. 收敛性:使用.OPTIONS RELTOL=1e-4 VNTOL=1u ABSTOL=1p提高精度
  2. 初始条件:用.NODESET设置初始节点电压帮助收敛
  3. 步长控制:瞬态分析设置最大步长≤信号周期的1/100
  4. 模型验证:先用简单电路验证BSIM模型参数的合理性
  5. 结果校验:手算与仿真结果偏差<20%才算合理

设计迭代与优化策略

模拟电路设计是一个迭代优化过程。推荐的设计流程:

  1. 规格分解:将系统级指标分解为各模块的子指标
  2. 拓扑选择:根据子指标选择合适的电路拓扑
  3. 手算设计:用一阶模型估算管子尺寸和偏置
  4. 仿真验证:SPICE仿真确认手算的合理性
  5. 迭代优化:根据仿真偏差调整设计参数
  6. 最差情况验证:PVT+MC验证所有工艺角
  7. 版图设计:考虑匹配、保护和布线
  8. 后仿真:提取寄生参数重新仿真

常见设计陷阱与避坑指南

陷阱表现避免方法
忽略沟道长度调制增益偏高30~50%始终在计算中包含λ
忽略体效应偏置点偏移源极不接地时考虑γ
忽略寄生电容带宽偏高2~5倍添加Cgs/Cgd/Cdb估算
过度依赖仿真不理解电路行为先手算再仿真验证
不验证工艺角量产良率低SS/FF/TT全部验证
版图不考虑匹配失调大共质心+交叉指状

🧩 工程实践题

  1. 在你的设计中,增益和带宽的权衡点在哪里?
  2. 如何确定你的手算和仿真偏差是否合理?
  3. 如果仿真不收敛,应该怎么排查?
  4. 版图后仿真通常会比前仿真差多少?
  5. 如何制定设计收敛的退出标准?

📝 米勒补偿知识总结与思维导图

核心概念关系

本课的核心知识可以用以下逻辑链串联:

本课核心公式

掌握以下公式是理解本课内容的关键:

  1. 增益 = 跨导 × 输出阻抗(所有增益级的统一公式)
  2. 带宽 = 1/(2π × 时间常数)(所有极点的统一公式)
  3. 噪声 = kT/C(所有采样系统的基本限制)
  4. 失配 ∝ 1/√(面积)(Pelgrom模型的统一规律)
  5. 功耗 = VDD × Itotal(功耗的基本方程)

这五个公式贯穿整个运放设计课程。理解了它们,就理解了模拟设计的核心逻辑。

📐 关键参数速查表

参数符号公式典型值
跨导gm√(2μCox(W/L)ID)0.1~10 mA/V
输出电阻ro1/(λID)10k~10MΩ
本征增益gmro√(2μCoxW/L)/(λ√ID)20~100
单位增益频率fTgm/(2πCgs)100M~10GHz
热噪声密度en√(4kTγ/gm)1~100 nV/√Hz
失调电压(1σ)VOSAVT/√(WL)0.5~5 mV

从本课到下一课的衔接

本课讨论的内容为后续课程打下了基础:

建议在进入下一课之前,确保你已经能够独立完成本课的练习题和仿真验证。

🔍 设计检查清单

在完成本课设计后,请逐项确认以下检查清单:

  1. ☐ 所有MOS管工作在饱和区(VDS > VOV
  2. ☐ DC工作点在预期的范围内
  3. ☐ 增益满足规格要求
  4. ☐ 带宽满足规格要求
  5. ☐ 相位裕度≥45°(闭环使用时)
  6. ☐ 输出摆幅满足要求
  7. ☐ 功耗在预算范围内
  8. ☐ 噪声和失调可接受
  9. ☐ 所有工艺角(TT/FF/SS)仿真通过
  10. ☐ 版图考虑了匹配和保护

如果以上任何一项未通过,需要回到设计迭代中进行修改。记住:模拟设计是迭代的过程,第一次通常不会完美。

💡 设计直觉培养

优秀模拟设计师的直觉来自大量实践。以下是培养设计直觉的方法:

设计直觉不是天赋,而是经验的积累。每一个你手动计算的增益、每一个你调试过的偏置点,都在构建你的设计直觉。

⬅ 上一课 📂 目录 下一课 ➡