☰
带隙基准电压源设计指南:从Cadence仿真到流片验证
2026/9/29 18:47:46 网站建设 项目流程

1. 为什么带隙基准值得你花时间死磕

带隙基准电压源,圈子里一般直接叫BGR(Bandgap Reference)。如果你正在学模拟IC设计,或者刚进公司被分配到一个ADC、LDO、DC-DC的项目里,大概率第一个练手电路就是它。原因很简单:几乎所有的模拟电路都需要一个“绝对靠谱”的电压参考,而带隙基准就是那个在温度变化、电源波动、工艺偏差面前都能稳住输出的电路模块。

我见过不少新手在Cadence Virtuoso里搭完BGR原理图,跑完一遍DC仿真看到输出大概1.2V就觉得完事了。实际上,真正的坑从你开始跑温度扫描(Temperature Sweep)那一刻才刚开始。温漂曲线是抛物线还是单调递减?不同工艺角(Corner)下输出偏差多少?上电启动会不会卡在简并点?电源抑制比(PSRR)够不够?这些问题不解决,你的BGR就是个摆设。

这篇内容面向的是已经装了Cadence Virtuoso、能基本操作ADE L的读者。如果你还没跑通过最简单的共源放大器仿真,建议先去补一下Virtuoso的基础操作。但如果你已经能独立搭电路、跑仿真,只是对BGR的设计流程和仿真验证没有系统性的认知,那这篇东西就是写给你的。我会从电路拓扑选型开始,一步步讲到温度系数仿真、工艺角验证、启动电路排查,把每个环节的“为什么”和“怎么做”都讲透。

2. 带隙基准的核心原理与拓扑选型

2.1 带隙基准到底在“基准”什么

先把这个概念说清楚。带隙基准的核心思想,是利用双极型晶体管(BJT)两个关键电压的温度特性,把它们按一定比例加起来,让温度的一阶项相互抵消。

具体来说,双极型晶体管基极-发射极电压VBE具有负温度系数,大约在-1.5mV/°C到-2mV/°C之间。而两个不同电流密度下工作的BJT,它们的VBE差值ΔVBE具有正温度系数,正比于绝对温度(PTAT)。把VBE和一个放大后的ΔVBE相加,就能得到一个温度系数接近零的参考电压。

这个电压大约在1.2V左右,外推到绝对零度时,正好等于硅的带隙电压(约1.12eV)。这就是“带隙基准”这个名字的由来。

用公式表达就是:

VREF = VBE + K × ΔVBE

其中K是放大系数。对温度求导,令dVREF/dT = 0,就能解出最优的K值。

2.2 为什么选Brokaw结构还是CMOS结构

在Cadence里做仿真,你首先要决定用哪种拓扑。常见的有几种:

第一种是经典的Brokaw结构,用运放做反馈,两个BJT的发射极面积比设为N:1,通过电阻产生PTAT电流。这种结构精度高、PSRR好,但需要运放,功耗和面积都偏大。

第二种是CMOS电流镜结构,也是目前最常用的。用电流镜强制两个支路电流相等,利用BJT的VBE差在电阻上产生PTAT电流,再通过电流镜镜像到输出支路。这种结构不需要运放,功耗低、面积小,适合大多数CMOS工艺。

第三种是Banba结构,适合低电源电压场景,输出可以做到1V以下。

对于新手来说,我建议从CMOS电流镜结构入手。原因有三个:第一,结构简单,调试起来容易定位问题;第二,大部分CMOS工艺库都自带寄生BJT(衬底PNP),不需要额外器件;第三,仿真设置直观,温度扫描和工艺角扫描都能很快看到结果。

2.3 关键参数指标与设计目标

在动手画原理图之前,先明确你的设计目标。以下是我通常给自己定的指标:

