尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Class AB OPA的STB相位异常?碰撞电离是隐藏元凶

Class AB OPA的STB相位异常?碰撞电离是隐藏元凶 作为一个常年和模拟IC仿真打交道的人我想先聊一个很多人都遇到过的“幽灵问题”Class AB OPA的STB仿真相位曲线在某个corner下突然“跳水”但直流工作点、增益曲线看着都正常。你翻遍电路图、检查了连接、换了好几种探针方式怎么都想不通哪里出了问题。最后所有证据都指向了一个很容易被忽略的物理机制——碰撞电离impact ionization。这篇文章就把我当时完整的排查思路、仿真手段、以及最终的规避方案写出来希望能帮你少走几周弯路。这个问题表面上是“STB仿真相位异常”本质上是一次从电路行为异常到器件物理机制的归因训练。如果你正在做高摆幅、低功耗Class AB输出级或者你负责的运放在做工艺角验证时出现过莫名其妙的不稳定这篇文章的内容大概率能用得上。1. 从一条异常STB曲线说起1.1 一条正常的Class AB OPA环路增益曲线长什么样在讲异常之前先校准一下“正常”的标准。Class AB输出级运放的STB仿真我们通常关注的是环路增益T(s)的幅频和相频响应。正常情况下Class AB OPA的环路增益曲线应该是一个干净的积分器响应低频增益很高80dB到100dB左右主极点通常在几十Hz到几百Hz0dB穿越频率在几MHz到几十MHz相位裕度至少45度以上紧凑设计一般会做到55度到70度。由于Class AB输出级在推挽切换时存在跨导变化电路本身对偏置电流比较敏感。所以STB仿真的标准流程一般都会在TT corner、典型电压、典型温度下先跑一条基线曲线然后在工艺角矩阵TT/SS/FF/SF/FS、电源电压范围如3.3V正负10%、温度范围-40度到125度内做全套遍历。正常曲线有几个容易记的“标志位”低频段相位从-90度附近缓慢下降中频段因为次极点进入相位会加速下降在高频穿越点附近有一个明显的过渡然后按每个极点-90度的规律继续掉。Class AB输出级因为输出节点是高阻节点通常会贡献一个主极点或次极点所以输出级补偿电容的大小、Miller补偿电阻的取值都会直接影响中频段的相位轨迹。1.2 我遇到的那条“诡异跳水”曲线那次项目里做的是一个轨到轨输出的Class AB运放负载电容3nF驱动能力要求在输出摆幅接近电源轨时仍有足够的相位裕度。在TT corner所有指标都很好相位裕度62度看上去完全可以释放。但跑完corner矩阵之后发现一个特定的组合下相位曲线出现了明显异常FF corner低温-40度电源电压拉到上限输出电压摆到靠近负轨的地方。低频增益没变化但是你盯着相频曲线看会在中频段出现一个局部的“翘曲”相位先往上抬了二十几度然后又迅速掉下来穿越频率附近的相位裕度从60度级别直接掉到甚至负值附近整个环路在临界失稳的状态。这不是普通的极点零点对变化能解释的。正常的PVT变化会让极点位置整体移动但不会在相位曲线上制造一个突兀的局部隆起。我当时第一反应是补偿网络出了问题或者是输出级偏置电流在这组corner下发生了模式切换。但检查静态工作点所有管子都还在饱和区Class AB的浮空电流源也工作正常。这就很扎心了——静态没问题动态却失稳。1.3 三条关键线索锁定排查方向仔细把异常波形拆开发现了三个特征第一相位异常出现的频率区间是固定的大概在穿越频率前一个十倍频以内正好是输出级次极点影响最大的频段。第二异常幅度随输出电压摆幅变化非常敏感输出电压越靠近电源轨相位翘曲越严重输出电压在中段时异常几乎消失。第三这种异常对温度敏感低温下更明显而高温下反而缓解。这三条线索放在一起指向的方向就是“输出级附近存在一个额外的电流注入/泄漏路径并且这个路径在高电压、低温条件下显著增强”。当时我和同事讨论了很久最后有人提到一个词——碰撞电离impact ionization。起初我不太信因为常规教科书里这东西在BJT里讲得多CMOS工艺里确实存在但通常只有在器件承受很高电场时才显著而这种效应在仿真模型里如果被准确建模就会以“体电流”的形式出现在MOS管的终端电流上直接影响输出节点的电流平衡进而改变小信号模型的跨导和输出阻抗最后体现在STB仿真的相位响应上。2. 碰撞电离那个藏在模型里的小魔鬼2.1 物理本质高电场下的载流子倍增效应碰撞电离的物理图像其实并不复杂。MOS管工作在饱和区时沟道靠近漏端的区域存在一个高电场区。当漏源电压VDS足够大电场强度超过某个阈值通常在1e5 V/cm量级以上载流子在沟道里被加速到很高的能量碰撞晶格原子后产生电子空穴对这叫碰撞电离。新产生的载流子还会被电场继续加速继续碰撞产生更多的载流子形成倍增效应。对NMOS管来说高能电子在漏端附近碰撞产生大量的电子空穴对空穴被扫向衬底形成衬底电流ISUB电子则继续流向漏端等效于在漏源之间多了一条额外的电流通路。PMOS管则正好反过来碰撞产生的电子流向衬底空穴流向源端。从电路建模的角度看碰撞电离等效于在MOS管的漏端和衬底或者体端之间增加了一个受控电流源电流方向从漏端流向衬底。这个电流大小强烈依赖于VDS和沟道长度VDS越高电流指数式增长L越小沟道电场越强碰撞电离越严重。这跟Class AB OPA有什么关系关系太大了。Class AB输出级为了达到轨到轨输出输出管经常工作在接近电源电压的VDS条件下尤其是当输出电压被拉向电源轨或地轨时输出管承受的剩余VDS可能很小但处于线性区而在另一端对管却承受了几乎全部的电源电压。对于短沟道器件一个3.3V的电源电压加在L0.18um甚至更短的管子两端VDS可能远超安全工作区碰撞电离电流完全能到微安级别——这个量级的电流注入到输出节点足够撕开部分电路的安全裕度。2.2 为什么偏偏是Class AB结构容易踩雷Class AB输出级和Class A或者Class B的关键区别在于输出级偏置在“弱导通”状态静态电流不大但动态输出能力极强。这种结构的好处是静态功耗低、驱动能力强、交越失真小但它引入了两个和碰撞电离相关的“放大器”特性第一个特性是增益级和输出级之间的宽摆幅节点。Class AB结构里通常有一个浮空电流源或者甲乙类控制电路来设定输出管的静态电流这个控制环路会让输出管栅极电压随输出电压大幅度摆动。在输出管状态切换瞬间某一边的输出管可能会短时间进入VDS很大的区域碰撞电离电流被瞬时激活。第二个特性是输出级的非对称性。Class AB用NMOS和PMOS对管NMOS管和PMOS管的碰撞电离特性差异很大尤其在衬底偏置结构不同的情况下。双阱工艺里NMOS的衬底通常连接到全局地而PMOS连接在N阱里N阱电位可以单独偏置。碰撞电离产生的衬底电流在阱电阻上形成压降可能引发门锁效应latch-up或者寄生BJT开启。当年在STB仿真里看到的相位异常正是输出管在极端的PVT corner下碰撞电离电流在输出节点上形成了一个额外的寄生导纳相当于在输出端并联了一个受控电流源影响了环路的相位响应。这个额外导纳的频率特性并非常规电阻电容而是与VDS的偏置强相关的非线性元件其等效阻抗可能在中频段表现为负阻或相位滞后从而把相位曲线拉出一个奇异的隆起。2.3 仿真器里怎么“看见”碰撞电离STB仿真是个小信号分析它天然会对器件模型进行线性化。如果模型准确包含了碰撞电离效应那么小信号模型里自然会有对应的跨导和输出电导分量。问题在于很多人拿到一条异常STB曲线时并不会想到去查器件的衬底电流。我后来复盘才发现其实仿真器早就告诉我们答案了。在Spectre里跑完STB仿真后返回到直流工作点分析DC operating point查看输出管的Terminal Currents能看到ISUB衬底电流或IDL漏致漏电流明显异常。对衬底电流不是只有击穿才会出现正常工作区也可能有纳安到微安级别的漏电。具体在Cadence ADE环境下你可以直接在Results Browser里右键选择输出管的instance查看其所有端子电流。或者更快的方式在原理图上打开“annotate DC operating point”查看每个mos管的Region、VDS、VGS和ISUB。我之前习惯只关心Region和电流是否正常忽略了ISUB这个参数结果绕了很大的弯。另外仿真模型里的碰撞电离建模参数通常以“impact ionization coefficients”存在BSIM3/BSIM4模型里对应的参数族是ALPHA0、ALPHA1、BETA0、BETA1不同工艺有差异。如果你的PDK模型是BSIM4的话这类参数直接决定了碰撞电离电流的强度。有些FOUNDRY为了加快仿真速度会在默认模型里简化或忽略这部分效应这会导致仿真结果偏乐观。3. 系统排查从怀疑到定位的完整流程3.1 先复查STB仿真设置排除“假异常”可能我必须强调一个前提STB仿真相位异常有一半以上是探针方法不对或者仿真设置不合理造成的。所以当你看到一条奇怪的相位曲线第一件事不是怀疑物理机制而是逐步检查仿真配置。STB仿真有两种主流实现一种是Cacade的stbloopgain分析需要在环路中插入一个iprobe激励源电流探针另一种是split方式把环路在某一处断开在断开点分别加理想激励和理想负载。两种方法都需要确保环路断开点的阻抗匹配正确否则会引入额外的极点和零点。就Class AB OPA来说断开点的选择很有讲究。很多人喜欢在输出端断开把iprobe插在输出节点和负载电容之间。这样做的风险是输出级本身的输出阻抗很高加上负载电容后iprobe两端看到的阻抗差极大容易产生数值问题。更稳妥的做法是在反馈电阻网络之前、高阻的放大器输出节点处断开或者在输入对管的栅极处断开。我还遇到过一种情况因为Class AB输出级在瞬态下有大信号行为而在STB小信号分析里探针偏置设置不对导致仿真器在扫描频率时出现了收敛问题相位曲线在中频段出现锯齿状抖动看上去像是一个局部隆起。解决办法是把“stb”分析的“start和stop”频率范围缩小并且设置足够大的“maxsideband”默认值4一般不够可以拉到16以上排除混叠效应。3.2 用直流扫描复现“碰撞电离激活区”当STB设置确认无误后我建议先用直流扫描快速复现异常现象不要急着跑完整AC扫描。具体做法是在ADE里搭一个“dc sweep”测试将输出电压VOUT从低到高扫描例如0到VDD同时监测输出级NMOS和PMOS管的ISUB。你会发现某个输出电压区间ISUB会出现一个“台阶式”跳变这就是碰撞电离电流开始主导的边界区间。用这个方法可以得到一张“异常区域地图”横轴是输出电压纵轴是衬底电流再叠加不同corner和温度条件就能清楚地画出哪段工作区是高危区。当时我做完这个扫描后结果非常直观低温-40度、FF corner下PMOS输出管在VOUT低于0.8V的时候ISUB达到几百纳安而正常TT corner下同一条件下ISUB几乎为零。那个电流量级看似不大但对于输出级小信号输出阻抗动辄几十兆欧的Class AB结构来说几百纳安的变化已经会产生明显的节点电压偏移和中频增益扰动。3.3 逐个击破和寄生PNP、门锁效应做区分碰撞电离在失效机制上经常和另外两个效应混淆排查时必须做区分一是寄生PNP或寄生NPN的开启。碰撞电离产生的衬底电流会在阱电阻上产生压降当这个压降超过0.6V左右时寄生的P/Nwell/Psub结构会被正向偏置形成一个额外的BJT通路。区分方法是看ISUB和衬底电位如果只是ISUB变大但衬底电位仍然稳定在参考电位附近说明还处于碰撞电离主导阶段如果衬底电位也出现明显抬升那就要警惕寄生BJT被打开。二是门锁效应。这个更严重通常会伴随电源电流浪涌和输出节点电压锁定。门锁一旦发生仿真结果一般是电路完全无法收敛不会被误判成“相位异常”。我记得当时在FF corner下做DC扫描时发现ISUB在某个电压点有个很陡的上升沿随后趋于饱和。这个饱和特性说明还没触发寄生PNP因为BJT一旦开启电流会指数级上升不会饱和。所以最终确认就是纯碰撞电离效应。4. 规避设计让Class AB输出级学会“避开危险区”4.1 从源头上控制VDS别让输出管扛太高电压既然碰撞电离的直接诱因是高VDS那么最自然的规避方向就是降低输出管在正常工作范围内的最大VDS。但对轨到轨输出级来说VOUT要一路拉到接近电源轨和地轨输出管在某种工作状态下必然承受较大的VDS。这时候能调整的是什么呢一是增加输出管的沟道长度L。把NMOS和PMOS的最小L值增大比如从0.18um增加到0.3um或更大沟道内电场强度会明显下降碰撞电离电流指数式衰减。代价是输出级的驱动能力会下降因为gm和饱和电流密度都会减小负载电容下的穿越频率会变低。如果你的相位裕度裕量充足这个代价是完全可以接受的。二是在输出管之前串一个共源共栅管cascode把VDS的电压分摊掉。Class AB输出级加cascode结构确实会增加输出电压摆幅损耗但如果你重点关注的corner条件下碰巧出现碰撞电离可以在最危险的那一侧比如NMOS侧或PMOS侧有针对性地加。我当时做的是PMOS侧加cascode——因为异常出现在PMOS输出管承受高压的时候。加了cascode之后PMOS输出管的VDS被限制在较低的固定值ISUB从几百纳安直接掉到几纳安以下STB相位曲线完全恢复了正常。4.2 优化偏置让峰值电场不要对准碰撞电离高发区有些电路拓扑不适合加cascode因为输出摆幅要求严格加cascode就意味着少一个VDSAT的摆幅空间。这种情况下可以尝试从偏置电路层面缓解。Class AB输出级的静态电流由浮空电流源决定而这个电流源的设计直接影响输出管栅极电压的动态范围。如果浮空电流源的“保持电压”设置过高那么空载时输出管的静态VDS可能已经偏高低温FF corner下碰撞电离风险就会放大。解决方案是引入一条“动态扩大VDS空间”的偏置路径在输出级两边各加一个共模反馈或动态偏置管让输出管栅极电压在输出接近电源轨时主动收缩避免VDS过冲。具体可以用一个small-signal敏感放大器监测输出节点电压当VOUT接近危险区时将输出管栅极电压拉向安全方向。另外可以考虑使用栅压限制环路给输出管的栅极加一个“钳位”结构。比如用二极管连接的管子串联限制最大栅源电压从而限制峰值电流密度和沟道电压降达到抑制碰撞电离的效果。4.3 模型层面留一手STB检查清单里加一条“碰撞电离体检”规避措施做了但仿真流程本身也需要固化经验避免下一次踩坑。我建议STB仿真release前把下面这些检查项纳入必做清单检查输出管在所有corner/温度/VOUT条件下的ISUB确认最大衬底电流小于阈值比如1nA/Au量级具体按工艺手册定义。用DC sweep找到每个corner下碰撞电离电流激活的VOUT区间确认输出信号不会在正常工作点长期停留在该区间。观察STB相位曲线在中频段是否有超过15度的“回翘”如果出现回翘需要排查是补偿网络造成的还是输出级寄生电流造成的。检查输出管是否工作在VDS安全区对照PDK的Safe Operating Area最大值如果VDS超过额定值大概率有碰撞电离风险。这套清单我后来在自己团队里推广了基本成了新增Class AB输出级项目时的“标配体检项目”。表面上看是给仿真增加了工作量实际上省下的是一轮又一轮“相位异常”的debug时间。5. 常见的STB仿真相位异常对照表与恢复技巧5.1 一眼识别四种典型相位异常为了帮助大家快速判断我把平时最常遇到的几类STB仿真相位异常整理成了一个对照表异常特征可能的根因快速排查手段相位在中频段局部“翘曲”后迅速下跌碰撞电离电流/体电流注入查看输出管ISUBDC扫描VOUT相位整体向下平移穿越频率不变探针位置引入额外极点换探针位置复查iprobe放置高频相位抖动呈锯齿状混叠边带设置不足调大maxsideband参数低频相位从-90度变成0度附近RC反馈网络相位丢失检查反馈电容/电阻是否被跳过表格里的第一条就是咱们今天讨论的碰撞电离问题特征最典型局部翘曲加迅速下跌。对了如果你在多个corner下都能看到相位异常但有且只有一个corner非常顽固且正好满足“高VDD 低温 慢/快工艺”的组合那就要高度怀疑碰撞电离了。工艺角的“快”意味着阈值电压低、载流子迁移率高碰撞电离更容易发生。5.2 三分钟复现STB异常的小技巧有时候你根本不想等完整的一套corner全遍历想快速复现异常这里分享一个“三分钟三板斧”的技巧。第一板斧把电源电压直接拉上限比如3.3V拉到3.6V或3.63V同时把温度设为-40度。这两个条件叠加后如果碰撞电离是根因STB相位曲线会明显恶化。第二板斧把输出端接一个很小的负载电容比如1pF而不是3nF同时将输出电压设定在靠近其中一条电源轨的位置。这样输出级承受最大VDS的条件就被“创造”出来了。第三板斧打开仿真器里面的“Inst Analysis”或者“DC Result”界面同时观察输出管VDS和ISUB。如果两个数值同时飙升基本就能锁定碰撞电离。这个三板斧不算严谨但在排查阶段特别高效。完整的corner矩阵验证留给最终release先用小范围快速扫描抓住问题本质。5.3 从这次Debug里学到的事这次Class AB OPA的STB相位异常排查耗时大概围绕三周半。回过头来看真正让我卡了很久的不是问题本身而是我对“碰撞电离”的认知一直停留在教科书层面没有在仿真调试的时候主动把“ISUB”当成一个常规观察量。在后来的几个项目里我都会习惯性地在仿真初期就设立一个ISUB的“监控眼”每个输出管的ISUB都会通过calculator表达式提出来和STB相位曲线一起打印出来。这样做的一个意外好处是不只能发现碰撞电离问题还能顺手发现很多跟偏置相关的软失效。另外一个体会是模型的精度决定了debug的上限。我们当时用的那个PDK在仿真模型里对碰撞电离的建模其实比较完整但如果PDK为了兼容老版本工具故意把impact ionization参数关掉了那么仿真里永远看不到这类问题等流片回来后才暴露那就不是几周时间能解决的。所以有条件的话建议向FOUNDRY确认一下模型的碰撞电离建模开关是否启用特别是短期沟道工艺节点。最后再分享一个很偏门但好用的技巧如果你实在不想改动电路拓扑只是想在仿真层面快速验证“碰撞电离确实是相位异常根因”可以在输出管旁边并联一个受控电流源Verilog-A的behavioral source模拟ISUB注入到输出节点的效果。如果加了这个电流源后STB相位曲线确实复现了异常特征那基本就能实锤了。这个方法在做失效归因汇报时特别有用给审核的同事看一条“有/无”对比曲线比任何文字解释都有说服力。
返回列表