开头先聊个现象。带隙基准(Bandgap Reference)在模拟IC里属于那种“原理图三分钟、落地全是坑”的模块。教科书上两页纸就能推完:一个运放、两个BJT、一串电阻,正温度系数和负温度系数一拼,输出约1.2V,理论温漂为0。可真到流片回来测数据,温度从-40℃扫到125℃,你大概率会发现实测温漂曲线跟仿真差了一截,有的批次甚至在低温段掉了十几毫伏,电源拉偏10%输出跟着漂,个别芯片换到高温下干脆就没输出了。这些现象,核心都指向带隙基准的非理想因素。这篇文章就把我在模拟IC里调带隙基准时经常碰到的非理想来源、量化影响以及对应解决办法整理一遍,适合正在做bandgap项目的模拟设计工程师,也适合刚要接触基准模块的研究生,内容偏工程实践,仿真环境照着搭就能复现。
1. 先搞清楚带隙基准到底在补偿什么
1.1 Vbe、PTAT与“一阶魔法”
带隙基准能稳定输出,靠的是把两个温度系数符号相反的电压拼在一起。BJT的基极-发射极电压Vbe随温度升高而下降,典型斜率约-1.8mV/℃,这是负温度系数;两个不同电流密度下的BJT,其Vbe之差ΔVbe=kT/q*ln(N),随温度升高而线性上升,常温附近斜率约+0.087mV/℃(N是电流密度比),这是正温度系数。
把ΔVbe放大一定倍数,再跟Vbe相加,一阶项就能抵消掉。输出电压表达式写成:
Vref = Vbe + (R2/R1)·kT/q·ln(N)
其中R2/R1是电阻比例,N是两个BJT的电流密度比。为了让一阶温度系数在常温附近为0,通常会把(R2/R1)·ln(N)做到17~22之间。比如取N=8,ln(N)=2.08,那R2/R1就得在8~10附近,这是一个常用设计区间。
但注意,这个表达式是“一阶抵消”的理想模型。实际芯片里,Vbe本身包含二阶、三阶温度项,电阻有温度系数,运放有失调,BJT有工艺偏差,电源电压还会压缩偏置。任何一个环节偏离理想假设,最终温漂曲线就会从“一条水平线”变成“一条抛物线”,甚至在两端翘得更狠。
1.2 从电路看非理想因素从哪进来
把带隙基准拆开,你能看到四个主要子系统:BJT核心、运算放大器、电阻网络、启动与偏置电路。非理想因素就从这四个节点,以四种不同“形态”侵蚀精度:
- 运放的输入失调电压Vos会直接串入反馈环路,被电阻比例放大后出现在输出端。
- 电源到输出的PSRR有限,电源纹波和DC漂移会泄漏到基准上。
- Vbe的高阶温度项和电阻的温度系数,会让一阶补偿之后留下“残余曲率”。
- 工艺偏差导致BJT的Vbe绝对值、电阻绝对值、以及电流镜比例偏移,表现为批次间输出分布太宽。
这几类问题不是独立的。你压了失调,可能把噪声折进去;你改了电阻类型,温漂系数又会跟着变。所以做带隙基准,本质上是在几个约束之间做权衡,先分清主次再动手,比上来就猛加电路要靠谱得多。
2. 五种非理想因素的机理与影响量化
2.1 运放失调电压——最大的“隐形成分”
MOS管的阈值电压Vth失配、栅氧厚度涨落、沟道长度调制效应,都会贡献运放输入级的Vos。CMOS工艺里,常规尺寸下运放的Vos典型值在1mV到10mV之间,具体数值跟面积和工艺density有关。为什么在带隙基准里特别要命?因为失调电压不是只加在输出端、直接偏移一点那么简单,它会被电阻比例放大后进入ΔVbe路径,相当于直接扭曲了PTAT电压的斜率。
拿上文的经典表达式做估算。假设置有Vos的模型,则:
Vref = Vbe + (R2/R1)·(ΔVbe + Vos)
R2/R1通常在8~10,Vos=5mV的话,输出就会多出40~50mV。这个偏移本身可以用trim修掉一部分,麻烦的是Vos还有温度漂移。CMOS差分对的Vos温度漂移大约是1~2µV/℃,乘10倍到输出就是10~20µV/℃,折算到1.2V参考上,等于8~16ppm/℃的温漂增量。如果你的目标spec是10ppm/℃以内,一条失调漂移就快吃满预算了。
要理解为什么失调对温漂的杀伤力这么大,可以从环路增益角度看。带隙运放工作在深度负反馈下,但Vos位于运放输入端,它不受环路增益抑制,而是像输入信号一样直接被放大。所以无论运放增益多高,都救不了失调。这也是为什么后续处理失调需要靠chopper、auto-zero或者trimming,而不是单纯提高增益。
2.2 电源抑制比(PSRR)不足
带隙基准通常工作在有一定纹波的电源环境下,尤其是车载、工业电源系统里,低频纹波和负载突变造成的毛刺都很大。PSRR(电源抑制比)定义是电源电压变化对输出电压的泄漏比例,理想为无穷大,实际值要靠电路结构撑起来。
带隙里的PSRR有几个天然短板。一是BJT的Vbe本身受电源影响很小,但PTAT电流产生支路上的电流镜如果沟道长度不够,Early电压会让镜像电流随电源电压变化,ΔVbe随之抖动。二是运放的电源抑制能力有限,运放电源端扰动会通过差分对的漏源电阻洄灌到输出。三是电阻分压网络与电源之间没有隔离,如果基准输出直接接了一串电阻到电源,那么电源噪声会分压进入反馈节点。
低频时,PSRR主要由环路增益决定。你可以用仿真直接看环路增益曲线,在1kHz以内通常能做到60~80dB以上。高频段,环路增益下降,PSRR也随之变差,通常要依靠输出级的RC滤波或LDO前级来兜底。如果带隙是给ADC、PLL用的,建议至少对100kHz以内的PSRR做一次全corner扫描,避免在某个温度点上电源抑制退化到20dB以下。
2.3 Vbe的温度曲率——二阶乃至高阶误差
一阶补偿抵消了Vbe的线性温度项,但Vbe本身的长相是:
Vbe(T) = VG0 - (VG0 - Vbe0)·(T/T0) - (η-m)·VT·ln(T/T0)
最后一项里的ln(T/T0)是“曲率”项。η是硅的迁移率温度指数,通常3~4;m是BJT集电极电流的温度指数,与电流源类型有关。这一项带来的非线性,会让温漂曲线呈现“上凸”或“下凹”的形态,常温附近温漂最小,低温或高温段偏差变大。实测中,典型一阶补偿曲线在-40℃~125℃范围内,总温漂大约在30~80ppm/℃量级,这就是曲率未消除的结果。
那为什么不能靠反复调R2/R1把温度曲线压平?因为R2/R1只改变线性PTAT增益,它能把常温中心附近压平,但无法改变曲线的弯曲方向。要压掉弯曲,必须叠加一个与T·ln(T/T0)形状相符的高阶电流或电压信号,这就是曲率补偿要干的事。
2.4 工艺偏差:电阻、BJT与修调窗口
工艺偏差是另一个大头,它不像失调那样只影响一点,而是影响整批芯片的基准电压分布。首先是Vbe绝对值。BJT的Vbe取决于基区掺杂浓度、发射极面积和工艺温度,不同批次间能差±30~50mV。Vbe一旦变了,即使PTAT项很精准,输出也会整段偏移。
电阻的影响更隐蔽。带隙输出电压是Vbe + (R2/R1)·ΔVbe,R2/R1这个比例很准,但两种电阻的温度系数可能不匹配。比如R1用的是高阻poly,R2用的是p+ poly,两种材料的温度系数分别是-500ppm/℃和+200ppm/℃,那R2/R1就会随温度变化,等效给PTAT项加了一个温漂包络。设计时最好让R1和R2尽量用同类型、同温度系数的电阻,或者把敏感电阻放在同一工艺层里,避免引入额外温差。
从精度分配角度看,Vbe偏差决定输出绝对值分布宽度,电阻比例偏差决定温漂中心的偏移,失调额外增加随机偏移。量产时通常会留出修调窗口,用来覆盖这三部分的总和。常见做法是输出端电阻串留5~8个bit的修调位,步长0.5%~1%,覆盖范围>5%,对应大约60~120mV的可调范围。
2.5 容易被忽略的β、漏电与机械应力
寄生PNP的电流增益β在CMOS工艺里并不高,低温时可能掉到1~3,高温时会回升到10~30。如果基极驱动电流设计不足,β过低会让带隙“拉不动”输出电流,Vref在高负载下会下跌。另一个藏在暗处的问题是漏电流。ESD保护环、封装材料里的离子沾污、以及高温下的反偏PN结漏电,都会在基准节点上叠加一个额外电流,拉偏Vbe。高温125℃时,一个pA级别的漏电就能让高阻抗节点产生mV级偏移。
机械应力同样值得提。模封料在固化过程和温度循环中会对芯片施加不均匀应力,BJT基区应力会改变Vbe,多晶电阻的压阻效应会改变电阻值。设计上可以在敏感器件周围加dummy环,版图尽量对称,降低应力梯度带来的偏差。
3. 针对非理想因素的工程应对方案
3.1 失调消除:面积、Trim、Chopper怎么选
处理失调,首先要面对一个不等式关系:失调电压大约与有源区面积的平方根成反比。把差分对面积放大4倍,Vos大概能降一半。但面积上去之后输入电容变大,运放带宽下降,功耗和版图面积也会跟着涨。所以纯靠面积去压Vos,在量产芯片里不现实。
工程上最常用的是trim修调。在晶圆测试阶段,对每颗芯片读一次Vref,看它跟目标值的偏差,决定要不要熔断保险丝或写入片上OTP寄存器,调整电阻分压比。calibration精度做到0.5%左右,可以把失调和Vbe工艺漂移一次性拉到很小。注意,trim解决的是“静态误差”,Vos随温度的漂移、长时间使用后的老化漂移,trim是修不掉的。
如果需要把时间漂移和温度漂移也压掉,就要用动态失调消除。chopper和auto-zero是两种主流方案。chopper的原理是把低频失调和1/f噪声调制到时钟频率,再用低通滤波把它们滤掉;auto-zero是采样失调并在后续阶段扣除掉。在带隙基准里,chopper用得更多,因为基准输出是直流信号,后级加个RC低通不仅滤掉了纹波,也不会影响直流精度。
chopper在bandgap里落地时要注意调制纹波。斩波开关把Vos搬到斩波频率处,如果后级滤波不够,输出会迭加一个与斩波频率同频的纹波。这个纹波通常用两级RC滤除,代价是建立时间变长。斩波频率一般选几十kHz到几百kHz,要远高于1/f噪声转角频率,又不能让开关电荷注入影响运放稳定。我的经验是先看运放1/f噪声拐角频率在哪,再定斩波时钟,一般至少比拐角高5~10倍。
3.2 PSRR提升的三种手段
低PSRR的根源是环路增益不足和电源泄漏通路太多。提升PSRR可以分三级去逐段加固。
第一级是电源预稳压。在bandgap前面加一个LDO,或者从系统里已有的更干净电源取电,是最省事的做法。很多SoC会把bandgap直接接在LDO输出后面,用LDO的70~80dB PSRR先把电源纹波压下去。注意LDO的环路带宽要足够宽,如果LDO的PSRR在100kHz以后掉得很快,高频纹波照样会串进来。
第二级是提高运放自身电源抑制能力。差分对管和电流镜的cascode器件能显著降低电源对漏极电流的扰动。尤其电流镜里,用高增益cascode结构能把镜像电流的电源敏感度压低一个数量级以上。运放的偏置电流源也要尽量做成与电源无关的结构,否则电源一变,尾电流变了,Vos和Vbe偏置点都会漂。
第三级是输出阻抗和滤波。在基准的输出端串一个小电阻加一个大电容,形成低通极点,可以把带外噪声和残余纹波压住。代价是输出阻抗上升,电容负载下环路稳定性需要重新检查。
仿真时建议直接给VDD叠加一个交流扫频源,扫1Hz到10MHz,看Vref端的PSRR曲线。同时把corner切到ss和温度125℃这种偏弱工作点,这时环路增益最低,PSRR最容易恶化。
3.3 曲率补偿的主流做法
曲线弯曲来自Vbe的T·ln(T/T0)项,思路是产生一个形状匹配的附加电压或电流,把它反相加回去。最经典的方法是“二阶曲率补偿”:在基准电流里叠加一路与温度二次方成正比的电流源,从BJT支路抽走或注入,从而修正Vbe的弯曲项。实现上多用几个工作在亚阈值区的MOS管,利用其ID-VGS指数特性去“等比例复制”bania温度行为。这种做法的代价是电路复杂度上升,需要额外偏置,且对亚阈值MOS的失配很敏感。
另一类更耐用的是“分段线性补偿”。它不追求完美复现曲率曲线,而是把温度范围分成低温段和高温段,在不同段分别打开补偿电流。比如低于常温时,开启一个随温度降低而增大的补偿电流,把低温端的下跌拉回来;高于常温时,再开启另一个方向的补偿电流,把高温端压下去。分段补偿的优势是鲁棒性强,补偿点可以用两三路比较器配合bandgap输出电压自己产生,不依赖深亚阈值器件的匹配。
还有一类精度更高的做法是做beta-compensated结构,专门针对BJT电流增益β随温度变化引起的误差。用电路让本身流过BJT发射极的电流按β的方式变化,抵消β对基极电流的损耗。这个方法在精密基准里很常见,但面积和功耗较高,适合对功耗不敏感的参考源。
实际项目里,我一般先把一阶补偿做好,仿真跑完温漂,看看曲线是哪一段翘得最明显,再决定加曲率补偿还是分段补偿。如果目标是20ppm/℃以内,先上一阶加trim,大概率就够了;只有要把温漂压到5ppm/℃以下,才值得认真做曲率补偿。曲线形状和corner分布如果显示一致性不好,多半是电阻层温漂差异带来的,先换同材质电阻再谈补偿。
3.4 修调策略与版图细节
修调要有清晰的目标和流程。常见策略是常温修Vref绝对值,高温/低温修温度系数。具体做法是:先在常温25℃读取Vref,如果偏离目标值,就调整电阻分压比例,把绝对值拉平;然后在高温125℃和低温-40℃分别读取Vref,算出两个点相对25℃的偏差,再调节PTAT增益电阻,让高温和低温的偏差尽量对称。这样跑一遍,可以把trim bit数在7~8bit以内控制好,不必要每个芯片都做两段标定。
版图细节是另一个决定成败的点。电阻串要做成common centroid结构,并用dummy电阻包一圈,保证边界刻蚀速率一致。BJT对用交叉对称结构,中间放虚拟发射极。运放输入对要靠近BJT放置,避免热梯度差异转化为失调误差。关键信号线要用地线和电源线包住,减少衬底串扰。
在金属层选择上,基准走线尽量用高层金属,更低的对底噪声耦合更弱。如果你的芯片里还有数字模块,建议在带隙周围加一圈Guard Ring,把数字开关噪声挡在环外。这些版图手段看着不起眼,但做得好不好,直接决定量产良率和高低温测试通过率。
3.5 关于仿真与建模的补充
仿真不能只跑typ corner。带隙基准的精度受corner影响极度明显,模拟环境里要把tt/ff/ss/fs/sf都跑一遍,加上电阻和BJT的独立corner,再叠加失调Monte Carlo。有个容易漏的地方是:很多标准工艺PDK里BJT模型在低温段精度一般,仿真出来的低温Vbe掉得可能比实测少,导致低温补偿设计不足。有条件的话,在-40℃温度点对照foundry实测数据做一次模型修正。
另外,运放的噪声也要跟带隙噪声一起看。带隙输出噪声谱密度通常在100nV/√Hz到1µV/√Hz量级,主要噪声源是BJT的基极散粒噪声、运放输入对的热噪声和1/f噪声。如果做chopper,1/f噪声会被抑制,但斩波开关的沟道热噪声需要控制开关尺寸。在仿真里直接看输出噪声密度曲线,再把积分带宽乘以实际后级滤波带宽,就能估算出最终噪声贡献。
4. 从仿真到流片:常见问题与排查实录
4.1 启动失败、振荡和校准点漂移
带隙基准启动问题在仿真里反而不容易发现,因为模拟器通常默认所有节点初始条件都合理,但实际电路上电时,环路可能停在零点附近的简并态,输出为0V。所以设计里一定要加启动电路,让它在检测到输出为零或接近零时,注入一个额外电流把环路拖到正常工作点。
排查时可以先看输出是否卡在某个非目标电平上,比如Vref=0.6V或等于电源电压,多半是启动电路没有触发或触发阈值设得不对。另一个容易遇到的问题是运放振荡,尤其加了chopper之后,调制频率比较高,运放相位裕度容易被开关电容负载压掉。处理办法是给chopper运放的输出端加一个Miller电容稳定,或者把斩波频率降低。
校准点漂移也是一个实际项目里的高频问题。晶圆测试时修调好的Vref,封装之后重新测,发现偏移了几个mV。这不是修调失效,而是封装应力改变了BJT的Vbe和电阻值。解决方式是修调流程里加一道“封装后校准”:先封装,再第二次读值,如果偏差超限就再写一次trim。很多车规级芯片就是这么干的,多一次校准成本,但换来的是量产一致性。
4.2 实测问题速查表
我在几个项目里把遇到的典型问题和排查方向整理成了表,下面这些是反复出现的类型:
| 现象 | 可能原因 | 排查建议 |
|---|---|---|
| 高低温柔漂曲线对称上翘 | 曲率未补偿 | 确认是否需要二阶补偿,检查电阻温度系数匹配 |
| 低温输出严重偏低 | BJT β太低、基极驱动不足 | 检查BJT驱动电流,考虑β-compensated结构 |
| 电源电压变化时输出跟着变 | PSRR不足 | 扫频率看PSRR曲线,检查cascode和偏置 |
| 输出有周期纹波 | 斩波纹波泄漏 | 检查斩波频率与后级滤波极点,增大RC或降低斩波频率 |
| 不同批次输出分布过宽 | Vbe工艺漂移、修调精度不足 | 增加trim bit,修正修调策略 |
| 高温空载输出漂移 | 漏电、封装离子沾污 | 加强Guard Ring,检查ESD环漏电,高温下做老化验证 |
| 小批量一致性差 | 版图匹配差、机械应力不均 | 重做common centroid,加dummy,检查封装应力 |
每条都可以继续往下深挖,但思路很明确:先看温度曲线形状,再判断是线性误差还是非线性误差;先看电源扫描,再判断是PSRR还是偏置点问题;最后再上噪声和稳定性分析。不要一上来就怀疑电路拓扑,很多时候问题出在偏置和版图上。
4.3 个人经验总结
带隙基准调试很像打靶:火力覆盖得越多,越难找到哪一枪打中的。真正高效的做法是每次只改一个变量,快速定位问题。我习惯的流程是:第一步跑全corner温漂,看曲线整体形态;第二步跑失调Monte Carlo,看随机分布宽度;第三步扫VDD,看PSRR表现;第四步才是动电路结构。
从零开始做新项目的话,建议先把一阶补偿做到极限:电阻比例调试平直、运放失调做到最低、版图匹配合规。你会发现很多时候一阶做得够好,就已经能满足80%的应用场景。曲率补偿和chopper是锦上添花的进阶选项,但它们对电路稳定性和调试复杂度的影响是实实在在的,新手项目里不如先用最朴素的结构把流程跑通。
最后分享一个小技巧:做bandgap仿真时,除了看温漂曲线和PSRR曲线,把BJT的Vbe、ΔVbe、以及运放输入对的Vos分别拉出来看,能帮你快速定位是哪个环节在“拖后腿”。这个习惯帮我省了特别多查bug的时间,强烈建议养成。