
做模拟IC的人几乎都跟带隙基准源Bandgap Reference打过交道。我入行第三年流片回来一个传感器AFE芯片测出来的温漂严重超标低温下基准输出电压掉了近30mV整颗芯片的ADC码值跟着乱跳最后定位到就是带隙基准源在低温段出了问题。那次之后我把带隙基准源从头到尾重新梳理了一遍才发现很多基本功如果不扎实流片回来的问题就很难快速定位。这个电路的经典程度怎么强调都不过分——它给整个芯片提供“电压的锚点”。带隙基准源的核心任务是无论电源电压怎么变、温度怎么变、工艺角怎么偏它都能输出一个相对稳定的参考电压。做电源管理、做ADC/DAC、做传感器接口、做存储器的全都绕不开它。这篇东西不是教科书式的原理堆砌而是我把原理推导、架构选型、版图布局到仿真调试的踩坑经验整理成的一份“要点笔记”适合刚接触模拟IC设计的学生、刚转做电源或混合信号方向的初级工程师也适合想系统复盘的老手。1. 带隙基准源到底在解决什么问题1.1 为什么每个芯片都需要一个“电压锚点”芯片内部有大量模块需要跟一个绝对电压做比较或计算。LDO的误差放大器要跟基准电压比较来稳定输出ADC的采样电容网络需要基准电压来决定满量程范围比较器的翻转阈值、传感器的偏置点、DDR接口的参考电平也都依赖一个基准电压。如果这个基准电压随温度变化、随电源电压变化、随批次工艺变化那么整个系统的精度就会跟着崩。你可以把带隙基准源理解成一把“永远不变的尺子”别的模块都在拿它量东西量完告诉系统“现在的电压是多少”或者“现在该不该翻转”。尺子自己一热一冷就伸缩后面所有测量结果都会出错。在多数消费级和工业级芯片里带隙基准源的指标往往直接决定系统精度上限。一个12位ADC最低有效位对应电压如果是1mV那基准源本身的温漂、噪声、电源敏感性必须远小于1mV否则ADC的LSB就变成了摆设。这也是为什么很多精密的模拟芯片里带隙基准源会被放在最中间、画一个又大又对称的版图而不是随意摆个角落了事。1.2 一个合格的带隙基准源长什么样从设计角度看一个合格的带隙基准源需要在五个维度上同时满足要求温漂系数在指定温度范围比如-40°C到125°C内输出电压的最大偏差折算成ppm/°C。常见一阶补偿能做到20~50ppm/°C加曲率补偿能做到5~15ppm/°C。电源抑制比PSRR电源上的纹波和扰动到输出端被衰减多少倍。好的设计低频PSRR能做到60dB以上也就是电源上的1V扰动传到输出只有不到1mV。初始精度常温下实际输出电压跟设计值的偏差。这个主要被工艺偏差和运放失调限制通常需要靠修调Trimming才能做到1%以内。功耗与面积基准源通常常开所以电流预算很敏感。低功耗产品可能要求整个基准加启动电路低于1µA这对电路架构选择影响很大。启动行为上电后能可靠地脱离零电流状态并且不能有严重过冲或欠冲。我当时那个出问题的芯片就是温漂和启动行为两个指标没做好拆开仿真一看案例都挺典型。2. 核心原理一次把“1.2V”讲透2.1 两个温度系数如何“对冲”带隙基准源之所以叫“带隙”是因为它的基本原理跟半导体材料的能带隙能量有关系。硅的带隙能量大约是1.12eV但实际电路输出的常是1.2V左右这里面的门道值得仔细说。核心思路是用两路电压相加一路是负温度系数另一路是正温度系数让它们在常温附近恰好抵消。负温度系数电压用的是PN结的正向电压V_BE。一个双极晶体管的V_BE随温度升高而下降典型斜率大约是-1.5mV/°C到-2mV/°C具体值跟电流密度有关。为什么会下降PN结内建电势本身随温度降低加上载流子浓度随温度指数变化宏观上就表现为V_BE的负温特性。正温度系数电压用的是热电压V_TkT/q。在300K时V_T大约26mV温度系数约0.086mV/°C也就是每升高1°CV_T增加不到0.1mV。单看V_T太小所以要靠电路把V_T“放大”以后再跟V_BE相加。一阶抵消的数学关系可以写成V_REF V_BE M × V_T其中M是设计者通过电阻比例和双极晶体管面积比构造出来的放大倍数。为了让温度一阶导数为零需要M大约在17到23之间具体取决于V_BE的工作点温度系数常温下M×V_T差不多是0.45V到0.55V。把这个补偿项叠加上0.7V量级的V_BE就得到了1.2V上下的基准电压。所以“带隙基准输出1.2V”不是刻意规定出来的而是V_BE的电压范围加上PTAT补偿项之后自然落在的一个平衡点。想要更低电压输出传统结构就会遇到电源电压不够的问题需要换其他架构我们后面会讲。2.2 PTAT电流是怎么造出来的关键问题来了怎么产生一个“正比于绝对温度PTAT”的补偿项常用做法是利用两个工作在不同电流密度下的双极晶体管。让两个BJT的集电极电流不同或者发射极面积不同它们的V_BE之差就是ΔV_BE V_T × ln(N)N是两个管子的电流密度比对温度的变化不敏感所以ΔV_BE严格正比于V_T这就是一个干净的PTAT电压。把这个ΔV_BE加在一个电阻两端就产生一个PTAT电流I_PTAT ΔV_BE / R1再用电流镜把这个电流镜像到输出支路流过输出电阻R2产生PTAT电压项V_PTAT (R2 / R1) × V_T × ln(N)这里的魔法在于输出电压的温度特性只取决于R2/R1的比值而不是电阻的绝对值。版图上把电阻比例做准比把绝对阻值做准容易得多这也是带隙基准源能在工艺偏差很大的情况下依然保持不错精度的根本原因。我第一次流片时犯过一个低级错误为了省面积把所有电阻缩小导致基准支路电流变大、功耗超标。后来才意识到电阻绝对值的唯一作用是设定电流大小跟温漂无关这个一定要在架构阶段就想清楚。2.3 为什么“电阻匹配”比“电阻绝对值”重要得多再展开说一点带隙基准的核心器件关系里最敏感的参数几乎都是比值。双极晶体管的面积比N决定ΔV_BE的系数属于匹配项。两个电阻的比值决定PTAT电压的放大倍数也属于匹配项。电流镜的镜像比同样靠晶体管的匹配。匹配做得好意味着工艺发生的系统性偏差氧化层厚度、掺杂浓度、扩散深度等会同时作用在所有匹配器件上最后被“共模”抵消掉。匹配做得差哪怕绝对值非常准输出也会是三四十ppm的温漂加一堆系统性误差。这也是为什么带隙基准源的版图面积通常很大因为大尺寸器件在几何上更容易做到高匹配度这个后面专门写一节。3. 关键指标拆解判断基准源好坏的五个维度3.1 温漂系数TC最容易被拿来“秀肌肉”的指标温漂系数的单位是ppm/°C计算方法是全温范围内输出电压最大值减最小值除以常温标称电压再除以温度范围最后乘以10^6。TC[ppm/°C] (V_REF_max - V_REF_min) / (V_REF_nom × ΔT) × 10^6举个例子输出电压标称1.2V从-40°C到125°C的温度范围内观察到最大1.204V、最小1.196V温度范围165°C那么峰值差8mV代入算出来大概是40ppm/°C。一阶补偿结构做到40ppm/°C很常见做好一点到20ppm/°C也不难。但如果想突破10ppm/°C就必须对V_BE的高阶温度项做处理也就是曲率补偿。V_BE实际温度特性不是一条直线它包含一个T×ln(T)项这个二次项会导致温度曲线两端向上翘。补偿思路包括用不同温度系数的电阻组合、产生非线性PTAT电流来抵消二阶项、或者分段补偿。我在仿真里跑过一个对比同一套核心电路一阶结构在-40°C到125°C跨度下TC约35ppm/°C加了一路简单的曲率补偿后降到14ppm/°C再用分段补偿可以到8ppm/°C。代价是额外多了十几个器件和几条偏置支路。不是所有产品都需要最好的TC有些场景只要够用就行别一上来就追求极致。3.2 电源抑制比PSRR与线性调整率PSRR描述的是电源扰动对基准输出的衰减能力。低频PSRR主要靠环路增益撑起来因为带隙基准的核心是一个负反馈环路环路增益越高电源纹波被抑制得越彻底。高频PSRR则更多受寄生电容、运放带宽和电流镜输出阻抗影响通常随着频率升高而下降。还有一种特殊情况叫“线性调整率”Line Regulation电源在某个直流范围变化时基准输出平均变化的程度。很多产品规格书用mV/V表示。比如线性调整率1mV/V意味着电源从2.5V变到5V输出大致会偏2.5mV。提高PSRR的经验有两条一是确保运放增益足够高特别是在目标频率范围内二是电流镜和基准核心管尽量用级联Cascode结构把电源到输出支路的直接漏电路径堵住。我见过一个基准源PSRR只有35dB查来查去发现是偏置一个电流源的管子漏极电压没留够余量导致输出阻抗太低换成级联结构后PSRR直接提升了20dB。3.3 初始精度与修调流片后的“兜底”手段即使设计完美工艺制造也会带来误差。晶体管阈值电压、电阻阻值、双极晶体管的饱和电流都会有批次性偏差。这些偏差反映到基准输出上就是常温电压偏离设计值可能达到百分之一到百分之几。V_BE的绝对误差带进来以后输出会整体平移这个属于“档位误差”需要修调来校正。常见修调手段有激光修调调整薄膜电阻的阻值精度高但成本也高适合高精度产品。熔丝/反熔丝修调通过外部探针或片上电编程烧断熔丝改变电阻网络的接入情况。EEPROM/OTP修调用数字存储器控制开关管切换修调电阻阵列。修调位数的选择要结合实际工艺能提供的电阻精度和系统允许的电压误差来算。如果希望常温精度做到±0.5%而工艺偏差大概±3%那么修调步进至少要小于±0.5%修调范围要覆盖±3%。简单估算的话4位调16档可能勉强6位调64档更稳妥。做低功耗产品的朋友们要注意修调电阻阵列本身会有额外的漏电和寄生电容极端低功耗场景要反复评估。3.4 噪声与启动行为容易被忽视的“隐形杀手”基准源的噪声会直接叠加到所有依赖它的模块上影响系统信噪比。低频段闪烁噪声主导高频段热噪声主导。降低噪声的办法通常是增大电流、增大管子面积、在输出端加低通滤波电容或者在架构上采用斩波稳定Chopper技术来抑制低频噪声和失调。启动行为也要看尤其是用来给片上电源轨做参考的基准源上电瞬间如果输出过冲超过后续电路耐压就可能烧毁内部器件。检查方法是做不同电源上升斜率下的瞬态仿真电源从0快速爬升、慢速爬升、阶梯爬升都要看输出是否有异常尖峰。3.5 功耗与面积工程取舍的艺术一个基准源可能只占整个芯片功耗的很少比例但在电池供电产品里常开模块的功耗预算极其有限。低功耗设计有时候会迫使你放弃最好的噪声性能和PSRR转用更高阻值的电阻、更小的电流结果就是版图面积变大、输出噪声变高。我自己常做的一个前期步骤在架构选型之前先把目标指标写成一张表格把功耗、噪声、面积、PSRR、TC列在一起然后对每个候选架构打勾。这样可以避免花了两周时间设计一个在某项指标上“杀鸡用牛刀”的电路。4. 主流架构对比选对方案少走弯路4.1 经典运放式带隙基准最通用的“工作马”经典运放式带隙基准由运算放大器、一对按1:N面积比配置的双极晶体管、一组电阻网络组成。运放的负反馈强制两个输入点电位相等从而在两颗BJT上产生确定的电流比例最终构造出V_REF V_BE (R2/R1)×V_T×ln(N)。它的优点很多结构成熟、设计资料多、环路增益可以设计得很高、PSRR容易做上去。缺点是运放存在失调电压而失调会直接折算到输出端大约要乘以(1R2/R1)的增益系数。R2/R1通常有10倍量级所以运放1mV的失调输出可能偏掉10mV以上换算成精度就是1%左右。这也解释了为什么高精度基准源对运放输入级匹配要求极其苛刻要么用大尺寸管子把失调压到几十微伏要么上斩波技术把失调调到高频再滤掉。在低功耗场景下还要注意运放的带宽和压摆率别太大否则功耗控制不住。4.2 Brokaw带隙基准输出驱动能力强的老牌选择Brokaw结构是经典运放式的一种变体它用两个双极晶体管和两个电阻直接构成自偏置回路可以输出很稳定的带隙电压同时具备一定的电流驱动能力。它在双极工艺和BiCMOS时代非常流行很多早期电源管理芯片里都能看到。它的主要特点是结构紧凑、带宽较高、噪声相对好控制。缺点是自偏置环路也可能有多稳态问题需要设计可靠的启动电路。另外它的电源抑制比相比现代高增益运放式结构要弱一些后面做PSRR提升时往往需要额外加一级稳压。4.3 曲率补偿结构把TC从几十压到个位数前面提到V_BE存在T×ln(T)高阶项如果完全不加处理温度曲线会在两端翘起形成一个“碗形”或“帽形”。曲率补偿的指导思想是再造一路“非PTAT”电流把这项非线性抵消掉。常见做法有用两种温度系数不同的电阻比如高阻poly和低阻poly串联来生成非线性电压。用工作在亚阈值区的MOS管产生指数温度特性的电流。分段补偿把温度范围分成几段在不同段激活不同的补偿支路抵消对应位置的弯曲。曲率补偿的代价是电路复杂度显著上升每一个补偿支路都需要仔细调试否则可能在某个温度角引入新的拐点。而且补偿支路对工艺角非常敏感仿真验证时必须覆盖所有corner否则流片风险很高。4.4 亚1V与低电压结构低压时代的替代方案传统带隙基准输出电压约1.2V电源电压必须高于这个值还要留出余量所以在1.2V或更低的工作电压下传统结构根本没法用。低电压替代方案通常转向输出电压约等于V_BE的“准带隙”结构比如用电流模输出直接把PTAT电流镜像进负载电阻而不要求输出电压本身等于V_BE与PTAT电压相加。基于MOS阈值电压差的方案利用不同阈值或者不同电流密度下V_GS之差的正温特性来构造参考。全CMOS的带隙类电路用深亚微米工艺下的寄生BJT或者纯MOS器件实现类似效果。这些方案的输出通常可以低到0.5V甚至更低但代价是精度、温漂和噪声往往不如传统1.2V结构。在数字工艺为主的SoC里这往往是不得已的选择。5. 从仿真到版图容易翻车的实操细节5.1 启动电路为什么必须要有带隙基准核心环路里存在简并偏置点一个是正常工作的工作点另一个是所有电流都为零的零电流状态。上电时如果电路恰好落到零电流状态输出永远起不来芯片直接“罢工”。启动电路的作用就是打破这种平衡。设计原则有三条上电时能检测到核心电路还没正常工作然后向环路注入一个额外电流把电路推出零状态。一旦核心电路开始正常工作启动电路必须自动退出不能再往主环路里灌电流否则会改变基准电压或引入温漂。启动电路本身要能在所有corner、所有温度、所有电源上升时间下都可靠触发。我踩过一个很典型的坑仿真时电源是从0V到3.3V瞬间跳变启动电路能工作但芯片实测上电时电源是缓慢爬升的启动电路在某个中间电压区间误判导致基准输出卡在了一个半死状态。后来在仿真里专门添加了从微秒级到毫秒级的多种电源上升斜坡才把这个bug暴露出来。5.2 运放失调与版图的“对称艺术”运放失调是带隙基准精度的头号瓶颈这个前面说过。从版图角度解决失调的方法核心就两个字对称。输入对管一定要用大尺寸叉指结构尽量把几何中心放在同一位置周围放上dummy器件保证每指所处的环境完全一致走线的方向和长度也要尽量匹配。匹配做得好可以有效降低系统性失配带来的失调但随机失配依然存在它跟晶体管面积的平方根成反比。所以一个高精度基准里的输入管子常宽经常做得很大就是以面积换精度。这个面积在整颗芯片里不算夸张但对性能提升是最直接的一笔账。5.3 双极晶体管与电阻的匹配细节在版图层面双极晶体管一般用阵列形式来实现面积比。比如需要1:8的比例就在版图上放9个形状完全相同的BJT其中一个单独作为“单位管”剩下8个并联。阵列周围加一圈跟内部结构相同的dummy管确保边缘刻蚀和其他工艺效应不影响真实器件的尺寸。电阻匹配的思路一样。精度要求高的比例电阻比如R2/R1要用同一种电阻类型、同向摆放、加dummy条宽度尽量取工艺允许的最大值。我见过一个设计把两个关键电阻横竖交叉摆放做出来温漂特性完全对不上仿真因为工艺里的扩散和各向异性蚀刻对横竖方向的电阻影响不同这个属于版图基本功但真的容易犯。还要注意隔离。基准核心管的衬底电位要干净尽量用独立阱加隔离环围起来避免周围数字模块的衬底噪声串进来。电源走线也要注意IR drop基准核心的供电最好单独走一条较宽的金属路径避免其他模块的大电流在供电路径上造成压降差异。5.4 仿真清单流片前必跑的项目分享一份我每次流片前都会跑的基准源仿真清单按优先级排列DC温度扫描覆盖-40°C到125°C步长5°C分别在tt、ss、ff等corner下看输出电压曲线和TC。Monte Carlo仿真300到500次看温漂分布和初始电压分布确认6-sigma不会突破规格。PSRR AC扫描从10Hz扫到10MHz看电源到输出的增益曲线确认低频大于60dB、高频衰减可控。上电瞬态仿真多种电源斜坡时间0.1µs、10µs、1ms、10ms覆盖所有corner和温度确认启动成功输出无异常过冲。噪声积分仿真从1Hz积到100kHz换算成输出电压RMS值看是否满足系统预算。负载瞬态仿真输出端接一个电流阶跃看电压变化和恢复时间评估基准的输出阻抗特性。有时候我还会加一项“电源跌落”仿真模拟运行过程中电源短时间掉压再恢复看基准能否重新启动。很多可穿戴产品在电池快耗尽时会出现电压跌落系统如果因此卡死很难让用户接受。6. 常见问题排查记录我在项目里踩过的坑6.1 案例一输出电压对电源特别敏感现象是芯片在实验室里用手轻轻碰一下电源走线基准输出跟着波动。仿真PSRR一看低频只有32dB明显偏低。排查思路先看环路增益。带隙基准的PSRR靠反馈环路压制环路增益不够PSRR必然差。检查发现运放的偏置电流被设得特别小为了省功耗导致增益和带宽都不足。另一个原因在电流镜偏置电流源只用了单管结构输出阻抗太低电源波动直接通过沟道调制效应漏进基准核心。改造方法是把单管电流源换成级联结构同时稍微提高运放偏置电流PSRR从32dB提升到68dB。6.2 案例二温度曲线呈现明显上翘曲线不是一条平线而是高温端和低温端都向上弯像一个碗。这种形状就是V_BE的T×ln(T)二阶项在作怪。一阶补偿能抵消线性项但压不住二次项。修复办法通常有两选一是接受这个TC只要系统指标允许二是上曲率补偿。当时那个项目指标要10ppm/°C以内最后加了一路跟温度非线性相关的补偿电流把碗形曲线压平了大半。这个案例提醒我不是所有高阶补偿都要一板一眼照搬论文很多时候用一到两支附加电阻或者调整某一路电流的温度特性就能把曲线修得差不多。6.3 案例三上电后输出始终为0或不确定这正是我在开头说的那个低温翻车现场。仿真时特地把电源上升时间拉长发现在ss corner、低温-40°C条件下启动电路注入的电流太小核心环路一直停留在零电流状态。修复措施是加大启动管的尺寸、增加启动电流同时在启动节点上增加一个小电容加快瞬态响应。排查启动问题有个高效手段在电路上电之前把所有关键节点初始电压都手动设为0然后再上电看电路最终会不会收敛到正常工作点。只要有一次仿真出现卡死就直接把启动电路的余量加大不要心存侥幸。6.4 案例四流片后低温输出异常偏小这是另一个低温问题但不是启动失败而是基准核心里的BJT发生了准饱和。低温下BJT需要更高的集电极-发射极电压才能保持正向放大区如果偏置电流设计得让集电结在某些corner下提前进入饱和V_BE的温度特性就会偏离模型预测输出自然往下掉。排查时需要看BJT的集电极电压随温度和corner的变化轨迹确保在最差情况下仍然有足够的电压余量。这次问题最后靠调整电阻分压比把BJT集电极工作点抬高了一些低温曲线就恢复了正常。这几个案例有一个共同规律出问题的地方往往是仿真outline里没有专门覆盖的边界条件。低温、慢上电、低压差、ss corner这些组合才是最需要警惕的。写在最后的一点个人体会每次拿到一个新的带隙基准拓扑我习惯先跑三个仿真常温直流工作点、全温范围温度扫描、慢速电源斜坡。这三个仿真加起来半小时基本能判断出一个设计有没有核心缺陷。带隙基准源看似简单其实把模拟电路里的环路稳定性、失调、匹配、噪声、温度特性全都能串起来学通一个带隙基准等于把模拟设计的半本基础课都过了一遍。最后再分享一个小技巧在仿真里给核心BJT的V_BE加一个小的偏移电压模拟版图上可能出现的随机失配看看输出电压偏移多大。这个数字能很快告诉你这个设计的“容错度”到底够不够。我后来每个项目都留着这个仿真脚本几乎每次都能提前发现一两个隐患。