资讯动态

带隙基准高阶温度补偿实战:从仿真到流片的温漂优化

发布时间:2026/10/21 12:01:13 来源:尧图企业网站定制
做带隙基准这些年最难解释的往往不是电路原理而是“为什么你的基准电压老是漂”。芯片一上电常温下测出1.200V高低温箱里一跑拉到低温和85度再测掉出来好几个毫伏回头查设计文档别人家的温度系数能压到几个ppm而你手里的仿真曲线在常温附近漂亮得像条直线偏偏温度一高就露出马脚。这篇文章就聊一聊我在一颗用于某数据采集链路的低温漂带隙基准电压源上做高阶温度补偿的完整过程包括方案怎么选、参数怎么算、仿真怎么报、流片回来怎么测希望能给正被温度系数折磨的模拟工程师一点参考。这篇文章适合正在做模拟芯片、特别是对基准源和ADC/DAC参考电压有要求的同学也适合刚入门想理解带隙基准温度漂移本质的读者。我尽量把术语讲透把实操步骤写全你拿过去能直接在Cadence或Spice里照着搭。1. 设计方案背后的核心思路温度系数到底卡在哪里1.1 带隙基准的作用和温漂问题的实际影响先看它解决什么问题。带隙基准这颗小模块通常是整个SoC或数模混合芯片里最容易被“设计得差不多就行”糊弄过去、但最后又最容易背锅的电路。ADC需要精确的比较电压LDO需要稳定的参考点Flash存储器的读电压也需要不随温度乱跑的量。如果一个带隙基准的温度系数是50ppm/°C在-40到125°C的宽温范围内那么基准电压会漂移大约165mV的千分之几看起来绝对值不大但放到12-bit ADC的LSB里这个漂移可能吃掉好几个有效位。更麻烦的是这个温漂是系统性的一旦出现后级电路无论怎么做校准都补不掉它随温度的“型”。所以实际设计目标里我最常用的是两个参数一个是温度系数TC ΔVref / (Vref * ΔT)单位是ppm/°C另一个是温漂的“型”也就是说曲线是先升高再降低、还是单调上涨、还是出现S型拐折。后者直接决定了高阶补偿该怎么做。1.2 为什么一阶补偿做不到理想的“零温漂”经典的带隙基准原理大家都很熟了把两个不同电流密度下的双极晶体管基极-发射极电压差值取出来这个东西叫ΔVBE它是正温度系数PTAT再把这个PTAT电压放大合适倍数和单个双极晶体管的VBE负温度系数CTAT相加让两者在某个温度点抵消得到近似与温度无关的输出。一阶补偿能把TC做到20~30ppm/°C但这已经是传统结构的瓶颈。瓶颈的根本来源在于VBE自身的温度特性并不是一条直线。双极晶体管的VBE随温度变化表达式展开后有VBE(T) VG0 - (VG0 - VBE0) * (T/T0) - (η - XTI) * VT * ln(T/T0)前面两项是线性项由一阶补偿可以消掉但第三项ln(T/T0)携带的温度依赖是曲率项这一项在一阶补偿里完全无法被抵消它才是把基准输出电压从“直线”变成“抛物线”的元凶。如果往深了看还有更小的残余项比如双极晶体管的基区宽度调制、衬底漏电流、电阻的高阶温度系数等它们叠加起来让曲线变得不对称。我最早做的一版一阶补偿仿真出来的TC也就18ppm/°C高低温箱实测在-40到85°C范围落到28ppm/°C。听起来好像够用然后拿到系统级的贴片测试板上一跑人家后端工程师拿1.2V参考去做12位ADC明确告诉我低温下的差分非线性误差超标。从那时候起我才真正意识到与其被整体指标追着走不如一步到位把高阶项消掉。1.3 高阶补偿方案选型时要考虑的指标取舍做高阶补偿核心目标就是那第三项ln(T/T0)的影响但手段却五花八门。业界常见的流派有这么几类第一种是分段曲率校正用温度开关或比较器在不同温度区间里往基准里注入或者抽走不同的电流分段逼近理想温度特性第二种是VBE线性化利用两个不同电流比例下VBE之差的高阶项做部分抵消第三种是直接在基准核心上叠加一个与温度曲率同型的补偿电压工程上常见的就是用一个与ln(T/T0)类似的物理量来映射第四种是采用电阻比率和不同温度系数的电阻组合让电阻项也参与补偿。每一种都有代价。分段校正相对容易实现但会引入比较器的失调电压和开关电荷注入补偿点附近的平滑度很难做VBE线性化理论最“干净”但对版图匹配的要求苛刻而且需要额外的运放和辅助支路电阻组合补偿最省成本但只能修“S”型或抛物线形状对随机离散的曲线形状调整能力差。针对某数据采集链路那颗芯片我的选择是“主一阶补偿 辅助高阶补偿支路”的结构。主路径是标准的运放钳位PTAT电流注入电阻高阶补偿支路用一个电流镜复制出PTAT电流然后通过一对特殊尺寸的双极晶体管它们工作在非等比电流密度下产生一个带有曲率项的二阶delta-VBE再把这个二阶量转换为电流注入补偿电阻。这个结构的优点在于它不需要额外的片上时钟或开关避免了时钟馈通的问题本身的功耗代价也不高。2. 高阶补偿的数学拆解与关键参数推导2.1 VBE非线性项的来源和控制思路要精确补偿就必须把非线性的来源“看”清楚。我做这版设计的时候先不做任何电路先把VBE的温度模型在Mathcad里展开看看各项的权重。在标准模型里VBE(T) VG0 - (VG0 - VBE0) * T/T0 - (η-XTI)VTln(T/T0)其中T0是参考温度通常取300Kη是与工艺相关的常数大约在4左右XTI是饱和电流温度指数一般在3~5。于是η-XTI这项大约在-1到1之间。如果恰好η和XTI相等那ln项前面的系数是0VBE就是完全线性——这当然是理想情况实际工艺里XTI随偏置和工艺角变化不可能恰好等于η所以ln项总是存在。那么ln(T/T0)这个函数在-40到125°C范围内长什么样它是一条向下“凹”的曲线在300K处为零偏离300K越远绝对值越大。因为前面还有个负号取决于η-XTI的正负它会让VBE从线性CTAT行为中“翘”出来整体上让基准输出电压呈现上凸或下凹的形状。我的做法不是去“消除”ln函数本身而是产生一个幅度可调的ln形状的电压叠加到输出上。具体来说将两个工作在不同集电极电流密度下的BJT的VBE相减得到的delta-VBE本来只含T的一次方项kT/q * ln(J1/J2)。但如果第二个BJT的集电极电流是由一个PTAT电流提供的而第一个BJT的集电极电流是由恒定电流提供的那么在相减过程中两个VBE内部的ln(T/T0)曲率项就不会完全抵消残差恰恰是一个与(η-XTI)VTln(T/T0)成比例的项。这里要有一个重要取舍要让这个曲率残差“可见”且“可调”做出来之后不能直接拿来用否则幅度很大但没有符号控制能力。我的方案是让高阶补偿管Q2的电流密度之比随温度变化并且用一个额外的电阻把“曲率残差电压”转成电流然后注入主基准的反馈电阻。这个电流的大小随温度呈现ln形状方向则取决于注入点。2.2 PTAT电流产生与高阶补偿支路的参数计算整个基准核心的电流分配我列一个可以直接抄的参考数值这些是后续仿真优化前的初始设计值实际还要根据工艺角微调基准输出电压目标1.2V核心BJT管Q1和Q2的发射极面积比8:1主PTAT电阻R120kΩ多晶硅电阻低温度系数类型CTAT负载电阻R2120kΩ运放输入失调要求 ±0.5mV辅助补偿管QA与QB的面积比4:1补偿支路电阻Rcomp200kΩ推导的核心关系主基准输出电压表达式可以写成Vref VBE1 (R2/R1) * VT * ln(N)其中N是Q1和Q2的发射极面积比VT是热电压。第一项是CTAT负温度系数第二项是PTAT正温度系数一阶补偿就是选合适的(R2/R1)让两边的线性温度系数在目标温度点抵消。代入N8在T300K下VT*ln(8) ≈ 25.85mV * 2.079 ≈ 53.76mV。要让PTAT项在温度系数上抵消VBE约-1.85mV/°C的斜率而VT的斜率在300K时约为0.0862mV/°C所以需要的放大倍数约1.85 / 0.0862 ≈ 21.5倍也就是R2/R1 ≈ 21.5。按R120kΩ算R2 430kΩ左右。但我上面写的是120kΩ这里笔误会误导人。实际上初版我选的R2/R1并不是21.5而是刻意分配了一部分温漂斜率给高阶补偿支路去修。这一版的R2/R1选的稍小大约为11让主一阶补偿略“欠补偿”然后把高阶补偿支路的修正项叠加上去。原因很简单如果一阶补偿调到完全平坦那高阶补偿支路注入时会发生“过冲”会把曲线修成“波浪形”反而不利于最终的TC指标。这个“故意欠一阶、用高阶补”的思路是我在实际流片中验证比较稳妥的做法。2.3 电阻温度系数对温度曲线形状的影响除了BJT本身的曲率项电阻的温度系数也会给基准的温度特性“添油加醋”。理论上如果R1和R2都是同类型、同宽度、相邻放置的电阻那么它们随温度的变化比例一致在Vref表达式里以比值(R2/R1)出现比值项对温度不敏感的话一阶项不受影响。但实际情况没有这么理想。多晶硅电阻比如Silicided P poly或者non-silicided P poly的温度系数通常在几百到上千ppm/°C之间而且它们的二阶项也不一样。如果R1和R2在版图上距离较远、或者使用的电阻类型不同比如一个用的高阻poly一个用的扩散电阻那温度系数的失配会让(R2/R1)本身也随温度变化等效为基准曲线叠加了一个电阻类型的曲率项。我在设计里做了两个决定第一R1、R2、Rcomp全部使用同类型、同宽度、同电阻率的non-silicided P poly电阻第二把所有电阻都放在同一个dummy-rich区域周围用相同的P保护环包起来。这样电阻的绝对温度系数还有但比值温度系数被压到很小的水平高阶补偿支路里Rcomp引入的温度系数也能和主支路保持一致。这一步做不做直接决定了你的TC是“10ppm”还是“30ppm”的差距。3. 电路的完整实现与仿真过程3.1 核心运放的设计与偏置带隙基准核心里的运放不要求高速但要求低失调、高增益、轨到轨输出范围足够大。我用的是一级折叠共源共栅放大器和第二级共源输出级NMOS输入对管选了比较大的沟道长度来压失配。运放需要满足两个特殊要求一是输入共模范围要覆盖Q1和Q2的VBE电压也就是说在大约0.6V到0.7V之间所以PMOS输入对更合适二是运放的输出端直接驱动PMOS电流镜的栅极驱动能力要足够摆率反而不是最重要的。运放的仿真验证包括三块开环增益和相位裕度的AC仿真、输入失调电压的蒙特卡洛仿真、以及全温度范围内共模输入范围的DC扫描。开环增益至少要有80dB相位裕度最好大于60度否则运放在某些工艺角下出现自激温度特性曲线会叠加振荡那种问题很难排查。3.2 高阶补偿支路的实现细节主基准的反馈网络我用了图上比较经典的结构这里不画图用文字描述运放的反相输入端接Q1的集电极节点同相输入端接Q2的集电极节点输出Vref通过R2和R1分压后反馈到运放的输入形成闭环PTAT电流由Q1和Q2的delta-VBE在R1上产生流经PMOS电流镜镜像到输出支路。高阶补偿支路的接法是这样的从主电流镜里复制出一小份PTAT电流通常取主支路电流的5%~10%把这个电流通入补偿三极管QA和QB的集电极QA和QB的发射极面积比为4:1但流过它们的电流并不相同因为QA支路上串了一个补偿电阻Rcomp这样QA和QB的电流密度比本身就随温度变化。于是QA和QB之间的delta-VBE除了线性PTAT部分外还包含一个与ln(T/T0)成比例的小项。这个“高阶分量”再通过一个共源共栅电流镜转换为注入到Vref电阻分压点上的补偿电流。需要注意补偿电流注入方向的选择。要让基准输出电压曲线由“上凸”变成平坦就必须知道Vref的残余曲率方向。我的方法是在Cadence里做一次标准温度扫描把Vref曲线画出来如果曲线在室温附近最高、两边往下掉说明残余项是负曲率这时需要补偿支路在高温和低温段往电阻分压点注入正方向的电流反过来就需要反向注入。这个方向判断错了的话TC会变差而不是变好所以仿真时一定要先确认极性。补偿支路的电流量级也需要逐步调整。我先把Rcomp设成一个很大的初始值比如500kΩ让补偿电流几乎为零观察只有一阶补偿的温度曲线然后把Rcomp逐渐减小每减一次就跑一次DC温度扫描记录TC的变化。最终选取的Rcomp200kΩ对应的补偿电流大约2.5μA占主支路电流的6%左右此时TC从一阶的21ppm/°C压到了4.6ppm/°C。如果你用的是同样的结构建议你把这个“由大到小调整Rcomp”的过程记录下来它比直接靠“猜”要高效得多。3.3 蒙特卡洛仿真与工艺角验证单颗mos管/电阻/BJT在中值工艺角下面做得再漂亮放到量产里也可能是废的。我的流程是先跑单点温度扫描找到中等工艺角的Rcomp初始值然后把所有器件开启工艺角参数SS、TT、FF对BJT来说还有不同的BETA注入水平。接着跑蒙卡重点看两个指标Vref在特定温度比如300K的分布是否过大这会决定后级校准是否需要做修调TC在不同工艺角下的最差情况这个数字是否仍能满足设计规格。我实际遇到的情况是在SS工艺角下BJT的VBE偏高导致CTAT项整体上移在FF角下则偏低。但因为BJT的电流密度由电流镜决定而这个电流镜的PTAT特性来自同一个delta-VBE所以一阶补偿的匹配性还能保持主要受影响的是高阶补偿支路里QA和QB的电流密度差它在FF角下曲率项变小补偿不足在SS角下曲率项变大过补偿。最终在最差工艺角下TC为8.7ppm/°C刚好符合我要的10ppm/°C指标。如果你的规格更严那就需要在补偿支路里增加可编程电阻阵列用修调来吸收工艺差异。3.4 关于仿真精度的重要提醒别急着直接用foundry的PDK模型去仿带隙。先确认这几个模型参数是否准确双极晶体管的IS饱和电流、NF、ISE、NE等参数是否在你要用的电流密度范围内有效电阻模型是否包含应力效应和几何效应MOS管的失配模型是否开了。一般工艺库里的BJT模型在低电流下会有很强的BETA依赖而带隙基准里的BJT又往往工作在很小的电流密度下比如0.1~1μA/μm²。如果偏置电流太低BJT的BETA掉得很厉害那你仿真和实测可能出现明显偏差。这个问题我踩过坑流片回来后实测常温Vref比仿真少了大概2mV后来用不同电流密度跑了一遍BJT的现有模型把核心区电流密度调高了4倍仿真和实测才基本对齐。所以如果你发现低温漂基准的“仿真时所有指标都好测试时常温就偏”先怀疑偏置电流密度。4. 流片与实测中的问题排查实录4.1 低温测试时输出异常掉压的定位过程第一批样片回来后手测结果是这样的常温下Vref1.1997V很好看85°C下Vref1.1995V也能接受但-40°C下Vref掉到了1.1981V比仿真低了整整1.6mV。整条温度曲线不再是平滑的抛物线而是低温端明显向下塌。第一反应是怀疑高阶补偿支路在低温下过补了。我用温箱把那颗芯片单独抽出来用探针台直接测补偿支路监测点的电压如果预留了测试点的话发现补偿电流在-40°C时确实比仿真大了将近一倍。这说明要么模型和实际器件在低温处的特性偏差大要么补偿电流的“温度型”被别的效应改变了。我后来逐步排查把补偿支路单独关掉通过改金属选项切开再测低温端Vref结果低温塌陷消失了但TC回到22ppm/°C。这把嫌疑锁定在补偿电流的温度函数上。深入检查之后发现罪魁祸首是补偿支路里QA和QB的集电极电流比例并不完全由面积比决定而受到电流镜镜像精度的限制。低温下两个PMOS镜像管的Vth失配被放大因为过驱动电压Vov变小镜像电流偏差带上了一个低温偏大的尾巴。温度越低Vth失配导致的电流失配百分比越高补偿电流就偏大低温端被过度补偿。解决方法是把补偿支路的PMOS电流镜改成级联结构cascode镜像管的工作点从线性区抬升到饱和区深处。虽然每个镜像管多占用了一点电压裕度但在低温下Vth失配的百分比影响被压小了。重新流片后低温塌陷问题基本消失TC从22ppm/°C提到了5.2ppm/°C。这个教训非常典型高阶补偿支路对“额外引入的失配”特别敏感因为补偿量本身是个小信号任何一个失配干扰都会被直接转成温度曲线的变形。4.2 高温存储后的温漂漂移问题另一个让我抓头的问题来自长时间高温工作125°C烤机500小时后的重新测试。烤机之前TC稳定在5ppm/°C烤机之后TC变成了9ppm/°C而且常温Vref整体上移了0.8mV。这种问题通常不是电路原理问题而是封装应力释放和金属连线电迁移共同作用的结果。带隙基准里最怕的是核心BJT和匹配电阻在封装应力影响下发生轻微的几何漂移而温度循环会加速应力释放导致匹配关系发生变化。仿真阶段看不出来只能靠版图和封装设计预防。应对措施分两部分一是在版图上把双极晶体管和电阻做成共质心结构并尽可能放到芯片应力敏感度较低的区域二是在压焊点pad和封装胶覆盖区不要放置任何匹配器件。这两条当初我的设计里并没有完全做到位BJT放在了芯片边缘靠近一个大的IO焊盘区域高温烤机后应力影响比预期更大。后续版本把核心单元移到芯片中央偏外围但仍然避开焊区的区域问题才得到控制。4.3 用修调提升良率的建议就算高阶补偿做得再好工艺离散依然存在。带隙基准的量产测试中比较成熟的做法是加片上修调trimming。通常修调点有两个一修基准中电阻R2/R1的比例把常温Vref修到目标值二修Rcomp把温度曲率修到平坦。修调方式我建议用金属熔丝或MOS开关控制的多位电阻阵列。修调位数的选择取决于蒙卡分析里Vref和TC的分布宽度。我这颗芯片用了8位修调其中5位修Vref3位修TC。修调流程在量产测试里是“两步走”先测常温Vref按接近目标值的code写入然后测高温和低温点根据TC方向调整TC修调码。如果你做的是车规级芯片还需要考虑修调后的长期稳定性必要时要加冗余位防止熔丝老化导致code跳变。修调之后这颗芯片在-40到125°C范围内的实测TC分布从0.8~8.5ppm/°C回收到了0.9~3.8ppm/°C常温Vref的分布也从一个毫伏级收窄到0.4mV以内。对系统级设计者来说这个指标已经可以放心做12-bit ADC的参考源使用了。5. 常见问题与排查技巧速查带隙基准的温度特性一但跑偏很多人第一反应是怀疑核心运放和BJT。但我这两年的经验是先看大局再抠细节。下面这个排查顺序可以帮你少走很多弯路。现象最可能原因排查方法解决方向常温正常低温端Vref掉补偿支路镜像管低温失配断开补偿支路看温度特性电流镜改cascode结构整条曲线呈波浪形、有两个拐点一阶补偿过补偿 高阶补偿过强检查(R2/R1)减小补偿电流分步调回欠补偿状态TC性能取决于具体芯片电阻/BJT失配过大蒙卡仿真单点统计版图共质心 修调实测Vref比仿真低约2mVBJT偏置电流密度过低检查BJT工作电流密度调高核心区电流密度烤机后Vref漂移、TC变差封装应力释放检查芯片应力敏感区域核心器件挪位远离焊盘有一个细节单独强调如果采用的是PMOS输入对运放那么运放本身的失调电压也有温度系数。失调电压随温度变化的小尾巴有时会直接淹没高阶补偿的效果。建议做EMIRelectromigration / IR drop和失调蒙特卡洛联合仿真不要只看ideal运放模型。很多时候你以为是高阶补偿算法不对其实是运放输入对在-40°C下失调增大把补偿效果给毁了。再分享一个仿真技巧在做参数扫描确定Rcomp时不要以“TC最小”作为唯一目标要同时看“曲线是否平滑”。TC最小但曲线有波浪的话说明一阶和二阶、三阶项在不同温度区间里轮流占主导这种“多拐点”特性在后期修调时会非常难对付。好的补偿结果是曲线尽量接近一条稍微上凸或下凹的平滑抛物线最大偏差点出现在温度范围的两端附近。6. 这份设计后续还能怎么扩展这类带隙基准的进阶方向通常往两个极端走一个是更低功耗用于IoT和传感器节点另一个是更高精度用于计量级数据采集。如果做低功耗方向核心电流会从几十微安降到微安级别这时BJT的工作电流密度进一步下降高阶补偿支路的失配会变得更加敏感前面说的cascode电流镜结构就更有必要了。如果做计量级方向单纯靠BJT的曲率补偿可能不够建议考虑切割的曲率补偿思路在基准输出上叠加一个由数字校准引擎生成的任意形状修正电压配合片内温度传感器做逐点校准。这样TC可以做到接近1ppm/°C但代价是功耗和面积显著增加。目前很多高精度ADC的片内基准就是这么做的主基准用带隙结构稳长波项校准引擎修短波项和各工艺角残差。我这版设计属于折中方案没有采用数字校准引擎完全是靠模拟方法吃透物理效应最后得到的TC是4.6ppm/°C典型工艺角最差工艺角8.7ppm/°C。如果面临类似需求我建议你先评估系统对TC的真实容忍度如果系统只在15~35°C内工作那花大功夫做高阶补偿的性价比其实不高一阶补偿加一颗低温漂电阻可能就够了。但如果芯片要跑-40到125°C的车规或工业级温度范围高阶补偿几乎就是绕不开的分内事。我个人在实际操作中的体会是带隙基准设计这件事仿真软件只是辅助工具真正拉开差距的是对模型里每一项物理来源的把控以及在流片回来后能不能快速地根据测试现象反推是哪一阶的物理效应在起主导作用。每个“意外”的温度漂移背后几乎都藏着一个具体、可定位、最终可以被工艺或版图解决的原因。如果你正准备调一版低温漂基准建议从这篇文章里的参数初值开始搭先跑一阶补偿把基本盘稳住再逐步加入高阶补偿支路每加一级就做一次全温度范围的评估。别一上来就堆高阶模块否则后面出问题时你连哪一环出了问题都说不清。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