参数典型目标值说明
输出电压1.2V ± 2%根据工艺和结构微调
温度系数< 50 ppm/°C消费级产品可放宽到100
电源电压1.8V ~ 3.3V取决于工艺节点
静态电流< 50μA低功耗场景要求更严
PSRR @ DC> 60dB对电源噪声敏感的场景
启动时间< 100μs取决于负载电容
输出噪声< 50μVrms高精度ADC场景要求更高

这些指标不是拍脑袋定的,而是根据你的应用场景反推出来的。比如你做的是高精度ADC的参考源,那温漂和噪声就是第一优先级;如果是给数字电路做粗略参考,那功耗和面积可能更重要。

3. Cadence Virtuoso环境搭建与原理图设计

3.1 工艺库准备与仿真环境检查

在开始画图之前,先确认你的Cadence环境是完整的。你需要的东西包括:

  • Virtuoso Schematic Editor(画原理图)
  • ADE L(仿真环境)
  • 一个可用的CMOS工艺库(比如TSMC 180nm、SMIC 55nm等)
  • 工艺库对应的模型文件(Model File),通常在PDK的models/spectre目录下

打开Virtuoso之后,先建一个自己的库(Library),再建一个Cellview。我习惯把库名设成自己的项目名,比如BGR_Design,Cellview用schematic。

注意:工艺库的模型文件路径一定要确认清楚。很多新手跑仿真报“器件未定义”的错误,十有八九是模型文件没挂对。在ADE L的Setup → Model Libraries里,把工艺库的.scs或.lib文件加进去,注意section要选对(tt、ff、ss等)。

3.2 CMOS电流镜BGR原理图搭建

下面是我常用的CMOS电流镜BGR结构,分几个部分来讲。

核心部分:PTAT电流产生

两个衬底PNP管Q1和Q2,发射极面积比设为1:8。Q1的发射极接一个电阻R1,Q2的发射极直接接地。两个管的基极和集电极都接地。这样Q1和Q2的VBE差就落在R1上:

ΔVBE = VT × ln(8) ≈ 26mV × 2.08 ≈ 54mV(室温下)

这个ΔVBE就是PTAT电压。流过R1的电流就是PTAT电流:

IPTAT = ΔVBE / R1

电流镜部分

用PMOS电流镜把PTAT电流镜像到输出支路。M1和M2组成电流镜,M1在PTAT支路,M2在输出支路。为了减小沟道长度调制效应的影响,PMOS的沟道长度建议取大一些,比如L = 2μm以上。

输出部分

输出支路里,M2的漏极接一个电阻R2和Q3(二极管连接)。输出电压就是:

VREF = VBE3 + IPTAT × R2

通过调整R2和R1的比值,就能调整K值,让温度系数接近零。

启动电路

这是最容易被忽略但最致命的部分。电流镜结构存在简并点:如果所有晶体管都处于零电流状态,电路会一直保持这个状态不启动。所以必须加启动电路。

我常用的启动电路是一个电容耦合的NMOS,上电瞬间把某个节点拉低,打破简并点。具体做法:一个NMOS的栅极通过电容接VDD,漏极接电流镜的栅极,源极接地。上电时电容耦合让NMOS短暂导通,把电流镜栅极拉低,电路就开始工作了。

3.3 器件参数初值设定与计算

画完原理图,接下来是设参数。这一步不能瞎设,要有计算依据。

假设你的工艺库中衬底PNP的VBE在室温下约0.7V,ΔVBE约54mV。目标输出1.2V,那么:

VREF = VBE3 + IPTAT × R2 = 0.7 + (54mV / R1) × R2 = 1.2V

解出:R2 / R1 ≈ (1.2 - 0.7) / 0.054 ≈ 9.26

如果你选R1 = 5.6kΩ,那R2 ≈ 52kΩ。当然实际值要根据仿真微调,但这个计算能给你一个合理的起点。

PMOS电流镜的尺寸:假设你希望每条支路电流约10μA,PMOS的过驱动电压设200mV,根据平方律公式:

