ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

模拟IC设计实战:Bandgap曲率补偿从原理到流片

模拟IC设计实战:Bandgap曲率补偿从原理到流片 做模拟IC设计的朋友应该都有这种体会Bandgap这个模块看着简单一个运放、两个BJT、几个电阻但真要把温度系数做进5ppm/°C以内光靠一阶补偿根本不够。我印象特别深第一次流片回来测出来的温漂曲线是个明显的抛物线常温附近还行一到-40°C和125°C就往下掉整个曲线像个锅底一眼就知道是曲率没处理好。后来花了几个项目周期专门啃曲率补偿才算把这条路走通。这篇东西就是把我做Bandgap曲率补偿的实战经验整理一遍从原理到结构选型从仿真方法到版图细节再到测试端的坑把我踩过的、看到别人踩过的都写出来。目标是让拿到任务的工程师能少走弯路一次流片就把温度系数做到5ppm/°C以内。文章会有选择性的推导和计算但重心放在实操上——毕竟流片资源烧不起仿真阶段多花点心思比回来再改强太多。1. 曲率补偿的整体设计思路与方案选型1.1 为什么一阶补偿压不住温度系数很多刚接触Bandgap的同学会有个疑问教科书里的经典结构用VBE的负温度系数和VT的正温度系数加权相加不是就能得到零温漂基准了吗理论上是但只存在于PPT里。实际做出来一阶补偿的Bandgap温度系数一般在20到50ppm/°C运气好也就做到15ppm/°C左右离5ppm/°C差得远。问题出在VBE本身。BJT的基极-发射极电压并不是温度的线性函数它里面包含一个T*ln(T)的项。这个项来自集电极饱和电流IS的温度特性——IS本身和温度的高次方相关还牵扯到禁带宽度的温度变化。所以VBE随温度的变化是一条带曲率的曲线一阶补偿只是用一条直线去拟合一条曲线拟合残差就是温度系数的下限来源。如果写得细一点VBE可以展开为VBE(T) VG0 - (VG0 - VBE(T0)) * T/T0 - (eta - alpha) * VT * ln(T/T0)这里VG0是外推到0K的带隙电压eta是工艺相关的指数项大概在3到4之间alpha是集电极电流的温度阶数。当alpha1时也就是PTAT电流偏置下- (eta - alpha) * VT * ln(T/T0)这一项就是残差的主要来源。这个残差在-40°C到125°C范围里大概对应十几到二十几ppm/°C的偏差。所以要压到5ppm/°C就必须做二阶甚至更高阶的补偿把这个T*ln(T)的非线性项想办法抵消掉。这就是曲率补偿这个技术方向的由来。1.2 主流的曲率补偿结构与优劣对比模拟IC领域里曲率补偿的方法已经积累了很多种各有各的适用场景。我按我的理解把常见方案归个类给还在选型的同学一个参考。补偿方案核心思路典型TC范围复杂度适用工艺分段线性补偿在高温段或低温段叠加补偿电流5-15ppm/°C中任意VBE线性化补偿用不同温度特性的电流叠加产生线性化电流5-10ppm/°C中高任意电阻比率温度补偿利用两种不同温度系数电阻的比率实现5-8ppm/°C低有Poly/扩散电阻的工艺二阶/高阶ΣΔ补偿用数字方式校准输出2-5ppm/°C高需数字模块自偏置曲率补偿用BJT自身的VBE差值做补偿3-6ppm/°C中任意BJT工艺从工程角度讲我比较推荐先把电阻比率温度补偿看明白因为这个方案改动最小很多情况下在原有一阶补偿电路上调整电阻类型就能拿到可观的改善。其次是VBE线性化补偿它最接近教科书风格调试起来直观。1.3 我从一阶到曲率补偿的方案演进过程我之前做的一版Bandgap用的就是最经典的Brokaw结构加一阶补偿仿真出来温度系数大概12ppm/°C。这个指标对很多应用其实够了但当时要配合一个16位的ADC做温度传感器系统算下来基准贡献的误差占了大头必须往5ppm/°C以下压。我第一个尝试是换电阻类型把原来的N阱电阻换成Poly高阻电阻同时调整了运放的输入对管尺寸把失调往低压方向偏。这步做完仿真降到了8ppm/°C左右还算有效果但离目标还有距离。接着我在高温段叠加了一路负温度系数的补偿电流也就是分段补偿的思路把高温段的掉坑给补上。两边加一起最终仿真做到了3.8ppm/°C流片实测在-40°C到125°C全温区是4.6ppm/°C算是压线通过。后面我会把这几个步骤拆开细讲重点说每一步为什么要这么干以及在调试中容易掉进去的坑。2. 曲率补偿电路的核心细节与设计要点2.1 VBE的非线性来源与温度模型要把曲率补偿做好先得把VBE的温度行为彻底搞明白。前面提到VBE表达式里有T*ln(T)项这里稍微展开一下因为后面所有补偿方案的推导都建立在这个模型上。对于工作在正向有源区的BJT集电极电流IC可以写成IC IS * exp(VBE / VT)其中VT kT/qIS是饱和电流表达式为IS ∝ T^(4m) * exp(-EG / (kT))注意这个式子里的EG是禁带宽度它本身也是温度的函数一般用Varshni公式或经验公式去拟合。把IS代回VBE的表达式整理之后能得到一阶和二阶的近似关系。在实际设计里我不建议每个人都去推一遍完整的公式但有个结论一定要记住VBE对温度的导数大约在-1.6到-2.0mV/°C之间而且这个导数的绝对值会随温度升高而略微变大。这就是为什么一阶补偿后温漂曲线是驼峰形或锅底形——PTAT项的补偿系数是固定的但VBE的斜率在变高温段斜率大补偿不足就往下掉低温段斜率小补偿过量就往上翘。曲率补偿的本质就是想尽办法造出一个和这个非线性趋势相反、幅度匹配的校正项。2.2 运放失调对TC的影响一个容易忽视的大坑曲率补偿做得再精细如果运放的失调没控制好一切白搭。Bandgap的输出表达式里运放失调VOS会以增益因子叠加到基准电压上。这个因子和电路结构有关在Brokaw结构里大约是1到2倍。关键是失调本身随温度漂移CMOS工艺里输入对管的失调温漂可以做到几十微伏映射到基准端就是好几ppm/°C的固有不稳定而且这个是系统性的补偿不了。所以我在做曲率补偿之前一定会先花精力优化运放。主要手段包括输入对管面积往大里做匹配性提升和面积成正比失调的sigma和根号面积成反比面积翻4倍失调减半。输入对管用交叉耦合布局或者至少做common centroid把工艺梯度和应力梯度的影响抹掉。运放增益做到80dB以上环路增益不足会直接导致虚短不成立等效引入额外失调。注意输入共模电压的选取BJT的VBE工作点不同对应不同的VOS偏移和温漂。有同学会问chopper稳定化能不能用能做的话效果确实好能把低频失调压到微伏级别但chopper会引入纹波和开关噪声对基准的噪声性能是伤害。我个人建议除非系统对TC的要求极其苛刻先别急着上chopper把匹配做好、layout做对实测5ppm/°C是够用的。2.3 电阻温度系数选择与比率补偿的实现电阻是Bandgap里另一个决定性因素。一阶补偿的基准输出电压表达式里电阻以比值形式出现理论上电阻的绝对值温漂会被抵消。但这里有个隐藏前提两个电阻的温度系数必须一致。放到实际工艺里同一层电阻的TC一致性还不错但不同层电阻的TC差异就很大了。比如N阱电阻的方块电阻大但TC高Poly电阻TC相对低但匹配性一般扩散电阻匹配好但寄生电容大。不同层的TC差异在某些工艺里能到几百甚至上千ppm/°C这个量级足以毁掉你的5ppm/°C目标。电阻比率补偿的思路就是故意用两种TC相反的电阻来构造一个随温度变化的比例这个比例再去校正基准输出。举个例子P Poly电阻的TC大概是正的N扩散电阻的TC可能是负的把它们串并联组合等效电阻随温度就能得到一条可控斜率的曲线。具体实现上我会在Cadence里跑一个电阻温度系数的仿真testbench把工艺角下所有可用电阻层的TC都测出来做成一张表。然后根据需求设计阻值和比例。这里有个经验值想要温度系数做到5ppm/°C以下电阻比率随温度的变化要控制在0.03%/°C以内也就是各层电阻TC差异不能超过300ppm/°C超过的话就得用同层电阻加串联微调。2.4 高温段与低温段的补偿策略差异我调试曲率补偿时有个习惯把温漂曲线分成高温段和低温段分别观察。原因很简单不同温度段主导的非线性机制不完全一样。低温段比如-40°C到25°C主要问题是VBE本身在低温和高低温差下的斜率变化剧烈这一段T*ln(T)的曲率特征最明显补偿电流需要有一个平滑的、近似对数性质的上升。高温段25°C到125°C除了VBE的曲率还要注意BJT的漏电流和衬底寄生PNP的高温特性退化有时候能观察到补偿电流自身也出现非线性。实际补偿时我通常先用一阶补偿把基准输出在常温附近的斜率调平然后观察两端谁掉得更厉害。如果两端对称下掉那是典型的二阶曲率问题用二阶补偿电流就好。如果只有高温端掉得厉害多半是BJT的beta退化或漏电流影响这时候要考虑调整BJT的偏置电流密度和工作点。分段补偿的“段点”也要仔细选。我把全温区分成3到5段每段的宽度和增益分别标定用理想电流源进行开环仿真找到每段需要的补偿幅度再换成实际晶体管实现。这个流程看着繁琐但比直接盲调晶体管尺寸快得多。3. Bandgap曲率补偿的完整实操流程3.1 设计指标拆解与仿真环境准备动手画电路之前先把指标定清楚。我一般会列一张表把关键参数和约束写死参数目标值约束条件温度系数5ppm/°C-40°C到125°C全温区输出电压随结构定通常在0.5V到1.2V电源电压最小工作电压需满足LDO或ADC要求功耗尽量低50uA或按spec噪声10uVrms低频段电源抑制比60dBDC看系统需求仿真环境方面我习惯用Cadence ADE XL做全工艺角全温区扫描。扫描的工艺角至少包括tt/ff/ss/fs/sf五个温度点从-40到125每隔5度取一个点一共34个点。这个扫描矩阵一次大概跑几分钟但能拿到完整的TC分布。这里要特别提醒一句直接跑DC温度扫描输出VREF(T)曲线然后用(Vmax-Vmin)/(Vavg*(Tmax-Tmin))*1e6算TC这是基础操作。但只看这个数不够你得把散点图拉出来看曲线形状。同样的TC数值曲线形状不同调试方向完全不同。3.2 一阶补偿的参数标定方法先把一阶补偿做到最平这是曲率补偿的前提。方法上我推荐用理想源辅助法把Bandgap里的运放理想化把BJT和电阻用真实模型然后扫描PTAT电流的权重观察VREF和温度的斜率。具体操作步骤可以这样搭建好基础Bandgap结构运放用VCVS或veriloga理想模型代替。在工作温度T025°C附近做一次小范围温度扫描比如20到30°C。提取VREF对该温度段的斜率。如果斜率为正增加VBE项的权重如果为负增加PTAT项的权重。重复2和3直到T0附近的斜率为零。把T0扩展为-40到125全温区扫描记录此时的TC。这个流程的本质是让一阶补偿在目标温度附近线性化为后续曲率补偿打下平直的中段基线。做完这步TC一般会在10到20ppm/°C。3.3 曲率补偿电流的产生电路与参数计算我的主推方案是VBE线性化自偏置补偿具体做法是产生一路与VBE的T*ln(T)项趋势相反的电流叠加到基准的核心节点上。这里把关键推导和参数计算过一遍。补偿电流的产生用的是两个不同电流密度的BJT的VBE差。Q1和Q2的发射极面积比为N流过相同电流时dVBE VBE1 - VBE2 VT * ln(N)如果N取8到16dVBE在常温大约在54到72mV这个量级适合做PTAT电流源。但只做PTAT不够补偿需要的是关掉T*ln(T)的高阶项。做法是让Q1和Q2的偏置电流本身带有和温度相关的成分。具体可以参考文章里常见的结构Q3的集电极电流由上面的PMOS镜像决定这个PMOS栅极接的是VBE电压所以Q3的电流带有VBE相关的温度特性结果dVBE里就包含了对数非线性项。我实际用的结构里补偿电流Icomp最终可以写成Icomp (VT/R) * ln(N) * (1 K * (T - T0))其中K由PMOS尺寸比和电流镜比例决定R的TC要尽量小一般用Poly电阻。调节K可以让补偿电流在高温段增长更快正好顶着VBE曲率往下掉的趋势。计算上我会先用Mathcad或Python做一次数值拟合。目标函数是全温区里VREF_TOTAL的峰峰电压最小变量就是K和R的绝对值。拟合完得到的参数直接代入电路再在Cadence里细调一到两轮基本就收敛了。3.4 分段补偿的实现与调试细节如果VBE线性化补偿做完TC还在5到8ppm/°C之间我的下一步就是分段补偿补刀。分段补偿的原理是在不同温度区间用温度开关控制额外的校正电流。这里我用的比较顺手的是带隙基准的典型分段结构——用一组比较器或BJT自身的VBE差值构成温度阈值高于阈值开启补偿支路。具体参数上我在-40到125范围里设了两个补偿点低温补偿点设在-10°C左右低于这个温度开启一路正温漂电流幅度通过电流镜和电阻比例设定在基准输出端产生约0.5到1mV的提升。高温补偿点设在80°C左右高于这个温度开启一路负温漂电流幅度同样通过电流镜设定。这里的补偿幅度不是拍脑袋定的我是先把前面做好的二阶补偿曲线在Cadence里跑出来然后把VREF理想曲线的二阶导数在目标温度点的值提取出来算出来需要补偿的等效电压变化。注意补偿幅度不要一次性给满先给目标值的60%到70%跑完再看曲线逐步逼近。给满是容易过冲的一旦过冲就得从头调非常浪费时间。3.5 前后仿针对齐与版图阶段的参数维护电路级仿真通过之后开始画版图。很多工程师死在最后一步电路的参数在版图之后完全变了。道理也不复杂版图引入的寄生电阻和寄生电容改变了运放的环路增益和相位裕度电阻的应力效应让匹配变差金属走线的压降在微安级电流下也有明显影响。我的做法是画版图之前就把关键net的预期寄生标定出来用layout前仿真的理想结果和各net的寄生上限进行敏感度分析。哪些net怕寄生电阻、哪些net怕寄生电容提前知道。比如Bandgap里运放输入对管的两个输入net就特别怕寄生不对称稍有失配就会直接变成失调电压。版图完成后第一时间做寄生参数提取PEX用提取后的网表重跑全工艺角全温区扫描。前后仿TC对不上是常态我的经验是把PEX仿真结果和预仿真的差值定位到具体net上多数时候是带隙核心节点的寄生不对称或补偿电流镜的失配。针对这个问题要么调整版图布局要么在电路里加微调电阻。4. 常见问题与排查技巧实录4.1 温漂曲线不对称的根源与解决我见过最常见的TC超标症状是低温端和高温端的漂移方向不一致一边翘起来一边掉下去怎么调PTAT权重都是跷跷板。这背后的原因大概率是BJT的工作点没选对。BJT的VBE和IS的温度特性在大温差下不是严格对称的如果两个BJT的电流密度设置过低高温段beta退化IC和VBE的关系就会偏离理想指数关系表面看起来就是高温段异常。另一个可能性是补偿电流的温度特性在高低温下不对称二阶补偿电流虽然是PTAT的但三阶以上分量不可忽略。排查方法比较直接把补偿电流单独拿出来仿真看它的V-I曲线是不是严格PTAT。如果不是先修补偿电流。如果补偿电流没问题再看核心BJT的VBE曲线和理想模型的偏差。4.2 工艺角下TC一致性差的处理方案设计阶段在最强的工艺角下仿真通过不代表其他工艺角也能过。我遇到过fs角下TC直接翻倍的情况找来查去发现是电阻层的电阻值偏差太大导致补偿电流的绝对值在不同角下对不上。处理这种问题的核心思想是让补偿电流对绝对电阻不敏感。具体做法是让补偿电流的基准也是电阻比率而不是单个电阻的绝对值。实现上我在补偿电流源里多加了一路自偏置的结构用一个电阻和一对BJT产生与工艺角同步变化的参考电流后续的所有补偿电流都从这个参考电流镜像出去。这样电阻的绝对偏差就被抵消了只剩下匹配性的随机偏差这种偏差通过layout可以压到很低。另外千万别忽略快慢角组合下的BJT模型差异。有些工艺库里BJT的beta在不同角下能差30%以上这个对VBE的影响在高温段很可观。我会在仿真脚本里专门加入对beta的敏感性扫描如果TC对beta过于敏感就要考虑降低电路对beta的依赖比如改用beta不敏感的cascode结构。4.3 封装应力带来的实测TC偏移电路设计和版图都做完了流片回来实测却比仿真差一大截这是模拟工程师最崩溃的瞬间。我遇到过的案例里封装应力的贡献能到2到3ppm/°C足以把5ppm/°C的目标毁掉。封装应力主要影响BJT的VBE和电阻的阻值。塑封材料在温度变化时和被封装芯片的热膨胀系数不一样会在芯片表面产生应力这个应力随温度变化通过压阻效应调制电阻阻值通过能带变化调制VBE。尤其是芯片角落里和封装边缘的器件受到的应力最大。版图上的应对措施包括核心器件BJT、匹配电阻、补偿网络尽量放在芯片中心区域远离划片道和保护环边缘。所有匹配器件使用完全相同的周围环境保证应力梯度一致。在敏感器件周围加应力释放环虽然不能完全消除但能明显降低梯度。实测的时候如果发现TC和仿真趋势一致但整体偏移可以先用简单校准修正。如果趋势都不一致优先怀疑版图对称性其次是封装应力。4.4 噪声与温漂性能的平衡取舍有时候TC已经做到3ppm/°C了但噪声却超标了。这俩指标在Bandgap里是天然的矛盾加大补偿电流能改善TC但补偿电流的噪声会直接注入基准输出。我实测过一组数据把补偿电流从2uA提高到5uATC从4.5ppm/°C降到了3.2ppm/°C但积分噪声从6uVrms涨到了11uVrms。所以在做补偿之前一定要想清楚系统的噪声预算。如果ADC是16位的满量程5V1个LSB是76uV噪声预算在10uV左右的话补偿电流就不能放太狠。处理矛盾的方法有两个方向一是用滤波电容把高频噪声滤掉基准输出电压节点上并联一个适当大小的电容代价是启动时间变长二是用chopper把低频1/f噪声搬走代价是引入谐波需要额外的滤波器。4.5 不同应用场景对TC要求的务实建议不是所有场景都需要5ppm/°C。我做过一个传感器信号链项目基准后端接了一个12位的SAR ADC要求TC在-40到85°C范围内小于20ppm/°C就足够了。这种规格下一阶补偿加良好的版图匹配就能过强行上曲率补偿反而是负担——功耗、面积、噪声都吃亏。我个人的建议是如果系统要求TC在20ppm/°C以上老老实实用一阶补偿重点放在运放失调和版图匹配上。如果要求5到20ppm/°C用电阻比率补偿加VBE线性化就能满足。只有在5ppm/°C以下才需要分段补偿和trim的完整组合。设计不是越复杂越好把一个场景做透做稳比堆一堆花哨的技术最后全线崩盘要强得多。5. 实操过程中反复验证过的心得做了几个版本的曲率补偿Bandgap之后有些经验我觉得比任何理论推导都值钱单独列出来给后来人参考。第一仿真曲线一定要看形状而不是只看数字。TC是一个标量但曲线形状里藏着所有问题的线索。一阶补偿做完的曲线如果是漂亮的下凸抛物线二阶补偿就能带来明显改善。如果曲线是S形带拐点多半有除VBE曲率以外的机制在起作用先找出这个机制再动手补偿。第二所有理想源辅助法的理想模型都一定要在最终仿真里替换回真实晶体管。理想源用多了容易骗自己。运放换真实模型后性能下降是必然的提前预留环路增益和相位裕度余量磁滞余量不够就增大补偿电容或降低带宽。第三trim电路的规划要在设计早期考虑。哪怕你仿真里TC已经做到3ppm/°C工艺角下跑完可能涨到8ppm/°C。没有trim手段就只能被动接受。我常用的trim方案是基准输出端并联一路可编程电流阵列3到4位够用覆盖范围按全工艺角仿真分布的±3σ来定。Trim bit太多测试时间、封装引脚和校准成本都会上升。第四一定要做Monte Carlo仿真。工艺角的corner仿真只覆盖了系统性的偏差但随机失配才是模拟电路的隐形杀手。我会对核心BJT、输入对管、补偿电流镜做200次以上的Monte Carlo匹配性仿真看TC分布是否超过规格上限。如果分布尾巴超标就要在面积和失配之间重新权衡。第五和版图工程师的沟通要及时。电路设计再漂亮版图上如果出了不可逆的问题回来改电路就是连续加班好几周。我会在电路定型时就把关键net的匹配要求、器件摆放区域、屏蔽要求写成一份layout guideline和版图工程师逐条对齐。别嫌啰嗦这份文档最后能帮你挡住一半的返工。最后再分享一个小技巧。进行温度系数提取仿真的时候温度扫描的步长不是越细越好。步长太细会放大数值噪声导致TC计算值上下跳动我一般用5°C步长做全温区扫描然后用二次或三次多项式拟合VREF通过多项式系数计算TC的平滑估计。这个方法比直接用两端差分要稳定得多抗仿真器数值误差的能力强很多。
返回列表