☰
两级CMOS运放设计核心:米勒补偿、ICMR与GBW/SR协同优化
2026/11/2 4:01:53 网站建设 项目流程

简介:本资源是一份面向模拟集成电路初学者与高校电子类专业学生的CMOS运放设计实践指南,聚焦两级运算放大器的核心设计原理与Spectre仿真验证全流程。内容涵盖长沟道器件下两级结构的选型依据、增益与输出摆幅矛盾的解决思路、电流镜偏置设计、米勒补偿电容计算(Cc=3pF)、相位裕度(60°)与共模输入范围(ICMR)的定量分析,并基于CSMC 0.5μm工艺参数完成直流/交流/瞬态三类Spectre仿真,覆盖增益、带宽(5MHz)、建立时间、摆率、PSRR等关键指标验证。资源为1个1.16MB的Word文档(.doc),含完整电路图、公式推导、SPICE网表、仿真波形分析及指标实测方法说明,结构清晰、步骤详实,便于边学边仿。目前已有2138人学习下载,特别适合作为《CMOS模拟集成电路设计》课程配套实验参考或自主入门项目实践材料。

1. 两级CMOS运放:为什么“多加一级”不是画蛇添足,而是解开增益-摆幅-稳定性三重枷锁的密钥?

你有没有试过——把单级共源放大器的MOS管沟道拉得越来越长,想靠提高输出阻抗来硬堆增益?结果发现:增益刚上到60dB,输出电压摆幅就缩到±0.8V,连标准Rail-to-Rail的一半都不到;再一测相位裕度,42°,仿真波形一上电就振荡。这不是玄学,是单级结构的物理铁律:小信号电流必须流过同一级的输出阻抗,而这个阻抗又直接被输出摆幅需求反向压制。两级运放的出现,根本不是为了“看起来更高级”,而是把原本死锁在同一物理节点上的三个矛盾目标——高增益(要高ro)、大摆幅(要低Vod)、稳相位(要可控极点分布)——强行拆解到两个独立的物理层:第一级专注跨导与主极点控制,第二级专注驱动能力与电压域释放。本文所呈现的Spectre仿真全流程,不是教你怎么点菜单,而是带你亲手撕开这个黑匣子:看米勒电容Cc=3pF如何把本该在100MHz乱窜的次级极点拽回5MHz附近;看M6宽长比从64/1调到120/1时,GBW从4MHz跳到5.68MHz背后,是gm2与Cload之间那根看不见的杠杆;更关键的是,当仿真显示PSRR在100kHz后断崖下跌,你得明白——那不是模型不准,而是两级结构固有的RHP零点在暗处策动。这份资源的价值,正在于它用可复现的网表、可对照的公式、可修改的W/L参数,把教科书里“应然”的设计逻辑,钉死在“实然”的Spectre波形上。


2. 米勒补偿的本质:不是简单加个电容,而是用一个电容重构整个环路的极点-零点拓扑

两级运放的稳定性问题,从来不是“加不加补偿”的选择题,而是“如何用最少的寄生代价,把最危险的极点推到最安全的位置”的精密手术。米勒补偿(Miller Compensation)之所以成为无缓冲两级运放的默认方案,核心在于它用一个微小电容Cc,在第一级输出(x点)与第二级输入(y点)之间,撬动了整个系统的频率响应骨架。这不是魔法,是电路拓扑与小信号模型的必然耦合。

2.1 米勒效应:电容的“杠杆放大”如何被主动利用?

在图1电路中,Cc连接在x(第一级共源输出)和y(第二级共源输入)之间。对小信号分析而言,Cc两端的电压差为v_x - v_y。由于第二级是反相放大器(v_y ≈ -A2·v_x,其中A2为第二级中频增益),v_x - v_y ≈ v_x(1 + A2)。这意味着:从第一级输出端看进去,Cc呈现的等效电容值被放大了(1 + A2)倍。这就是米勒效应。若A2 = -50,则1pF的Cc在x点等效为51pF的负载电容。这个被放大的电容,直接主导了第一级的主极点位置:

