Bandgap启动电路与偏置电路设计实战:Cadence仿真避坑指南
发布时间:2026/9/24 11:53:37 作者:尧图编辑部 阅读量:1,286

搞过模拟IC的人多少都有同感Bandgap这个电路看起来就一个运放加一对BJT几个电阻教科书上三页纸能画完但真正放进项目里十个有九个是在启动电路和偏置电路上翻的车。我拿Cadence Virtuoso做Bandgap也踩了不知道多少坑从spectre仿真不收敛到流片回来基准起不来各种问题都遇到过。这篇就把我在启动电路和偏置上趟过的雷、试出来的经验一次说清楚给正在用Cadence做Bandgap设计的工程师省点时间。先说清楚这篇文章适合谁你在用Cadence跑Bandgap仿真发现DC工作点扫不过去瞬态怎么都不收敛或者仿真看着一切正常但总觉得启动电路哪里不对那你来对地方了。已经流片的老手也可以看看很多坑是共通的。1. 启动电路和偏置为什么是Bandgap设计的隐形主角1.1 从零电流简并点说起Bandgap的核心思路其实不复杂就是用BJT的VBE负温度系数和ΔVBE的正温度系数做加权叠加最终输出一个近似零温度系数的基准电压通常做到1.2V左右。这个原理学集成电路的人都知道但真正设计时你会发现一个要命的问题整个环路存在两个简并工作点。一个是你想要的正常工作点另一个是零电流点。上电瞬间所有节点电位都是零如果没有任何机制把环路往正常状态推电路会永远停在所有管子都截止的状态。这个现象在仿真里很容易复现你跑一个瞬态扫描VDD从0到3.3V波形图上干干净净一条直线输出一直是0电路根本没醒过来。这个零电流简并点就是从反馈环路的端口看进去小信号环路增益为零所对应的那个状态。强行加大上电时间也没用只要没有启动电路它就能一直睡下去。所以启动电路的本质作用就是给这个环路注入一个扰动把工作点从简并点踢出去踢到正常点之后还要功成身退不能影响正常的环路状态。1.2 启动电路的第一性原理启动电路的思路归纳起来就两个方向一个是从电源端想办法上电瞬间给环路某个关键节点注入一股电流形成正反馈把它推离零电流点另一个是从环路自身想办法设计一个与主环路并联的小支路它不具备简并点能自己进入正常工作状态然后把这个状态“传染”给主环路。最常见的实现就是在运算放大器的输出节点或者某个电流镜的栅极上挂一个上电导通、稳定后关断的MOS管。上电时这个管子是导通的给节点充个电环路就开始动起来了环路稳定之后这个管子必须彻底关断不然它会给主环路引入额外的漏电通路影响偏置精度。这里有个很关键的设计约束被很多人忽略启动电路不能靠电阻分压直接给运放输入端置电平。我见过有人图省事直接在运放正输入端挂个上拉电阻到VDD觉得这样就能“强行”给个电位。表面看DC确实起来了但一来分压电阻会引入额外的噪声和电源干扰通路二来这个启动电流是持续存在的温度变化时它会影响环路平衡点基准的温度系数直接劣化。启动电路的正确目标是启动完成后它和主环路的耦合必须降到可以忽略的程度。2. 启动电路那些坑从仿真过到真片挂2.1 启动失败仿真明明能过流片回来打脸先说一个典型场景。在Cadence里做前仿电压源用pulse或pwlf设一个1us到10us的上升沿跑tran波形正常输出稳稳落在1.2V。你以为万事大吉结果流片回来一上电万用表量输出只有几十毫伏芯片根本没启动。这种问题十有八九出在启动管尺寸上。启动电路里那个用于上电导通的管子它的导通能力取决于上电瞬间的过驱动电压而你仿真时设的VDD上升沿是理想斜坡。真实上电场景是VDD可能在几十个微秒甚至毫秒级爬升在电源电压只有0.6V或0.7V的阶段低压NMOS可能压根没导通启动电流太小根本不足以把环路的节点电位拉开。我自己做过一款电源芯片Bandgap在0.18um工艺下启动管我用了W/L1u/0.5u的小尺寸NMOS仿真从10us上电斜坡开始跑各种corner都过了。结果在某个测试板上电源上电特别慢配合板上大电容VDD爬升将近500us芯片的输出基准就一直没起来。后来查出来就是启动管在低压段导通能力不够重新加大了尺寸并在工艺角最差的情况下重新验证才解决。这里给两个建议。第一个启动管的尺寸选择不能只看额定的VDD导通情况要专门验证低压段比如电源电压爬升到0.4V、0.6V、0.8V这些中间电平时启动电路有没有足够的电流输出能力。第二个仿真上电时间不能只设一种至少要覆盖10us、100us、1ms三个数量级看看启动能力是否对VDD爬升速率敏感。2.2 启动电路关不断性能和良率一起崩和启动失败反着来的另一个坑是启动电路稳定后关不断。你想着启动完成就退出工作但MOS管不是理想开关栅压稍微差一点源漏之间就有漏电尤其在某个温度角下VDD偏高或偏低时那个管子可能根本没有完全截止。漏电的危害在Bandgap里被放大得很厉害因为Bandgap的主环路电流本来可能只有几微安启动管如果漏个几百纳安过去对偏置电流的污染就是好几个百分点。更麻烦的是这个漏电会随温度变化VDD变化时它也变化最后反映到Vref上的结果就是温度系数变差、线性调整率变差随机抽几个片测测还不一样这就是良率问题了。我处理这个问题比较推荐的做法是给启动管的栅极再加一个“自锁”机制。比较成熟的方案是启动管由一个小电流镜驱动一旦主环路开始工作电流镜的电流被某个支路“吸走”启动管栅压被彻底拉到无法导通的方向。和那种直接靠电源分压给栅极的方式相比这个方案的抗漏电能力要强得多。仿真时要专门做一个检查项启动稳定后跑一个长时间tran等环路稳定到几十微秒之后看启动管的漏端电流是不是接近于零。如果还有几十纳安以上的电流基本可以判断这个启动电路不合格要么改结构要么加大关断强度。2.3 启动速度、过冲和功耗的权衡启动电路设计还有一个容易被忽略的三角权衡启动速度、启动过冲、稳态功耗。启动速度太慢芯片等待基准建立的时间就长系统上电时序不好做启动速度太快环路可能在运放还没建立好工作点的时候被猛推一把输出出现一个很大的过冲这个过冲如果超过后续电路的门限可能导致逻辑误触发。有的启动电路为了快速把环路踢起来注入电流做得很大结果电流注入期间主环路的管子瞬间扛了大电流局部功耗过高在低功耗设计里这也是不能接受的。我的建议是把启动过程拆成两个阶段来看第一阶段是环路还未建立正常反馈时启动电路要提供足够的扰动把节点拉离零电流点第二阶段是环路已经进入线性工作区但还未完全稳定时启动电路的影响要快速退去。第一阶段要求启动电流有足够强度第二阶段要求启动电路的退耦速度足够快。用一个RC延时来控制启动管的关断时间是比较实用的折中方案。RC时间常数选在几个微秒这个量级既能确保启动完成又能避免过冲过大。3. 偏置电路Bandgap精度和稳定性的地基3.1 自偏置还是外部偏置到底怎么选Bandgap内部放大器的偏置来源一般有两条路线外部基准电流源偏置或自偏置。很多人觉得自偏置结构简单直接从Bandgap输出的PTAT电流里取一路反馈给运放做尾电流源省事。但自偏置有个天然问题它和主环路形成了嵌套反馈环路分析变得复杂相位裕度不好控而且启动时两个环路互相拉扯启动电路更容易失败。外部偏置的好处是主环路和偏置环路解耦环路补偿简单启动也独立可控。代价是你必须保证外部基准电流先于Bandgap到达稳定状态系统时序上要做约束。我自己在大多数项目里都倾向于用独立的带隙偏置或一个简单的从电源分出来的低精度电流源给Bandgap运放供电然后在Bandgap内部再做一级局部稳压或者电流镜整形这样每个模块的角色都清晰调试起来心智负担小很多。如果是自偏置方案必须用Cadence做环路稳定性分析时把偏置环路一起包进来。我之前遇到过一种情况单独看主Bandgap环路相位裕度有60多度很漂亮但把偏置回路的反馈路径算进去之后相位裕度实际不到20度上电瞬态会出现振铃这个振铃在频谱上表现为基准输出端多了好几个杂散峰。前期没发现后面做系统级仿真才暴露出来。3.2 double diode偏置电路低压场景的实用选择在偏置电路设计里有个经常被提起的结构叫double diode偏置特别是低压Bandgap里很常用。原理是在电流镜的某个支路上串两个二极管连接的BJT或MOS管利用两个VBE大约0.6V0.6V的压降来叠出约1.2V的偏置电压给共源共栅结构提供偏置或者给运放的输出级提供一个合适的直流工作点。这个结构的价值在于在低压工艺里比如VDD只有1.8V甚至1.2V你很难直接用一个高阈值的管子做偏置转移。Double diode结构天然产生一个“几乎随温度同步变化”的电压正好匹配BJT的VBE特性温度补偿效果好。但要注意的是double diode结构里的两个二极管通常用PNP或者NPN的BC结实现Beta值在不同工艺角下漂移较大。要算清楚最坏情况下两个二极管的压降范围确保所有corner下偏置管都工作在饱和区不能进入线性区或者截止区。我在0.18um工艺下用这个结构时就遇到过FF corner下Beta偏高导致第二个二极管的基极电流明显变化影响后面电流镜复制精度的情况。另外double diode结构会占用额外的纵向空间版图上要和BJT器件摆在一起做热匹配。BJT的温度系数是否匹配直接决定这个偏置的稳定性。热梯度不均匀会导致两个二极管上的压降失配这个失配会变成偏置电流的误差。3.3 偏置对Bandgap核心性能的影响偏置电路的精度会直接传导到Bandgap的输出精度上。最直接的影响就是电流镜的复制误差。Bandgap的PTAT电流产生依赖于一对比例电流镜如果镜子的匹配做得不好ΔVBE的精度就无从谈起。这里有一个设计要点电流镜的VDS要足够大保证即使在VDD最低、温度最高时也能让电流镜管子留在饱和区。我习惯在DC分析里做一个专门的检查扫描VDD从最低工作电压到最高工作电压同时扫描温度从-40到125度观察所有电流镜管子的VDS与VDSAT的差值。如果某个corner下VDS和VDSAT差值小于50mV这个镜子就非常危险了因为蒙特卡洛失配稍微波动一下管子就可能掉进线性区。还要注意偏置电流的敏感度。Bandgap对电源电压的抑制能力很大程度取决于偏置源对电源的敏感度。如果内部偏置电流本身随VDD变化剧烈那运放的增益会跟着变Bandgap输出的线性调整率自然就差。在Cadence里可以做一个电源抑制比仿真从VDD端注入一个1V的AC信号看Vref输出的AC响应结果频带内的增益应该远小于1。如果做出来某个频点有突起大概率是偏置环路和主环路在这个频点形成了谐振需要回头调整偏置支路的零点位置。4. Cadence实操仿真不收敛和启动问题的定位方法4.1 瞬态仿真不收敛不一定是算法问题Cadence里跑Bandgap瞬态仿真时经常遇到“Newton convergence failure”之类的报错或者仿真直接停在某个时间点不动。很多人第一反应是调整仿真算法把gear2换成trap或者减小maxstep。这些方法有时候管用但属于治标不治本。Bandgap瞬态不收敛的真正原因通常是电路里存在两个几乎等势的简并状态仿真器在寻找数值解时在两个状态之间来回切换迭代无法收敛。这本身就说明你的启动电路可能在某个中间电压、某个温度角下有启动能力不足的问题。遇到这种情况我的排查顺序是这样的先把VDD的上电时间拉长比如从10us改成100us看看是否还报错如果还报错再把温度固定到27度一个corner先跑通再逐步扩展到其他corner如果某个温度角下必然报错那基本可以确定是启动电路的驱动力在这个温度条件下不够要回原理图去找问题而不是和仿真器较劲。另外推荐一个非常实用的仿真技巧用DC扫描代替瞬态做启动能力摸底。将VDD从0扫描到额定值扫描步长取小一点比如1mV或5mV。如果扫描过程中出现电压跳变其实就是启动的“临界点”。这个临界点对应的VDD电压和后续实际工作点的建立情况能直接反映启动电路的性能边界。这个操作比反复跑瞬态快得多适合前期快速迭代。4.2 用Virtuoso快速定位启动电路问题定位启动问题有一个很直观的调试手法在Virtuoso里把启动管的源漏电流、栅极电压、运放输出节点电压、BJT集电极电压一起拉出来画在同一张图上观察上电过程中这几个信号的变化顺序。正常的启动过程应该是这样的电源上升→启动管导通→运放输出被拉向某个方向→环路开始建立→BJT支路电流出现→电流镜开始复制电流→运放进入线性工作区→启动管关断。如果图上发现某个节点一直“躺平”不动或者在某个电压附近来回震荡问题范围就缩小了。我还习惯用“分步启动”法做调试把启动电路晶体管的栅极电压固定到一个测试电压源上手动扫描这个电压观察主环路能否建立正常状态。这样可以把“启动电路能不能推动环路”这个探针和“环路自身能不能稳定”这两个考虑彻底分开。如果手动给定一个启动电压后环路能正常建立那问题是启动驱动力不够如果手动给定后环路依然无法建立那要回头检查主环路本身的设计比如环路增益不够、某些管子尺寸错误、BJT的连接方向接反了。Cadence里还有一个特别实用的功能Save All Node Voltages配合DC Operating Point查看器。在DC分析完成后逐节点看每一个关键管子的VGS、VDS、VTH值对比手算预期值。很多启动和偏置的隐患在DC工作点表里已经写得很明白了只是大多数人不习惯逐项去核。我给自己的要求是每个管子至少核对三个参数是否导通、VDS余量、电流是否在设计范围内。4.3 温度、工艺角和蒙特卡洛一个都不能少Bandgap设计最终要过PVT和蒙特卡洛两关。温度扫描是检查启动电路和偏置最有效的手段因为BJT的VBE温度系数是主导因素-40度到125度范围内VBE的变化超过200mV这对偏置电路的动态范围是有明显影响的。而且MOS管的阈值电压也有负温度系数高温下某些管子的漏电会急剧增大低温下启动管的导通能力会下降两个方向的失效模式都要专门验证。在Cadence里做Corner仿真建议用ADE XL把所有corner组合都配好加上MC和温度扫描一次性跑完。脚本批量跑比手动切换corner效率高得多。用Ocean脚本或者直接用ADE XL的corner setup把ss/tt/ff、电阻的res_typ/res_max/res_min、BJT的beta_typ/beta_max组合起来再多线程跑。蒙特卡洛在Bandgap里主要看两件事一是启动可靠性失配极端情况下启动管会不会在某个corner下推不动环路二是基准输出电压的分布这个分布直接决定你流片后的良率预期。MC跑500到1000个点看Vref分布的3σ范围如果超出设计规格要么改偏置电路降低敏感度要么调大版图上的匹配性设计比如采用common centroid布局和加dummy器件。5. Bandgap启动与偏置设计的检查清单整理了一份我在实际项目中用来把关的检查清单每一条都是踩过坑换来的。检查项方法通过标准启动能力慢上电tranVDD上升沿设1msVref正常建立启动能力快上电tranVDD上升沿设0.1usVref正常建立无过大过冲启动稳定后有无漏电稳定后50us查启动管漏端电流小于几十nA全corner启动ss/ff/tt × 高温/低温所有组合均能启动全corner偏置余量扫描VDD和温度查VDS-VDSAT所有工作区nsatMC失配仿真蒙特卡洛500点Vref 3σ在规格内电源抑制比AC仿真VDD注入AC带内增益远小于1环稳相位裕度stb分析含偏置环路相位裕度≥45度自偏置嵌套环路检查环路增益曲线无二次谐振峰每次项目进入Review阶段我都会对着这份清单过一遍。实测下来这套检查流程能拦住绝大多数会在流片后爆雷的问题。有些问题在单点仿真里根本看不出来但组合起来就是隐患。最后说一个我自己养成的习惯每次跑完仿真会把所有关键管子的工作点参数导出一份CSV存档标注好corner和温度条件。这样一旦后续有测试数据回来对不上我能第一时间回到设计环境里复现而不是靠记忆去猜当时的仿真条件。Bandgap的启动和偏置设计考验的不只是理论功底更是对细节的掌控力。把上面这些坑都填上流片回来一次点亮就不是什么玄学。