
前面的铺垫如果你已经走完了那么你手里现在应该有一个能跑出近似1.2V输出、温漂在30~60ppm/°C量级的一阶带隙基准。这时候你大概率会盯着仿真曲线发呆室温附近还行可一到低温或者高温端输出电压就开始往下弯整条曲线像个拱桥。这就是一阶补偿没压住的高阶温度项也就是VBE中那个不能被“线性PTAT电压”抵消掉的部分。这篇我们就干两件事第一把这个“拱桥”怎么掰平——高阶温度补偿第二把另一个绕不开的坑填掉——启动电路。前者解决精度后者解决“上电死锁”两个都是带隙基准能真正交给后端、送去流片的关键。1. 先看透一阶带隙的温漂它到底为什么弯1.1 VBE的高阶温度项从哪来模拟IC课程里通常把VBE的温度特性写成近似线性大约-1.5到-2mV/°C。但那是为了推导方便做的简化。更完整的表达式长这样VBE(T) VG0 - [VG0 - VBE(T0)] × (T/T0) - (η - α) × VT × ln(T/T0)其中VG0是硅在0K温度下的外推能隙电压大约1.205Vη是工艺相关的常数通常在3到4之间α是流过BJT的电流温度指数——如果是PTAT电流α1如果是与温度无关的恒定电流α0。关键就在最后一项(η - α) × VT × ln(T/T0)。这一项并不是温度的线性函数VT本身随T线性增长乘上ln(T/T0)整体在远离T0时表现出明显的弯曲趋势。一阶补偿的核心——用ΔVBE VT × ln(N)产生线性PTAT电压——只能抵消VBE中的线性项对ln(T/T0)这种非线性无能为力。于是输出曲线就在你面前弯成了拱形。我记得第一次在仿真里看到这条曲线时第一反应是“是不是电阻温度系数没设对”折腾半天才发现即使把电阻设成理想零温度系数拱形依然存在。这就是高阶项的威力藏得很深但绕不过去。1.2 一阶补偿后还剩多少残余曲率拿典型的0.18μm工艺BJT来说VBE在-40°C时大概有0.85V到125°C只剩0.45V左右平均温度系数在-1.8mV/°C上下。一阶补偿电阻比调好后输出大约在室温处达到峰值然后往两边掉。量化一下如果一阶bandgap在-40°C到125°C范围内输出电压的峰峰值波动大约是5到15mV除以1.2V的基准电压和165°C的温度范围温度系数就是25到75ppm/°C。这个量级在一般民用场景能用但你要做工业级、车规级或者高精度ADC的基准就远远不够了。而且拱形曲线的形状不是规则抛物线——低温端斜率通常比高温端更陡因为ln(T/T0)在T远小于T0时的变化速率更快。这意味着你很难用单个二次项去完美补偿它得用分段或者更高阶的方式去“追”。2. 高阶温度补偿的四条技术路线2.1 分段线性补偿折线法——最实用思路非常简单把温度范围切成几段每一段叠加一个不同斜率的补偿电流或补偿电压。比如高温段60到125°C输出往下掉我就往输出支路注入一个随温度线性增大的电流低温段-40到10°C输出往下掉再注入一个随温度升高而减小的电流。它的核心优势是“可控性强”转折点温度可以精确设定每一段的补偿斜率可以独立调节不会像其他方法那样牵一发动全身。对入门者来说这是最容易被直觉理解、也最容易通过仿真调到位的方案。缺点是需要产生几个参与比较的电流电路面积和静态功耗会有一定增加但通常能接受。2.2 利用ΔVBE的非线性项——理论最优但工艺敏感如果我们仔细观察ΔVBE VT × ln(N)会发现当两个BJT的电流密度比N本身也随温度变化时ΔVBE里就会产生高阶项。比如让两个BJT的偏置电流分别是PTAT和恒定电流那么它们的VBE之差就不再是纯线性的PTAT电压而是包含了ln(T/T0)成分。这种“非线性ΔVBE”如果能做到和VBE的高阶项系数匹配理论上可以一次补偿到位不需要分段。难点在于η的值在不同工艺角、不同BJT模型下会飘一旦飘了补偿效果就跟着飘。我在实际项目里很少把它作为唯一补偿手段更多是配合分段补偿一起用提供一部分基础曲率抵消。2.3 亚阈值MOS管指数补偿——适合低功耗工作在亚阈值区的MOS管其漏电流与栅源电压呈指数关系。而BJT的VBE高阶项本质上也和温度呈某种指数关系。如果让亚阈值MOS管的栅源电压跟随某个带隙节点电压它就能产生一条“弯曲方向”与残余曲率相反的指数电流曲线。这个方案最大的卖点是功耗低因为亚阈值电流做得很小额外消耗可以控制在微安以下。但缺点是亚阈值区工艺偏差大、模型精度一般设计出来之后散度问题比较棘手通常也需要配合trimming电路使用。2.4 电阻温度系数补偿——最隐蔽的帮手多晶硅电阻、扩散电阻、高阻多晶硅电阻的温度系数各不相同不仅一阶系数不同二阶系数也不同。利用这一点可以在带隙核心中采用不同TC电阻的“组合”使得输出的等效电阻比例随温度变化从而产生一个微小的“曲率修正”。这个方法经常被人忽略因为它不是独立的补偿支路而是融化在主环路的设计里。对于0到1.5V电源的电流模基准来说尤其好用——因为你本来就要用电阻把电流转成电压顺手就能做补偿。缺点是电阻的TC在生产批次间会有波动最好配合trimming。对比一下这四条路线的特点方案电路复杂度功耗代价精度潜力工艺敏感性适合场景分段线性中中高中工程首选最推荐入门非线性ΔVBE低低中高理论向需配合校准亚阈值指数中低极低中高低功耗场景电阻TC组合低无中低中作为辅助手段我个人的结论是如果只选一套方案来学选分段线性补偿。它把“补偿”这件事做成了一系列可以量化的步骤方便你在仿真器里一步步逼近最优解。3. 分段式高阶补偿电路设计与参数标定3.1 电路结构电流比较与单向传递要做分段线性补偿得先有一个“温度转折点检测机制”。怎么检测温度在带隙基准里最现成的温度传感器就是I_PTAT。它随温度线性上升拿它跟一个参考电流比就能得到“温度是否越过某个阈值”的数字式判断。具体实现我用的方法是从主环路的PTAT支路复制一份I_PTAT_AUX同时复制一份VBE支路的电流I_CTAT_AUX。用I_PTAT_AUX和I_CTAT_AUX做电流比较。因为I_PTAT随温度上升I_CTAT随温度下降所以必然存在一个温度点Tc在这个点上两者相等高于Tc时I_PTAT更大低于Tc时I_CTAT更大。比较结果通过一个“单向电流传递结构”来提取高温补偿当I_PTAT_AUX I_CTAT_AUX时多余的电流ΔI_H I_PTAT_AUX - I_CTAT_AUX通过一对电流镜复制到输出支路。这样在高温段输出电流多了一个随温度增大的分量。低温补偿反过来当I_CTAT_AUX I_PTAT_AUX时多余的电流ΔI_L I_CTAT_AUX - I_PTAT_AUX被复制到输出支路。在低温段输出电流多了一个随温度降低而增大的分量。要强调的是补偿电流必须注入到“输出电流求和支路”不要注入到BJT的发射极节点。如果直接注入核心BJT节点会改变BJT的偏置电流进而改变ΔVBE和VBE的温度特性反而破坏一阶补偿。电流模结构Banba型带隙在这里有天然优势——输出本身就是电流求和加一路补偿电流非常自然。3.2 转折点与补偿斜率怎么标定这是整个高阶补偿设计里最需要耐心的一步也是新手最容易卡住的地方。标定分三步第一步跑一次不加入补偿的完整一阶温度仿真得到VREF(T)曲线。把曲线分成三段低温段-40到约15°C、中间段15到约60°C、高温段60到125°C。分别记录低温段的平均斜率K_L单位mV/°C和高温段的平均斜率K_H。第二步计算所需补偿电流斜率。假设输出电阻是R_OUT那么高温段需要补偿电流满足ΔI_comp_H × R_OUT -K_H × (T - T_H0)也就是补偿电流的温度斜率应该等于dI_comp_H / dT -K_H / R_OUT举个例子如果高温段输出斜率为-0.04mV/°CR_OUT是100kΩ那补偿电流斜率需要0.4nA/°C。这个数值不大但可以精确算出来。第三步把补偿电路中的电流镜比例、比较电流比例、温度转折点参数代进去设定初始值跑一轮仿真再微调。一般两到三轮迭代就能收敛。转折点温度的选择也有讲究。我习惯让高温补偿转折点放在55到70°C之间低温补偿转折点放在0到15°C之间。这样中间留出一段“纯一阶”区间避免两个补偿支路在室温附近互相干扰。3.3 仿真效果评估与过补偿风险加完补偿之后VREF(T)曲线会从“拱桥”变成“折线桥”。如果补偿斜率和残余曲率刚好匹配整个温度范围内的峰峰值可以从十几毫伏压到两三毫伏以内。但这里必须警惕“过补偿”。补偿过头时曲线会变成W形——中间凸、两边翘反而比不补偿还差。原因是分段补偿只有线性斜率而真实曲率是非线性的在一个区段内只能近似匹配。换句话说折线法在原理上就不可能做到“完美”只能逼近。我的经验是分段补偿设计时宁可欠补偿15%到20%再靠trimming电阻微调。因为欠补偿的方向是确定的调整单调过补偿之后你有时候分不清到底该调转折点还是调斜率debug难度会上升一个量级。 提示仿真时把温度步长设成5°C以内尤其是在转折点附近。步长太大会让你误判转折点和补偿斜率的效果。4. 启动电路再稳的基准上电锁死也白搭4.1 简并点是怎么回事带隙基准的核心环路存在不止一个静态工作点。一个是我们要的正常解BJT导通VEB约0.6到0.8V电流镜有电流流过输出VREF正常。另一个是“零电流”解所有BJT和MOS管都截止所有节点电压为0环路方程同样成立。为什么零电流也会成立因为环路本身是自洽的——电流为零时没有电压建立运放输入差为零运放输出端停在某个状态而该状态又维持着电流为零。环路没有足够大的扰动来把这个状态推开于是电路一上电就死锁在0电流。这就像家里的大门开了但人站在原地不动——不是走不出去是没人推他。4.2 核心节点怎么选启动管怎么设计启动电路的思路本质就一句话检测“电路是否已经离开零电流状态”如果没离开就注入一点电流打破平衡一旦检测到正常工作立即把这条“拐杖”撤掉。在Banba结构中最好的检测节点是运放输入端那个“正常时应为VEB”的节点。零电流时它是0V正常工作时它大约0.6到0.8V两个状态差异非常大阈值判断很容易设计。我常用的一个结构是这样的一个NMOS检测管Mn_st栅极接上述核心节点源极通过一个小电阻接地漏极接一个PMOS电流镜的栅极。当核心节点为0V时Mn_st截止PMOS电流镜的栅极被电阻上拉到地电位不对这里极性要想清楚——PMOS电流镜的栅极应该被拉到低电位导通一旦Mn_st导通PMOS栅极被拉高电流镜关断。具体极性可以这么理电流镜管是PMOS它的源极接电源。要让它在“电路未启动”时向核心注入电流栅极电压应该处于低位即Mn_st截止时PMOS栅极被下拉到地当电路正常启动后核心节点电压VEB升高Mn_st导通把PMOS栅极拉向电源PMOS关闭。4.3 参数选择与边界条件启动管Mn_st的尺寸很关键。它的作用不是输出多大电流而是提供足够的“干扰”让环路自己爬起来。启动电流选主偏置电流的5%到20%就够。太大会在启动完成之后残留明显的静态电流影响温度和功耗指标太小又可能在慢上电或弱工艺角下触发不了。Mn_st的阈值电压匹配也要认真看。我要保证在任何工艺角、任何温度下核心节点0V时它能可靠截止VEB正常时它能可靠导通。这里的余量通常只有0.2到0.3V所以一定要做全角验证。启动注入点也要选好。我一般注入到主电流镜的栅极节点而不是直接打BJT的基极或发射极。原因是电流镜栅极的阻抗高一点点电荷就能把栅压拉开效率最高而且一但主电流镜开始有电流环路的正反馈会自动接管把整个电路拉到正常工作点。5. 启动电路的仿真验证与鲁棒性检查5.1 上电瞬态仿真所有节点初始化为0验证启动电路最直接的方法是把带隙核心的所有节点初始电压设置为0然后给电源一个阶跃看电路能不能自己爬起来。这是最严格的启动条件如果通过说明设计在“最不利上电”情况下也能工作。瞬态仿真时我会把仿真停止时间设置到足够长通常到几十微秒确保不仅能看到启动还能看到启动后的稳定过程。如果电路能爬到预设的基准电压附近并且没有明显的回退或振荡说明启动成功。5.2 爬坡速度扫描与全工艺角覆盖上电方式千差万别——系统上电可能是微秒级慢的甚至到毫秒级、秒级。电源爬坡速度不同启动电路的行为差异很大。快爬坡时电路节点电压跟随电源可能会让检测管误动作慢爬坡时节点电压被拉低的时间更长启动管可能在半导通状态停留很久。我的验证矩阵很简单100ns、1μs、10μs、1ms、10ms五档爬坡时间三个工艺角tt/ff/ss三个温度-40°C、27°C、125°C总共45个组合全部跑一遍。跑完看一眼有没有任何组合上电后锁死在零电流或半导通状态。只要有一个组合失败就要回头调启动管的阈值匹配和启动电流大小。5.3 电源跌落恢复与短路恢复除了正常上电还要验证一种更现实的情况系统运行中电源瞬时跌落或者基准输出被外部短路之后电源恢复。这种时候电路也必须能从异常状态恢复过来。仿真方法不复杂把电源在某个时刻拉低到0.5V以下几十微秒再拉回看基准输出能否重新建立或者给输出节点加一个脉冲电流模拟短路撤掉之后看恢复情况。我遇到的很多启动电路问题都是在这种“二次上电”场景暴露的因为此时节点上残留的电荷状态和冷启动完全不同检测管可能会误认为电路已启动而拒绝提供拐杖。6. 常见问题速查这些坑我基本都踩过现象可能原因排查与对策上电后输出一直为0V启动管阈值余量不足或者启动注入电流太小检查所有corner下检测节点的0V和VEB差值增大启动电流到主偏置的10%以上快爬坡能启动、慢爬坡锁死慢速上电时启动管长期处于亚导通区未能形成有效正反馈减小检测管源级负反馈电阻提高启动管在低栅压下的导通速度加入补偿后曲线变成W形补偿斜率大于残余曲率补偿过头减小补偿电流镜比例或者增加输出电阻值降低补偿增益高温段补偿效果变差BJT电流增益β在高温下退化核心电流变化检查主环路BJT偏置是否稳定必要时用较大尺寸BJT或增加电流启动完成后基准有小幅毛刺启动管未完全关断漏电干扰主环路增大检测管源级负反馈电阻或增加启动管关断电压余量补偿效果随批次偏差极大补偿电阻与主路电阻类型不匹配统一补偿电阻与主环路电阻的材料和方块阻值保持温度系数一致6.1 关于补偿和启动的几个经验细节写到这里有几条经验必须单独拎出来说。第一条高阶补偿电路的电阻匹配要比一阶主路严格得多。补偿电流的精度直接取决于I_PTAT_AUX和I_CTAT_AUX的比值而这两个电流来自各自支路的电阻。如果电阻布局距离远、类型不一致温度系数差一点补偿转折点就会漂移几十度整个补偿效果直接消失。我一般把补偿电阻和主路电阻摆在一起用同一类型电阻四周加dummy。第二条启动电路的“完成判断”要留足迟滞或者至少保证正常工作时检测管有明确的关断状态。如果启动管正常工作后还处于弱导通区它的漏电流会随温度和电源电压变化最终成为一个额外的、不受控的负载导致基准输出的温度曲线在常温附近出现毛毛糙糙的波动。第三条BJT阵列在高阶补偿设计中的地位更高了。补偿电路往往要复制多份电流而电流镜精度依赖BJT或者MOS管的匹配。版图上所有参与电流镜像的管子最好都采用共质心布局BJT加dummy管用金属屏蔽关键走线。我见过太多设计在post-layout仿真时才发现补偿效果和原理图仿真差了十万八千里最后全部揪到版图匹配上。6.2 从一阶到高阶的一点体会高阶温度补偿和启动电路这两个主题加起来其实是带隙基准设计里“从能用到好用”的分水岭。一阶电路能跑不代表它能在系统的各个角落都可靠工作。启动电路决定了下限——电路能不能活着高阶补偿决定了上限——电路活得好不好。如果你正在做自己的第一个带隙基准我的建议是先别急着把补偿做到极致。先把一阶电路在全部corner、温度、上电条件下跑稳再坐下来研究补偿斜率怎么标定。这两个问题虽然听着都是“温度”但调试起来完全是两套逻辑混在一起排查问题会很痛苦。6.3 一个后续可以做的方向当分段线性补偿做完之后你会发现新的瓶颈变成了运放失调和电流镜失配带来的随机电压偏差。这时候就该研究trimming方案了。很多成熟的bandgap设计都会留一串用于调整的保险丝或者可编程开关在量产测试阶段把每一颗芯片的基准电压修调到目标范围。高阶补偿解决的是系统性、确定性的温度偏差trimming解决的是随机性偏差两者加起来才是完整的高精度方案。如果后续有机会我也可以把trimmming的设计方法整理出来包括修调位的权重分配、修调电路对温度特性的影响以及量产测试中的校准流程。那又是另一篇能写很长的文章了。