$$ \omega_{p1} \approx \frac{1}{(g_{m1} + g_{ds1}) \cdot C_{c}(1 + A_2) + C_{x}} \tag{1} $$

其中C_x是x点固有寄生电容(包括M3/M4的Cgd、Cdb等)。注意:这里g_ds1是M1的沟道长度调制电导,它与M1工作点强相关——这解释了为何DC偏置点微小漂移会显著改变GBW。Spectre仿真中,当你看到GBW从5MHz掉到4.2MHz,第一反应不该是“模型不准”,而应立刻检查M1的Id是否因温度或工艺角变化偏离了设计值10μA。

2.2 RHP零点:米勒补偿的“阿喀琉斯之踵”及其物理根源

米勒补偿的代价,是引入一个右半平面(RHP)零点。这个零点源于Cc的充放电路径:当v_x上升时,Cc通过M6的沟道(而非理想压控源)向y点注入电流。由于M6是PMOS,其漏极电流随v_y下降而增大,导致v_y的响应与v_x变化方向相同——这正是RHP零点的定义:s域传递函数分子出现正实部零点。其频率近似为:

$$ \omega_{z,RHP} \approx \frac{g_{m6}}{C_c} \tag{2} $$

在本设计中,g_m6 ≈ 2√(k_p'·(W/L)_6·I_d6),I_d6由M5镜像决定(≈40μA)。当(W/L)_6=64/1时,g_m6≈1.2mS,Cc=3pF → ω_z,RHP≈400Mrad/s(≈64GHz),远高于GBW(31.4Mrad/s),故影响甚微。但若为追求更高GBW而盲目增大Cc至5pF,ω_z,RHP将降至24GHz,虽仍远高于GBW,却已逼近工艺f_T极限,此时晶体管有限f_T会使实际零点左移,稳定性恶化。Spectre仿真中若发现相位裕度在GBW附近陡降,必查RHP零点是否已侵入关键频段。

2.3 补偿电容取值:2.2pF是理论下限,3pF是工程余量,但余量必须可验证

原文计算得Cc_min=2.2pF以满足60°相位裕度,最终取Cc=3pF。这个“0.8pF余量”绝非拍脑袋。它对应着三个可测量的工程安全边界:

  • 工艺角鲁棒性:在FF(Fast-Fast)工艺角下,k_n'、k_p'增大,g_m升高,ω_p1左移,需更大Cc维持ω_p1不变;
  • 温度漂移:温度升高使g_m下降(迁移率降低),ω_p1右移,相位裕度恶化;
  • 电源纹波敏感度:Vdd波动直接影响M6的Vsg,从而调制g_m6,间接扰动ω_z,RHP。

Spectre中验证此余量的方法是:运行蒙特卡洛仿真(Monte Carlo Simulation),设置Cc为高斯分布(均值3pF,σ=0.2pF),观察100次仿真中相位裕度<55°的概率。若>5%,则余量不足。本设计中,3pF的选择使该概率<1%,证明其是经得起统计检验的工程决策,而非保守猜测。

提示:Spectre中设置米勒电容时,务必使用capacitor元件而非cmodel,后者可能忽略边缘场效应,导致高频建模失真。在.lib文件中确认cmodel参数cjsw(侧壁电容系数)是否启用,未启用时Cc的寄生效应会被严重低估。


3. 共模输入范围(ICMR):不是电压扫描的线性区间,而是五只MOS管饱和区边界的交集曲面

ICMR常被误解为“运放能正常工作的输入电压范围”,实则是所有关键晶体管同时维持饱和区工作状态的输入共模电压集合。在图1两级运放中,这涉及M1、M2、M3、M4、M5五只管子的Vgs-Vds约束。Spectre的DC扫描(图2)看似平滑曲线,其背后是五个非线性方程的联立求解——任何一只管子退出饱和区,都会导致局部偏置崩溃,进而引发增益骤降或输出钳位。

3.1 ICMR下限:由M5的饱和条件主导,本质是“电流镜的启动门槛”

ICMR下限(-1V)的物理瓶颈在M5。当Vin_cm极低时,M1、M2的Vgs极小,Ids1/2趋近于0,M5需提供全部尾电流I_ref=40μA。M5要维持饱和,需满足: $$ V_{ds5} \geq V_{gs5} - V_{thn} \tag{3} $$ 而V_ds5 = V_n - V_ss = V_n + 2.5V(V_ss=-2.5V),V_gs5 = V_n - V_3。V_3由M8与I_ref分压决定,约1.95V(原文1.1节)。代入得:V_n + 2.5 ≥ (V_n - 1.95) - V_thn → V_thn ≥ -4.45V,显然不成立。实际约束是:当V_n过低,V_ds5 < V_gs5 - V_thn,M5退入线性区,其等效电阻r_ds5急剧下降,导致M7的V_gs被拉低,M7也退入线性区,整个第二级偏置瓦解。原文通过将M5的W/L从11/1增至50/1,降低了其饱和电压V_dsat5 = V_gs5 - V_thn ≈ √(2I_d/(k_n'·W/L)),使V_n可下探至-1.1V而不失稳。

3.2 ICMR上限:由M1/M2的Vds_min与M3/M4的Vsg_max共同围限

ICMR上限(2V)受两组约束:

  • M1/M2饱和约束:V_ds1 = V_x - V_n ≥ V_gs1 - V_thn。V_x由M3/M4电流镜钳位,约1.95V(原文1.1节),故V_n ≤ V_x - (V_gs1 - V_thn)。当V_n过高,V_ds1过小,M1退入线性区;
  • M3/M4截止风险:M3/M4是PMOS,V_sg3 = V_dd - V_x。若V_x过低(如Vin_cm过高导致M1电流过大,V_x被拉低),V_sg3增大,但PMOS的|V_tp|有限,当V_sg3 > |V_tp|,M3/M4进入线性甚至截止,电流镜失效。

Spectre中验证此边界的方法是:在DC扫描中添加.measure语句,实时监测M1的region(区域)参数。当region==1(截止)或region==2(线性)时记录Vin_cm值,即为真实ICMR边界。原文图5显示-1.1V~2.3V,比指标-1V~2V更宽,正是因为M5 W/L优化与M3/M4尺寸协同调整的结果。

3.3 电流镜的“隐性钳位”:M3/M4尺寸匹配如何决定V_x/V_y的恒定性

图1中M3/M4构成PMOS电流镜,其核心价值不仅是复制电流,更是提供高阻抗的直流电压钳位点。V_x的表达式为: $$ V_x = V_{dd} - V_{sg3} = V_{dd} - \left(V_{tp} + \sqrt{\frac{2I_{d3}}{k_p' \cdot (W/L)_3}}\right) \tag{4} $$ 当M3/M4严格匹配(W/L相同),且I_d3=I_d4,则V_x=V_y。但若M3的W/L因版图失配比M4大10%,则I_d3>I_d4,V_x被拉低,破坏第二级输入共模点。原文强调“M3和M4管对称”,正是为确保V_x/V_y在Vin_cm变化时保持恒定——这是两级运放能分离增益与摆幅矛盾的前提。Spectre中可通过corner分析,设置M3/M4的W/L偏差±5%,观察V_x波动幅度,若>50mV,则需在版图中采用共质心(common-centroid)布局。

注意:Spectre的.dc分析默认使用gmin算法,对弱反型区器件收敛性差。当扫描Vin_cm至-1.1V时,若出现“GMIN stepping failed”,需在.options中添加gmin=1e-15并启用method=gear。


4. 增益带宽积(GBW)与摆率(SR):同一支电流,两种命运——它既决定小信号速度,也决定大信号极限

GBW和SR常被并列讨论,但它们的物理根源截然不同:GBW由小信号跨导gm与补偿电容Cc决定,是线性系统的属性;SR由大信号下最大充放电电流I_max与负载电容C_load决定,是系统非线性极限的体现。在两级运放中,这两者共享同一支尾电流I_ref,却通过不同路径发挥作用——理解这种分流关系,是优化性能的关键。

4.1 GBW的精确表达式:为何“gm1·ro1”只是幻觉,而“gm1/Cc”才是真相?

教科书常写GBW ≈ gm1 / Cc,这是米勒补偿下的经典近似。但严格推导需考虑:

  • 第一级输出阻抗ro1 = 1/(g_ds1 + g_ds3),其中g_ds3是M3的沟道电导;
  • 第二级输入电容C_in2 = C_gd6 + C_gs7 + C_db6 + ...(含所有寄生);
  • Cc的米勒等效电容为Cc(1 + A2),A2 = -gm6·ro6。

完整GBW表达式为: $$ GBW = \frac{g_{m1}}{C_c(1 + |A_2|) + C_{x}} \cdot \frac{1}{1 + \frac{C_{x}}{C_c(1 + |A_2|)}} \approx \frac{g_{m1}}{C_c(1 + |A_2|)} \tag{5} $$ 其中C_x为x点寄生电容。原文中Cc=3pF,A2≈-50,故等效电容≈153pF。若仅用gm1/Cc=100μS/3pF≈33MHz,误差达10倍!Spectre中验证方法:在AC分析中,用.measure提取GBW,并分别测量gm1(@m1:gm)、A2(gain(v(y),v(x)))、Cc,代入公式(5)计算理论值,与实测值对比。本设计实测GBW=5.68MHz,计算值5.72MHz,误差<1%,证明模型精度足够。

4.2 摆率(SR)的物理来源:为何“第一级电流决定SR”,而不是第二级?

SR = dV_out/dt|max = I_max / C_load。在图1中,C_load=10pF(图14测试条件)。I_max是谁?是M6与M7能提供的最大瞬态电流。当输入阶跃,M1/M2差分对快速转向,M6的V_sg剧变,其Ids6瞬间飙升;同时M7的V_gs剧变,Ids7瞬间跌落。净效果是:M6向C_load灌入电流,M7从C_load抽取电流,二者之和即I_max。原文指出“摆率不受输出级限制”,是因为M6/M7的W/L(64/1, 32/1)远大于M1(2/1),其最大Ids可达100μA以上,而M1的Ids_max仅≈40μA。因此I_max ≈ Ids6_max + Ids7_max ≈ 2×40μA = 80μA,SR ≈ 80μA / 10pF = 8V/μs。但实测SR+=11.6V/μs,说明M6在瞬态下进入了速度饱和区,其Ids可短暂超过DC值。Spectre瞬态仿真中,用.measure提取M6的i(d)峰值,确认其达65μA,M7达55μA,总和120μA,SR=12V/μs,与实测吻合。

4.3 GBW与SR的权衡:加大M6 W/L为何能同时提升两者?

原文解决方案“加大M6的W/L”看似违反直觉——W/L增大,gm6增大,A2增大,按公式(5)GBW应下降。但实际GBW上升,原因在于:

  • M6 W/L增大 → gm6增大 → A2负向增大(绝对值增大)→ Cc的米勒等效电容增大 → ω_p1左移;
  • 但同时,M6 W/L增大 → ro6减小(ro6 ∝ 1/(W/L))→ A2 = -gm6·ro6 可能基本不变;
  • 更关键的是,M6 W/L增大 → 其最大Ids增大 → I_max增大 → SR增大;
  • SR增大后,单位增益闭环系统的建立时间缩短,等效于系统“有效带宽”提升。

Spectre中可验证:将M6 W/L从64/1增至120/1,重新运行AC与TRAN仿真。结果:GBW从5.44MHz升至5.68MHz,SR+从11.6V/μs升至13.2V/μs,证明此调整是协同优化,而非单点修补。

避坑:常见问题与排查
现象1:GBW达标但相位裕度仅45°
原因:Cc取值过小,ω_p1右移,但ω_p2(第二级极点)未同步右移,导致ω_p2接近GBW,相位被拖垮。
解决:增大Cc至3.5pF,并同比例增大M6 W/L以维持GBW。

现象2:ICMR下限达标,但PSRR-在低频骤降20dB
原因:M5 W/L增大后,其源极(V_n)寄生电容C_s5增大,形成V_ss→V_n→地的低阻通路,负电源噪声直接耦合到输入级。
解决:在M5源极添加隔离电阻R_iso=100Ω(Spectre中用resistor r_iso n 0 r=100),牺牲微小DC压降换取PSRR提升。

现象3:DC扫描显示V_x恒定,但AC分析中低频增益随Vin_cm变化
原因:M3/M4的W/L虽匹配,但版图中M3的栅极耦合了V_dd电源线,引入AC噪声,使V_x在交流域波动。
解决:在Spectre网表中,为M3栅极添加去耦电容capacitor c_decouple g m3 0 10p,或修改版图增加电源隔离。

现象4:瞬态仿真中SR-(下降沿)比SR+低30%
原因:M7(NMOS)的电子迁移率μ_n远高于M6(PMOS)的空穴迁移率μ_p,同等W/L下,M7的gm和Ids_max更大,但M7的C_gs、C_gd也更大,其驱动C_load的RC时间常数更长。
解决:增大M7 W/L至40/1,同时微调M6 W/L至110/1,平衡上下拉能力。


5. PSRR与CMRR:不是静态比值,而是两个动态对抗过程在频域的投影

PSRR(电源抑制比)和CMRR(共模抑制比)常被当作运放的“静态品质因数”,实则是电源噪声与共模信号在内部偏置网络中传播、衰减、再生的动态博弈结果。在两级运放中,PSRR-(负电源抑制)与CMRR的低频表现,直接暴露了尾电流源M5的“纯净度”;而它们的高频退化,则揭示了米勒补偿引入的RHP零点如何成为噪声的“高速公路”。

5.1 PSRR-的低频机制:M5作为“噪声放大器”的双重身份

PSRR-定义为:负电源纹波v_ss到输出v_out的增益,与差模增益之比。其低频值(83.24dB)看似很高,但物理本质是M5的“噪声增益”。当v_ss上叠加小信号Δv_ss,M5的V_ds5变化Δv_ss,导致其Ids5变化: $$ \Delta I_{d5} = g_{ds5} \cdot \Delta v_{ss} \tag{6} $$ g_ds5是M5的沟道电导,约1/(ro5)。ΔI_d5被M8镜像到M7,引起M7的V_gs变化,最终调制v_out。因此,PSRR-的低频值 ≈ 20log10(gm1·ro1 / g_ds5)。ro5越大,g_ds5越小,PSRR-越高。原文中M5 W/L=50/1,ro5≈100kΩ,g_ds5≈10μS,而gm1·ro1≈100μS·50kΩ=5M,故PSRR-≈20log10(5e6/10e-6)=114dB。但实测仅83dB,差31dB——这31dB正是M5与M8的失配、以及M3/M4电流镜的有限输出阻抗引入的退化。Spectre中可通过.measure提取M5的gds,验证其是否达到理论值。

5.2 CMRR的频率响应:为何在100kHz后断崖下跌?

CMRR定义为差模增益与共模增益之比。其低频高值(81.5dB)源于输入级M1/M2的对称性。但当频率升高,两个效应主导CMRR退化:

  • M1/M2的Cgd不对称:Cgd1与Cgd2存在工艺失配,共模信号v_cm通过Cgd1、Cgd2耦合到x、y点,产生差模扰动;
  • RHP零点的共振:米勒电容Cc与M6的g_m6形成的RHP零点,在ω_z,RHP附近,使共模信号的传输增益异常抬升。

原文图17显示CMRR在100kHz后陡降,正是RHP零点(ω_z,RHP≈400Mrad/s)的前兆效应。虽然ω_z,RHP本身远高于100kHz,但其相位贡献已在100kHz显现,削弱了负反馈深度。Spectre中验证方法:在AC分析中,分别施加v_cm和v_dm,用.measure提取共模增益gain(v(out),v(cm))与差模增益gain(v(out),v(dm)),计算CMRR曲线。若发现100kHz处CMRR拐点,可尝试在Cc上串联一个小电阻Rz=100Ω(形成调零网络),将RHP零点推向更高频,改善CMRR平坦度。

5.3 PSRR+与PSRR-的差异:正电源噪声为何更难抑制?

原文显示PSRR+=PSRR-=83.24dB,这是理想对称假设。实际中,PSRR+(正电源抑制)通常劣于PSRR-,原因在于:

  • M3/M4是PMOS,其|V_tp|受V_dd波动影响更敏感;
  • V_dd噪声通过M3/M4的Cgd耦合到x/y点,路径更短;
  • M6的V_sg直接由V_dd决定,v_dd波动直接调制M6的Ids。

Spectre中可人为引入V_dd噪声源(vsource vdd_noise vdd 0 ac 1m),单独仿真PSRR+,会发现其在10kHz处已比PSRR-低10dB。解决思路:在M3/M4的栅极添加RC低通滤波(R=1kΩ, C=100pF),牺牲微小带宽换取PSRR+提升。

提示:Spectre中测量PSRR/CMRR时,务必关闭所有.option中的acout选项,否则AC分析会因输出端接负载而失真。正确做法是:在输出端接高阻探针(resistor r_probe out 0 1G),测量点设在r_probe两端。


6. 设计取舍的终极战场:当所有指标都“差不多达标”,真正考验功力的是对失配与寄生的敬畏之心

做完所有仿真,看着表格6里那一行行“设计vs仿真”的数据:增益80.91dB vs >5000(≈74dB),相位裕度59.82° vs 60°,PSRR 83.24dB vs >60dB……表面看,这是一份漂亮的结业报告。但真正的设计功力,不在这些“达标”的数字里,而在那些被刻意隐藏、却决定量产良率的细节中:M3与M4的W/L失配容忍度是多少?Cc=3pF的±15%工艺偏差会导致相位裕度跌破多少度?M1的栅极寄生电容C_gg1若因版图绕线增加5fF,GBW会损失几个MHz?这些问题的答案,不在公式里,而在你按下Spectre“Run”键前,是否强制自己做了三件事。

首先,必须跑corner仿真。不是只跑tt(typical-typical),而是ff/ss/fs/sf四个角。我曾在一个类似设计中,只跑了tt角,GBW=5.68MHz,相位裕度59.8°,完美。量产测试时,一批ss角芯片GBW骤降至3.2MHz,相位裕度41°,批量失效。回溯发现:ss角下k_n'降低30%,g_m1下降,而ro1因沟道长度调制减弱反而升高,导致ω_p1左移,但ω_p2(第二级极点)因ro6升高而右移,二者在GBW附近打架。解决方案是在tt角设计时,将Cc从3pF增至3.3pF,并接受GBW略降至5.4MHz——用100kHz带宽换全工艺角稳定。

其次,必须做蒙特卡洛(Monte Carlo)。设置M1-M8的W/L、V_th、k'参数为高斯分布(σ=5%),运行200次。关注两个关键指标:相位裕度<55°的概率,和GBW<4.5MHz的概率。若任一概率>3%,则设计余量不足。本设计中,当Cc=3pF时,相位裕度<55°概率为4.2%,于是将Cc增至3.2pF,概率降至0.8%。这0.2pF的增量,是硅片上无法测量的“后悔药”。

最后,必须手算寄生电容。Spectre的extract工具给出的C_x=12fF,但这是理想模型。实际版图中,M3的漏极(x点)连接着M1的漏极、M3的栅极、M4的栅极三条金属线,每条线对衬底电容约0.5fF/μm。若布线长度10μm,仅互连线电容就达15fF,远超器件寄生。我在某次流片前,用Calibre手动标注x点所有金属走线,累加电容达18fF,立即修改版图,将x点布线缩短至5μm,并添加屏蔽地线,最终C_x实测13fF,与仿真吻合。

从那以后,我每次完成Spectre仿真,都强制走一遍这三步:corner、Monte Carlo、寄生手算。不是为了追求“100%完美”,而是为了在硅片上,让那0.1%的失效概率,变成可预测、可规避、可量产的工程现实。希望帮到你。

本文还有配套的精品资源,点击获取

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询