Bandgap启动电路与偏置电路设计实战:Cadence仿真避坑指南
2026/9/24 11:52:55 网站建设 项目流程

搞过模拟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/L=1u/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.6V+0.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启动与偏置设计的检查清单

整理了一份我在实际项目中用来把关的检查清单,每一条都是踩过坑换来的。

检查项方法通过标准
启动能力(慢上电)tran,VDD上升沿设1msVref正常建立
启动能力(快上电)tran,VDD上升沿设0.1usVref正常建立,无过大过冲
启动稳定后有无漏电稳定后50us查启动管漏端电流小于几十nA
全corner启动ss/ff/tt × 高温/低温所有组合均能启动
全corner偏置余量扫描VDD和温度查VDS-VDSAT所有工作区nsat
MC失配仿真蒙特卡洛500点Vref 3σ在规格内
电源抑制比AC仿真VDD注入AC带内增益远小于1
环稳相位裕度stb分析含偏置环路相位裕度≥45度
自偏置嵌套环路检查环路增益曲线无二次谐振峰

每次项目进入Review阶段,我都会对着这份清单过一遍。实测下来,这套检查流程能拦住绝大多数会在流片后爆雷的问题。有些问题在单点仿真里根本看不出来,但组合起来就是隐患。

最后说一个我自己养成的习惯:每次跑完仿真,会把所有关键管子的工作点参数导出一份CSV存档,标注好corner和温度条件。这样一旦后续有测试数据回来对不上,我能第一时间回到设计环境里复现,而不是靠记忆去猜当时的仿真条件。Bandgap的启动和偏置设计,考验的不只是理论功底,更是对细节的掌控力。把上面这些坑都填上,流片回来一次点亮就不是什么玄学。

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

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

立即咨询