I = 0.5 × μpCox × (W/L) × Vov²

代入工艺参数就能算出W/L。具体数值每个工艺不同,这里不展开,但思路是这样的。

实操心得:初值设完之后,先跑一遍DC仿真看各节点电压是否合理。如果某个节点电压是0或者等于VDD,说明电路没工作在正常状态,先别急着跑温度扫描。

4. ADE L仿真设置与温度系数优化

4.1 DC仿真与工作点检查

打开ADE L,设置仿真类型为dc。在Design Variables里把R1、R2、PMOS的W值等设成变量,方便后续扫描。

跑完DC仿真后,重点看几个东西:

  • 输出节点电压是否在1.2V附近
  • 两个BJT的VBE是否合理(约0.7V)
  • PMOS电流镜的漏极电压是否匹配(确保电流镜精度)
  • 各晶体管是否工作在饱和区

在ADE L里可以用Annotations → DC Operating Points来查看每个管子的工作状态。如果发现某个管子在线性区,就要调整它的尺寸或偏置。

4.2 温度扫描与温漂曲线分析

DC仿真通过后,接下来做温度扫描。在ADE L里选dc分析,勾选Temperature,设置扫描范围-40°C到125°C,步长5°C。

跑完之后看输出曲线。理想的BGR输出应该是一条开口向下的抛物线,顶点在室温附近。如果曲线单调上升或下降,说明K值不对,需要调整R2/R1的比值。

具体怎么调?如果曲线单调上升,说明PTAT分量太强,减小R2或增大R1。反之则增大R2或减小R1。每次调整后重新跑温度扫描,直到抛物线顶点落在你想要的温度范围内。

温度系数的计算公式:

TC = (VREF_max - VREF_min) / (VREF_avg × ΔT) × 10^6 ppm/°C

比如VREF_max = 1.203V,VREF_min = 1.197V,VREF_avg = 1.200V,ΔT = 165°C:

TC = (1.203 - 1.197) / (1.200 × 165) × 10^6 ≈ 30.3 ppm/°C

这个值越小越好。消费级产品一般要求< 100 ppm/°C,高精度场景要求< 20 ppm/°C。

4.3 工艺角仿真与鲁棒性验证

温度扫描只验证了典型工艺角(tt)。实际流片时,工艺参数会有偏差,所以必须跑工艺角仿真。

在ADE L里,通过Setup → Model Libraries加载不同section的模型文件,分别跑tt、ff、ss、sf、fs五个角。每个角都跑温度扫描,记录输出曲线。

我通常会把五个角的曲线叠在一起看。如果某个角的温漂特别大,或者输出电压偏离1.2V太多,就要考虑加修调(Trim)电路。修调电路一般是一组可编程电阻或电容阵列,流片后通过测试调整。

注意:工艺角仿真很耗时,建议先把典型角的参数优化好,再跑其他角。如果时间紧,至少跑ff和ss两个极端角。

4.4 PSRR与噪声仿真

PSRR(电源抑制比)反映的是电源波动对输出的影响。仿真方法:在电源上加一个AC小信号,跑AC仿真,看输出端的增益。

在ADE L里,把VDD的AC幅度设为1,跑AC仿真,频率范围1Hz到100MHz。输出端的增益曲线就是PSRR。DC处PSRR越高越好,一般要求> 60dB。

噪声仿真用noise分析。设置输出节点和输入源,跑完之后看输出噪声谱密度。低频噪声主要来自BJT的散粒噪声和电阻的热噪声。如果噪声超标,可以增大BJT面积或增大电阻值。

5. 常见问题排查与实战避坑指南

5.1 仿真不收敛怎么办

这是Cadence仿真最常见的问题。BGR电路里既有正反馈又有负反馈,收敛难度比普通放大器大。

我遇到过的原因和解决方法:

