作为一个常年和模拟电路打交道的工程师,我几乎在每个芯片项目里都会遇到带隙基准(bandgap)这个模块。功耗、精度、面积这三座大山在低功耗bandgap设计里体现得尤其明显——流片前觉得自己算得万无一失,流片后才发现一堆此前没注意的坑。这篇就结合我多年调试经历,把低功耗bandgap设计从思路、架构、电路到版图和测试的完整逻辑梳理一遍,希望能给正在做类似模块的同行一些参考。
低功耗bandgap说到底,就是在电流预算被压得很低的前提下,仍然输出一个随温度、电源电压变化尽可能小的基准电压。它最常见的应用场景包括IoT传感器节点、可穿戴设备、能量收集系统、实时时钟、以及各类需要长期待机的模拟前端。这类系统往往一节纽扣电池要用好几年,整个芯片的静态功耗常常被压到几百纳安甚至更低,bandgap能分到的预算通常只有几十纳安到几百纳安。这个数量级下,传统教科书里的那个1.2V输出、几微安偏置的经典结构基本没法直接用了,必须从架构到器件选择都重新想一遍。
这篇文章我会重点拆解低功耗bandgap设计的两条主流路径——传统BJT结构和全CMOS亚阈值结构,给出我自己验证过的设计案例、参数计算过程和仿真要点,最后整理一份实测中常踩的坑。内容偏实践,适合有一定模拟电路基础、正在做低功耗模块设计的工程师参考。
1. 低功耗bandgap到底难在哪:需求拆解与设计约束分析
1.1 带隙基准的基本原理回顾
在展开低功耗设计之前,先花两分钟把bandgap的原理框架理顺。带隙基准的核心思路是利用两个温度系数相反的电压量相加抵消。一个是PN结二极管的正向压降VBE,它随温度升高而下降,典型温度系数约-1.5到-2.2 mV/°C,具体值取决于偏置电流和工艺;另一个是两个不同电流密度下BJT的VBE之差,即:
ΔVBE = VT · ln(N)
其中VT = kT/q是热电压,在室温25°C下约25.85mV,N是两个BJT的电流密度比。VT本身随温度正比变化,所以ΔVBE的温度系数是正的,约+0.085 mV/°C乘以ln(N)的系数。当ln(N)取17左右时,这个正温漂大致能抵消VBE的负温漂,这就是经典带隙基准实现一阶温度补偿的原理。
实际电路中,我们不直接把ΔVBE加到VBE上,而是通过电阻网络把ΔVBE转成电流再转成电压,用一个电阻比值来精确设定正温漂的权重。最经典的实现是Brokaw结构或Banba结构,通过运放强制两个支路节点等电位,从而保证流过两个BJT的电流密度比精确可控。整个设计的核心公式就是:
VREF = VBE + (R2/R1) · ΔVBE
电阻比R2/R1决定了补偿系数,能够用版图匹配精确控制到千分之一级别,这也是bandgap精度高于一般自偏置基准的根本原因。
1.2 低功耗应用的电流预算画像
搞清楚bandgap的基本原理之后,就能明白低功耗为什么是件棘手的事。不同应用场景对bandgap电流预算的要求差别巨大,我按自己接触过的项目整理了一个参考区间:
| 应用场景 | 系统总功耗约束 | bandgap分到的电流预算 | 温漂指标要求 |
|---|---|---|---|
| 传统ADC/DAC/LDO | 几毫瓦级别 | 1~5 μA | 10~50 ppm/°C |
| 车规传感器调理 | 毫瓦级别 | 0.5~2 μA | 20~80 ppm/°C |
| IoT无线传感器节点 | 几十微瓦 | 50~200 nA | 50~150 ppm/°C |
| 可穿戴设备/植入式医疗 | 几十微瓦 | 30~100 nA | 80~300 ppm/°C |
| 能量收集供电系统 | 10微瓦以下 | 5~30 nA | 100~500 ppm/°C |
注意,bandgap的输出精度会直接影响到ADC的参考电压、LDO的输出电压、比较器的翻转阈值等,因此不能只看它自身功耗,还要看它在系统里服务的对象的指标。比如一个12位ADC如果直接用bandgap做参考,bandgap的温漂和噪声就会直接出现在转换结果里。
我个人的感受是,当bandgap预算低于200nA时,传统BJT结构就开始力不从心;低于50nA时,基本上必须走全CMOS亚阈值或者精心优化的电流模式结构。这个分界不是绝对的,和选用的工艺、可用的器件模型质量都有关系,但作为设计初期的判断依据很实用。
1.3 电流降低引发的连锁效应:不只是“变小”那么简单
很多新手容易低估的,是电流降低后一系列器件参数的连锁变化。这里拆成三个层面来说。
第一是BJT本身的特性变化。BJT的VBE表达式里有一个隐含的温度相关项,它和偏置电流的绝对大小有关。电流从微安降到纳安级,VBE的绝对值会下降约180mV(因为VBE ≈ VT·ln(IC/IS)),虽然一阶温漂大致保持不变,但VBE的曲率会在低电流下更明显。另外,纳安级偏置下BJT的电流增益β会明显下降(高注入效应不再存在,但低注入时泄漏电流占比变大),基极电流的失配也会恶化匹配精度。
第二是电阻面积的爆炸。以典型的Banba结构为例,ΔVBE通常只有100mV出头,要把支路电流压到50nA,这个电阻需要做到2MΩ以上。一个2MΩ的高阻多晶硅电阻在普通工艺下可能要占用0.01mm²以上,两个电阻就是0.02mm²以上,这在现代芯片里是非常奢侈的。而且大电阻自身的寄生电容也大,会影响环路的稳定性。
第三是运放设计难度陡增。低功耗bandgap里运放尾电流可能只有几纳安到几十纳安,这直接导致运放的单位增益带宽只有几十千赫兹甚至更低,环路响应非常慢。更麻烦的是,纳安级偏置下输入对管几乎必然工作在亚阈值区,亚阈值区的失调电压比饱和区更大,工艺偏差也更难预测。这就形成了一个死循环:我们本来就需要运放的虚短来保证ΔVBE的精确性,但低电流运放自身的失调反而成了误差的主要来源。
2. 架构选型:传统BJT结构低功耗化 vs 全CMOS亚阈值结构
2.1 传统BJT结构如何向低功耗方向优化
如果工艺库里提供了质量不错的寄生纵向BJT,那么传统BJT结构通过一系列优化,仍然可以在几百纳安级别做出性能不错的bandgap。我试过的几个有效手段包括:
一是用电流模式替代电压模式。电压模式(Brokaw结构)的输出电压直接是VBE加上PTAT电压,节点电压高,动态范围受限;电流模式(Banba结构)先把ΔVBE转成PTAT电流,再通过电流镜复制到输出电阻上,优点是输出电平可以灵活设定,低电源电压下也能工作。低功耗设计中电流模式几乎是必选。
二是用大阻值电阻但控制总面积。可以把原本需要2MΩ的电阻拆成串联的四个500kΩ,虽然在版图上占地面积没变,但电阻的寄生电容会变小,而且可以分段修调。如果工艺提供高阻多晶硅层,面积还能进一步缩小。
三是给BJT并联较大的面积来改善匹配。纳安级电流下,单个BJT的VBE失配可以达到几百微伏,这直接转换成输出的温漂误差。办法是把发射极面积做大——用多个BJT并联,或者直接用一个大面积的BJT管。面积每增大一倍,失配大约改善30%。
四是增加修调电路。低功耗BJT结构的一阶补偿系数容易偏,预留一个小的DAC或熔丝修调网络,在测试阶段校准R2/R1的比值,是保证量产良率的常用做法。我一般会预留至少5到6位修调位,范围覆盖典型值的±20%。
2.2 全CMOS亚阈值结构:去掉BJT,用MOS管做温度补偿
当电流预算压到几十纳安级别时,BJT结构就非常吃紧了,这时全CMOS亚阈值结构几乎是必然选择。这个方案的核心思路是:把工作在亚阈值区的MOS管当作“准BJT”来用,利用其VGS的负温度系数和两个不同尺寸MOS管VGS之差的正温度系数,完成传统BJT实现的补偿。
亚阈值区MOS管的电流表达式可以简化为:
ID = ID0 · exp(VGS/(n·VT)) · (1 - exp(-VDS/VT))
其中n是亚阈值斜率因子,典型值在1.2到1.6之间,ID0正比于宽长比W/L。当VDS大于3VT左右时,最后一项指数接近为1,这时VGS近似为:
VGS ≈ VTH + n·VT·ln(ID/(ID0))
从这个表达式可以直观看出,VGS随工艺阈值电压VTH漂移,同时也随温度和偏置电流变化。负温度系数主要由VTH的温度特性和VT的温度特性共同决定,典型值约-0.5到-1.2 mV/°C。两个不同宽长比的MOS管在相同电流下的VGS之差,则有类似ΔVBE的正温度系数,大小为n·VT·ln(N),其中N是两个管的宽长比之比或电流之比。
用这个方案,整个bandgap里不再需要BJT,电路就更纯粹地由MOS管和电阻构成。最关键的是,亚阈值MOS管在纳安级电流下工作得非常好——其实它本来就是为极低电流而生的工作区。整个bandgap可以做到总电流低于30nA,甚至10nA级别也能工作,这是BJT结构很难企及的。
2.3 两条技术路线的对比与选型决策
为了说清楚怎么选架构,我整理了一个对比表格,列出了两种路线在关键维度上的表现:
| 维度 | 传统BJT结构(电流模式) | 全CMOS亚阈值结构 |
|---|---|---|
| 最低可靠工作电流 | 100~200 nA | 10~50 nA |
| 温漂指标(一阶补偿后) | 20~100 ppm/°C | 50~300 ppm/°C |
| 对工艺器件的要求 | 需要高质量BJT | 常规CMOS即可 |
| 失配敏感度 | 主要依赖BJT和电阻匹配 | MOS的VTH失配影响更大 |
| 设计复杂度 | 中 | 中高,需要处理亚阈值特性 |
| 量产可预测性 | 较高 | 中,对模型准确性敏感 |
| 修调需求 | 推荐预留 | 几乎必须预留 |
我的选型经验是:预算在200nA以上、系统对温漂有硬指标(比如要求低于50ppm/°C)的场景,果断选BJT结构;预算低于60nA、面积又紧张的场景,全CMOS亚阈值是对的路线;中间区间就取决于你手里工艺的BJT质量和模型精度了。如果模型对亚阈值区拟合得好,全CMOS路线在这个区间也能做出不错的结果。
另外值得提一句的是,很多芯片里bandgap不是单独存在的,它会和LDO、比较器、振荡器等模块一起构成电源管理单元。设计时可以把这些模块的电流需求统一规划,比如让bandgap既给LDO提供基准电压,又给振荡器提供偏置电流,每个模块都不需要独立跑一份冗余的基准电路,整体功耗可以再压下来不少。
3. 实操案例:一个50nA全CMOS亚阈值bandgap的设计全过程
3.1 设计指标与拓扑选择
我以最近做的一个能量收集芯片为例,它的bandgap指标如下:
- 输出基准电压:约0.5V,误差±15mV
- 总电流:25°C时不超过50nA
- 温度范围:-40°C到85°C
- 温漂指标:一阶补偿后低于180 ppm/°C
- 电源电压范围:1.0V到3.6V
- 线性调整率:低于2%/V
- 工艺:0.18μm BCD工艺
这个预算在BJT结构里属于绝对低区,所以我选了全CMOS亚阈值路线。电路拓扑选择的是带自偏置电流镜的电流模式结构,整体分成三个部分:核心PTAT/CTAT电压产生网络、自偏置电流镜与运放的闭环调节、以及启动电路。
拓扑的核心逻辑如下:两条支路的NMOS管M1和M2工作在亚阈值区,M2的宽长比是M1的K倍,在相同电流偏置下,两个管的VGS之差形成一个正温漂电压ΔVGS。这个ΔVGS加在电阻R1两端,产生一路PTAT电流。同时M1自身的VGS负温漂通过电阻R2和另一路电流叠加,最终在输出节点得到近似零温漂的参考电压。整体输出约0.5V,比传统1.2V低,这是低电源电压下必要的取舍。
3.2 核心参数计算:从指标到管子尺寸
接下来是参数计算,这部分是我觉得整个设计里最需要耐心的地方。
第一,确定亚阈值工作电流。总电流预算50nA,留给两条核心支路各10nA,运放10nA,启动电路和分压网络20nA。这个分配比较均衡,也能保证运放有足够的电流维持稳定性。
第二,计算ΔVGS的温度系数。前面提到,两个尺寸比K的MOS管在相同电流下的VGS之差为:
ΔVGS = n·VT·ln(K)
取n=1.4,VT在25°C时约25.85mV,K=64,则:
ΔVGS = 1.4 × 25.85mV × ln(64) ≈ 1.4 × 25.85 × 4.159 ≈ 150.5mV
正温漂系数为n·(k/q)·ln(K) = 1.4 × 0.085 × 4.159 ≈ 0.495 mV/°C。
第三,计算M1的VGS温度系数。这个值不能只看手算——它强烈依赖工艺模型。根据同工艺此前流片数据,在10nA偏置下,一个尺寸适中的NMOS管VGS大约在480-520mV,温度系数约-1.1 mV/°C。这个值我会在仿真里校准,但初算时就按-1.1 mV/°C来定电阻比例。
第四,确定补偿条件。要让输出零温漂,需要PTAT电压的温漂和CTAT的温漂相等。设PTAT电流I_PTAT = ΔVGS/R1通过电流镜复制后注入输出节点,产生PTAT电压;同时CTAT电流I_CTAT = VGS_M1/R3通过另一对电流镜注入同一节点。输出基准可写为:
VREF = (ΔVGS/R1) · R_OUT + (VGS_M1/R3) · R_OUT
其中ROUT是输出节点到地的等效电阻(由分压网络形成)。对温度求导并令其为零:
(R_OUT/R1) · 0.495 + (R_OUT/R3) · (-1.1) = 0
取R1=1MΩ,R3=2.2MΩ,则两者温漂可近似抵消,同时输出电压约为:
VREF = (150.5mV/1MΩ) · R_OUT + (500mV/2.2MΩ) · R_OUT
如果需要VREF=500mV,反推可得ROUT约2MΩ。这就是输出分压网络的总等效电阻。
第五,验算功耗。核心支路电流10nA × 2,加上运放10nA,启动电路5nA,分压网络5nA,总计约40nA,留了20%左右的设计余量。MOS管的沟道长度全部取到1μm以上以减少漏电和匹配误差。
3.3 运放和启动电路的微电流设计技巧
这个bandgap的运放是整个环路的核心,但又必须把功耗压到最低。我的做法是采用经典的折叠共源共栅结构,尾电流只有10nA,输入对管尺寸取到20μm/1.5μm,目的就是降低巴黎阈值下的失调电压。10nA尾电流下运放的跨导gm大约只有1μS级别,单位增益带宽可能在几十kHz以下,但bandgap环路本身不需要太高的带宽,关键是保证相位裕度不低于50度,这个要通过密勒补偿电容来完成,补偿电容约0.5pF。
运放失调是低功耗bandgap的致命伤。10nA尾电流下,输入对管的VTH失配可能达到5到10mV,直接折算到基准输出的误差大约在3%到6%。为了缓解这个问题,图中的输入对管版图会刻意做成交叉耦合,同时在电路级预留了修调电流源,可以在测试时微调两输入支路的失衡。
启动电路方面,bandgap天生有零电流稳定态。最简单的启动方式是给核心支路注入一个短暂的小电流脉冲,让环路脱离零稳态。低功耗设计里我不会用RC延时或复杂的时序电路,而是用一个二极管连接的MOS管从电源到核心节点漏一个小电流,稳态时启动管的漏电自然被主环路拉低。这个方法的代价是启动电流会随温度变化,但实测下来在-40°C到85°C范围内都能可靠启动。
3.4 仿真验证:不能只跑一个corner
仿真阶段有几个步骤我觉得不可跳过。
第一是DC温度扫描。温度从-40°C到85°C,步长5°C,得到VREF随温度变化的曲线,从中提取一阶温漂系数。好的现象是曲线呈弱抛物线形——这意味着二阶曲率还有修正空间;如果曲线是严重下弯或上弯,首先要检查是不是某条支路退出了亚阈值区。
第二是电源电压扫描。从1.0V扫到3.6V,观察VREF的变化。线性调整率超标通常有两个原因:电流镜的有限输出阻抗,以及支路电阻的分压随电源变化太大。解决前者可以用cascode电流镜,但这会消耗电压余量,所以1.0V低压下cascode不现实,更实用的方案是加一条前馈补偿支路。
第三是工艺角仿真。我习惯把工艺角组合跑全:TT、SS、FF、SF、FS五个工艺角,每个工艺角再叠加-40°C、25°C、85°C三个温度,共15个组合。重点看这15个组合下:启动是否成功、基准电压是否落在目标区间、温漂是否在规格内。这个矩阵能暴露大多数电路问题,比如某些角落运放增益不够或相位裕度不足。
第四是蒙特卡洛仿真。针对器件的失配和工艺波动,我一般跑200组。重点观察两点:一是VREF的分布是否覆盖了设计修调范围;二是温漂系数的分布,如果3σ温漂超过规格,就要回头调整补偿电阻比例或增加修调位宽。
3.5 版图布局:纳安级电流下的细节决定成败
纳安级电流对版图寄生的敏感度远高于普通模拟电路,这里有几个特别值得注意的点。
第一是隔离和保护环。亚阈值MOS管的沟道漏电流本身只有纳安级,如果周围电路的噪声耦合进敏感节点,哪怕皮安级别的干扰都会影响精度。因此核心MOS管和运放输入对的外围必须加保护环,通常是接地的N阱环加P+环双层保护,把衬底噪声隔在电路之外。
第二是敏感节点屏蔽。输出基准节点和反馈节点要走尽量短的金属线,避免与时钟信号或数字信号的长距离平行走线。万不得已必须交叉时,用接地的金属层隔开。我在老工艺上吃过这个亏——一条从运放输出到栅极的走线跨过了一个频繁翻转的信号线,结果基准电压上出现了十几个毫伏的毛刺。
第三是电阻匹配。R1、R3和输出网络的电阻之间的匹配直接决定温漂补偿效果,必须使用同一类型电阻,做成阵列形式并添加dummy,保证周围环境一致。两个关键电阻的比值建议做到1%以内的匹配精度,否则修调电路也未必能完全挽救。
第四是漏电路径审查。芯片工作在纳安级电流时,ESD保护二极管的漏电流、阱到衬底的结漏电、甚至金属pad下方的场氧漏电都会对精度产生影响。版图完成后要专门检查哪些节点电压最高的区域有寄生二极管形成的漏电路径,必要时在顶层加屏蔽层或调整布局。
4. 实测踩坑记录:这些坑你大概率也会遇到
如果仿真都过了就以为万事大吉,那属实太天真了。流片回来的实测阶段,才是低功耗bandgap真正显形的地方。把我的踩坑记录整理成一份速查表,方便各位对照排查:
| 现象 | 可能原因 | 排查方法 | 解决办法 |
|---|---|---|---|
| 上电后基准电压为零或极低 | 启动电路失效,陷入零稳态 | 用示波器看启动瞬间节点波形 | 加大启动管注入电流,检查各工艺角启动条件 |
| 基准电压明显偏低(超30%) | 某支路退出亚阈值区,或电压余量不足 | 测各支路电流和关键节点电压 | 调整电流镜尺寸,降低支路压降 |
| 温漂曲线严重失真(非抛物线) | 补偿电阻比例偏离设计值 | 对比多片样品的温漂曲线 | 通过修调电阻比值校准 |
| 电源电压升高时基准跳变 | 电流镜输出阻抗不足 | 观察电源电压扫描波形 | 改为cascode电流镜(电压余量允许时) |
| 基准输出上有周期性纹波 | 环路振荡 | 测量计算运放相位裕度 | 加大补偿电容或调整零点位置 |
| 实测温漂和蒙特卡洛仿真偏差大 | 封装应力或芯片表面漏电 | 对比封装前后测试数据 | 版图增加应力释放槽,改善钝化层工艺 |
| 低温或高温下启动时间异常 | 启动管电流随温度变化过大 | 扫温度观察启动波形 | 设计温度系数更平坦的启动电路 |
| 待机电流比预期大很多 | 某个漏电路径未被建模 | 逐一断开模块定位漏电来源 | 修版图或加金属层屏蔽 |
这里面最让我印象深刻的是一次低温启动失效。仿真在-40°C下明明启动正常,实际芯片在-30°C左右上电后基准电压起不来,折腾了好久才发现是启动管的VTH随温度下降而上升,导致低温下注入电流不足,无法打破零稳态。从那以后,我设计启动电路时都会强制要求在FF corner的低温下还有至少3倍余量的注入电流。
另一个高频率问题和封装应力有关。低功耗bandgap对机械应力更敏感,因为纳安级电流下应力引起的压阻效应对电阻和MOS管参数的影响相对更大。实际表现为同一批芯片,封装前温漂特性很好,封装后温漂明显变差。解决思路是版图上让敏感电阻和MOS管远离芯片边缘和封装引脚,同时在芯片边缘加应力释放槽(seal ring内的切槽),能显著降低传递到核心电路的机械应力。
5. 设计经验与进阶思考
最后聊几个我在多次迭代里总结出来的判断准则,不一定全面,但对新人应该有帮助。
第一是误差预算表。开始设计前先做一个误差预算表,把VREF的误差来源全部列出来——运放失调、VTH失配、电阻失配、电流镜失配、温度系数残差等,每一项目前估算一个值,累加后对照总指标。如果累积误差超标,就提前知道该在哪方面下功夫,而不是流片出来后才去猜。经验表明,低功耗bandgap里运放失调往往占误差的大头,在纳安级电流下尤其如此。
第二是修调方案必须提前设计。低功耗bandgap即使在仿真里看起来完美,实际芯片也会因为工艺波动偏离设计值。预留修调位是必须的,修调网络本身也要考虑其漏电对功耗的影响。我常用的是PMOS管串联电阻到地的开关网络,关闭时漏电在皮安级,对总功耗几乎无贡献。
第三是测试方案要一开始就想好。纳安级电流的测量对探针台、PCB漏电和测试设备都提出了苛刻要求。我自己吃过一次亏:在普通PCB上直接裸测bandgap电流,结果PCB本身的表面漏电就有几十纳安,完全淹没了待测电路的真实功耗。后来改用三轴屏蔽测试盒,在探针台上做测量,数据才干净。
低功耗bandgap这个模块,原理书上一个多小时就能讲完,但要做好,需要的是对细节的极致把控。从电流预算分配到误差预算制定,从仿真矩阵设计到版图抗扰布局,每一环都可能决定最终的流片成败。希望这篇整理能让你少走几步弯路。如果后续做完测试,也欢迎年后来聊聊实测数据的对比情况。