问题现象可能原因解决方法
DC不收敛简并点导致加启动电路,或设初始条件
瞬态不收敛时间步长太大减小maxstep,用gear2方法
温度扫描跳变某节点电压突变检查是否有管子退出饱和区
工艺角不收敛模型参数极端用nodeset设初始节点电压

在ADE L里,可以通过Simulation → Options → DC设置初始条件。或者用nodeset语句在网表里强制某个节点电压。

5.2 启动电路失效的排查思路

启动电路失效的表现是:DC仿真输出为0V或VDD,但加了瞬态激励后能正常工作。

排查步骤:

  1. 先去掉启动电路,跑DC仿真,确认电路确实存在简并点
  2. 加上启动电路,跑瞬态仿真,看输出是否能在上电后建立
  3. 如果瞬态能建立但DC不行,说明启动电路只在瞬态有效,DC时无法维持
  4. 检查启动电路的NMOS是否在正常工作时完全关断

我踩过的一个坑:启动电路的NMOS尺寸太大,正常工作时漏电流影响了电流镜的精度。后来把NMOS的W/L减小到原来的1/10,问题解决。

5.3 输出温漂曲线异常的分析

温漂曲线异常通常有几种表现:

曲线单调上升或下降:K值不对,调整R2/R1比值。

曲线有拐点或跳变:某个晶体管在不同温度下工作区变了。检查BJT的偏置电流是否在高温下过大导致进入大注入区。

不同工艺角下曲线差异大:电阻的工艺偏差导致K值变化。考虑用同类型电阻(比如都用多晶硅电阻)来匹配。

低温下输出异常:BJT在低温下β降低,导致基极电流影响变大。可以增大BJT面积或改用衬底PNP。

5.4 版图匹配与后仿真注意事项

原理图仿真通过只是第一步,版图才是决定最终性能的关键。

BGR的版图匹配要求很高,几个要点:

  • Q1和Q2要采用共质心布局,周围加dummy
  • 电阻要同方向、同宽度,匹配精度要求高时用多个单元并联
  • 电流镜的PMOS要对称布局,减小梯度效应
  • 启动电路要远离核心电路,避免耦合

后仿真时,把版图寄生参数提取出来(用PEX或Star-RC),重新跑温度扫描和工艺角。如果后仿真结果和原理图差异大,重点检查寄生电阻和寄生电容的影响。

6. 从仿真到流片的关键检查清单

6.1 仿真验证清单

在提交版图之前,我通常会过一遍这个清单:

  • DC工作点:所有管子工作在饱和区,节点电压合理
  • 温度扫描:-40°C到125°C,TC < 50 ppm/°C
  • 工艺角:tt/ff/ss/sf/fs五个角都跑过,输出偏差< 3%
  • 电源扫描:1.8V到3.3V,输出变化< 1%
  • PSRR:DC处> 60dB,1MHz处> 20dB
  • 噪声:低频噪声< 50μVrms
  • 启动:瞬态仿真确认上电后< 100μs建立
  • 功耗:静态电流< 50μA

6.2 我个人的经验总结

做了这么多年BGR,最大的体会是:仿真通过不代表流片成功,但不仿真一定失败。BGR的很多问题在仿真阶段就能发现,比如温漂过大、启动失败、PSRR不够。这些问题如果留到流片后才发现,改一版就是几十万的成本。

另一个体会是:不要迷信自动优化工具。Cadence有Optimizer,可以自动调参数,但BGR的优化目标不是单一的。你要同时兼顾温漂、功耗、面积、PSRR,这些指标之间是矛盾的。自动工具能帮你找到局部最优,但全局的取舍还是要靠人来判断。

最后分享一个小技巧:在ADE L里用Parametric Analysis做参数扫描,比手动改参数高效得多。比如你可以同时扫描R1和R2的值,看温漂曲线的变化,很快就能找到最优组合。这个功能在ADE L的Tools → Parametric Analysis里,用一次就回不去了。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询