ARTICLE DETAIL

资讯详情

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

从Widlar电流源到带隙基准:原理、仿真与版图实战

从Widlar电流源到带隙基准:原理、仿真与版图实战 1. 从一个“老掉牙”的电路说起为什么还要聊Widlar电流源做模拟电路这行的人几乎都绕不开一个名字——Widlar。上世纪六十年代Bob Widlar在仙童半导体搞出了一堆影响至今的经典结构其中Widlar电流源可以说是最“不起眼”但又最“无处不在”的一个。你打开任何一个运放的内部原理图或者翻一翻ADC的偏置网络大概率能看到它的影子。但有意思的是很多做了几年电路的人对这个结构的理解还停留在“两个管子加一个电阻”的层面问它为什么能产生小电流、为什么需要匹配、为什么启动电路不能省往往答不上来。我自己也是踩过坑才慢慢把这块吃透的。早些年做低功耗LDO偏置电流要压到微安级别直接用电流镜比例缩放结果电阻值大到版图面积爆炸匹配还一塌糊涂。后来改用Widlar结构一个电阻就搞定了但第一次流片回来发现启动有问题电路卡在零态出不来。从那以后我才认真去翻它的推导去仿真它的温度特性去琢磨版图上那个电阻该怎么摆。再后来做带隙基准发现Widlar电流源几乎是绕不过去的前置模块——你要产生一个与绝对温度成正比的电流PTAT最省事的方法就是用Widlar结构去压一个ΔVBE在电阻上。所以这篇东西我想把Widlar电流源到带隙基准这条线完整地捋一遍。不是教科书式的推导而是从一个实际设计者的角度讲清楚每个选择背后的“为什么”讲清楚仿真时该看什么、版图上该注意什么、流片回来出问题该怎么排查。适合已经学过模拟电路基础、但想把这块知识真正落到实处的朋友。如果你正在做偏置电路、基准源或者准备面试版图设计岗位这篇应该能给你一些直接能用的东西。2. Widlar电流源的核心原理与设计取舍2.1 它到底解决了什么问题先说最朴素的电流镜。两个同尺寸的NMOS栅极接在一起源极接地其中一个管子接二极管形式另一个管子漏极输出电流。理想情况下输出电流等于参考电流因为VGS相同、尺寸相同。但问题来了如果我想让输出电流是参考电流的十分之一怎么办常规做法是把输出管子的W/L做成参考管的十分之一。这在电流比较大的时候没问题比如参考电流100μA输出10μA输出管尺寸缩小十倍版图上还能接受。但如果参考电流本身就只有10μA输出要1μA呢输出管的W/L就得是参考管的十分之一而参考管本身为了匹配和噪声考虑尺寸不能太小。假设参考管W/L是10/1输出管就得是1/1。1/1的管子在小电流下工作VGS靠近阈值匹配性极差而且版图上1μm的宽度光刻误差影响很大。更麻烦的是如果输出电流还要更小比如100nA那输出管尺寸就小到没法做了。Widlar电流源的巧妙之处在于它不去缩管子尺寸而是在输出管的源极串一个电阻。这个电阻上分走了一部分电压使得输出管的VGS比参考管小从而用相同的管子尺寸实现了更小的电流。电流比不再是尺寸比而是由电阻和热电压VT决定的对数关系。这就意味着你可以用两个尺寸相同的管子通过一个电阻把电流缩小一个数量级甚至更多而不需要把管子做到最小尺寸。2.2 推导里的关键假设和实际偏差教科书上的推导很简洁参考管Q1和输出管Q2尺寸相同Q1的VGS等于Q2的VGS加上电阻压降。因为Q1和Q2的VGS差就是ΔVBE而ΔVBE VT·ln(N)其中N是电流比。所以输出电流Iout VT·ln(N)/R。这个公式看起来干净利落但实际设计时你会发现几个问题。第一个问题是N的取值。N是参考电流和输出电流的比值但参考电流本身又依赖于输出电流因为参考支路和输出支路是镜像关系。所以这里其实有一个隐式的循环依赖。实际推导时通常先设定你想要的输出电流Iout然后反推需要的电阻R。但N不能取太大因为ln(N)增长很慢。比如N10ln(10)≈2.3N100ln(100)≈4.6。N增大十倍ln(N)才翻一倍。这意味着如果你想要很小的输出电流电阻R会变得很大。比如VT≈26mVN10Iout1μA那么R 26mV×2.3/1μA ≈ 60kΩ。60kΩ在版图上已经不小了如果Iout要100nAR就得600kΩ面积非常可观。第二个问题是体效应。输出管的源极接了电阻源极电位不再是地而是Iout×R。这会导致输出管的VTH因为体效应而升高。教科书推导通常忽略这一点但实际仿真时你会发现输出电流比理论值偏小因为VTH升高了同样的VGS下电流会减小。补偿的办法是在推导时把体效应考虑进去或者干脆用PMOS来做输出管把电阻接在电源端这样源极电位固定体效应影响小一些。但PMOS的迁移率低同样的电流需要更大的尺寸这也是取舍。第三个问题是电阻的温度系数。Widlar电流源的输出电流正比于VT/R。VT是正温度系数约0.085mV/°C而电阻R如果是扩散电阻温度系数可能是正的也可能是负的取决于工艺。如果R的正温度系数和VT的正温度系数部分抵消输出电流的温度漂移会小一些如果同向叠加漂移就大。这一点在只做偏置的时候可能不太在意但如果你要用这个电流去产生基准电压就必须认真对待。2.3 启动电路为什么不能省这是我最想强调的一点。Widlar电流源有一个“简并”状态所有管子都截止电流为零电路稳定地停在零态。你仿真的时候如果初始条件设为零有些仿真器可能会直接给你零电流的结果你还以为电路坏了。实际上电路有两个稳定点零态和正常工作态。启动电路的作用就是在上电时给电路一个初始扰动把它从零态推出来。启动电路的形式很多最简单的就是一个二极管接法的管子或者一个电容耦合。我常用的做法是用一个PMOS栅极接一个RC网络上电时电容未充电PMOS导通给参考支路注入电流等电容充电后PMOS关断不影响正常工作。这个RC的时间常数要选好太短了启动不可靠太长了上电时功耗大。一般选在微秒到毫秒量级取决于你的上电速度。注意启动电路设计完后一定要做上电仿真把电源从0V斜坡上升到额定值观察电流是否正常建立。还要做电源跌落仿真看电源瞬间掉到零再恢复时电路能不能重新启动。我遇到过电源快速跌落再恢复启动电路没来得及复位电路卡在零态的情况。3. 从Widlar到带隙基准PTAT电流的产生与利用3.1 为什么带隙基准需要PTAT电流带隙基准的核心思想是把一个正温度系数PTAT的电压和一个负温度系数CTAT的电压按一定比例相加得到零温度系数的输出。CTAT电压很容易得到就是三极管的VBE它大约是-2mV/°C。PTAT电压则需要专门产生最常见的方法就是利用两个三极管VBE的差值ΔVBE。ΔVBE VT·ln(N)而VT kT/q是正温度系数的。所以ΔVBE天然就是PTAT电压。但ΔVBE本身很小室温下N8时大约只有54mV。要把它放大到和VBE相当的量级约600mV需要乘以一个系数通常是十几倍。这个放大过程就是通过电阻比例来实现的让PTAT电流流过两个电阻一个用来产生ΔVBE另一个用来产生放大的PTAT电压。而Widlar电流源恰好就是产生PTAT电流的天然结构——它的输出电流Iout VT·ln(N)/R正比于VT反比于R。如果R是正温度系数的Iout的温度系数会略小于VT的温度系数如果R是零温度系数的比如用多晶硅电阻Iout就严格正比于VT。3.2 经典带隙基准的电路拆解一个典型的带隙基准电路可以分成三块PTAT电流产生、CTAT电压产生、求和输出。PTAT电流产生部分通常就是一个Widlar电流源或者它的变种。比如经典的Brokaw带隙基准用了一个运放来强制两个三极管的集电极电压相等从而让ΔVBE落在电阻上产生PTAT电流。这个结构比简单的Widlar电流源多了一个运放但好处是消除了体效应和Early效应的影响精度更高。我自己更常用的是Kuijk带隙基准结构它不需要运放用电流镜和Widlar结构就能实现。具体来说两个PNP三极管一个的发射极面积是另一个的8倍它们接成二极管形式分别流过不同的电流。通过电流镜强制两个支路的电流相等那么两个三极管的VBE差就落在了一个电阻上产生PTAT电流。这个PTAT电流再镜像到输出支路流过另一个电阻产生PTAT电压。同时其中一个三极管的VBE作为CTAT电压。两者相加就得到带隙基准输出。这个结构的精妙之处在于它用电流镜的匹配来代替运放节省了面积和功耗。但代价是对电流镜的匹配要求很高。如果电流镜有失配两个支路的电流不相等ΔVBE就会偏离理论值PTAT电流的温度系数就会变差。所以在版图上电流镜的管子一定要做共质心布局加dummy尽量靠近。3.3 电阻选型对温度系数的影响前面提到PTAT电流正比于VT/R。如果R的温度系数不为零PTAT电流的温度系数就会偏离VT的温度系数。这直接影响带隙基准的温度特性。假设R是正温度系数那么Iout的温度系数 VT的温度系数 - R的温度系数。如果R的温度系数是0.1%/°CVT的温度系数是0.33%/°C那么Iout的温度系数就变成0.23%/°CPTAT电压的温度系数也跟着变小。为了补偿你需要调整电阻比例或者N的值。实际设计中我通常会选两种不同温度系数的电阻来搭配。比如多晶硅电阻通常是负温度系数或者接近零扩散电阻是正温度系数。通过串联或者并联不同比例的电阻可以得到一个等效的、接近零温度系数的电阻。或者干脆利用电阻的温度系数来补偿VBE的温度系数让整个基准的温度系数最小。这需要做温度扫描仿真从-40°C到125°C看输出基准电压的变化然后调整电阻比例。实操心得仿真温度特性时不要只看典型值。要跑蒙特卡洛看工艺角TT、FF、SS、FS、SF下的温度曲线。我遇到过TT角下温度系数很好但SS角下漂移很大的情况原因是SS角下三极管的β变小基极电流影响变大导致ΔVBE偏离理论值。4. 仿真验证从SPICE模型到温度扫描4.1 SPICE模型的选择与导入做Widlar电流源和带隙基准的仿真三极管模型是关键。很多工艺库提供的BJT模型是简化版的只包含基本的直流特性没有包含Early效应和β的温度依赖。如果你用这样的模型去仿真带隙基准的温度特性结果会偏乐观。我一般会找工艺厂要完整的GP模型或者VBIC模型这些模型包含了更多二阶效应仿真结果更接近实测。如果你用的是LTspice或者其他的通用仿真器可能需要自己导入模型。以LTspice为例你可以把工艺厂提供的.model文件直接复制到原理图上或者存成.lib文件然后用.include指令调用。注意检查模型的引脚顺序和你的符号是否一致我见过有人把集电极和发射极接反了仿真结果完全不对排查了半天才发现是符号问题。对于CMOS工艺有时候需要用到衬底PNP。这种PNP的集电极是衬底只能接最低电位。它的β通常很小可能只有5到10基极电流不能忽略。仿真时要注意模型里有没有包含衬底PNP的模型如果没有可以用子电路来搭一个等效的。4.2 直流工作点仿真要看什么跑完直流仿真不要只看输出电流的数值。要打开器件的工作点信息检查几个关键参数VGS、VDS、VTH、gm、gds。对于Widlar电流源重点看输出管的VDS是否足够大保证它工作在饱和区。因为输出管源极接了电阻漏极电位可能被拉低如果VDS小于VDSsat管子就进入线性区了电流会偏离理论值。还要看参考支路和输出支路的电流是否匹配。如果偏差超过5%就要检查是不是有失配或者体效应的影响。我通常会在仿真里加一个参数扫描把电阻值从理论值的0.8倍扫到1.2倍看输出电流的变化范围。如果变化太大说明电路的灵敏度太高需要调整N或者电阻值。另外别忘了看功耗。Widlar电流源本身功耗不大但如果你的启动电路一直有漏电流或者电流镜的支路电流设计得太大整体功耗可能超出预期。特别是做低功耗产品时每一微安都要抠。4.3 温度扫描与蒙特卡洛分析温度扫描是带隙基准仿真的重头戏。设置温度从-40°C到125°C步长1°C看输出电压的变化。理想的带隙基准应该是一个抛物线顶点在室温附近。如果曲线单调上升或者下降说明PTAT和CTAT的比例不对需要调整电阻比。如果曲线开口太大说明曲率补偿不够可能需要加二阶补偿。蒙特卡洛分析用来评估工艺偏差的影响。我一般跑200次看输出电压的均值和标准差。如果标准差超过1%说明电路的鲁棒性不够需要增加修调或者改进版图匹配。修调通常是在电阻上做几个可编程的抽头流片后通过测试来调整。这会增加测试成本但能显著提高良率。常见问题仿真时温度曲线很好但流片回来发现温度系数很差。排查下来往往是版图上电阻的匹配不好或者三极管的布局不对称。电阻要做成相同的宽度和方向三极管要做共质心周围加dummy。这些在仿真里体现不出来但实际影响很大。5. 版图设计匹配、隔离与寄生控制5.1 电流镜的匹配布局Widlar电流源和带隙基准里电流镜的匹配直接决定了性能。两个需要匹配的管子一定要做共质心布局。比如A/B两个管子可以拆成A/2、B/2、B/2、A/2这样交叉排列或者更复杂的二维共质心。这样可以把工艺梯度的影响平均掉。管子的方向要一致不能一个横着一个竖着因为光刻和刻蚀在不同方向上的偏差不一样。dummy管子也很重要。在匹配对的两侧各放一个dummy可以保证边缘管子和中间管子的环境一致。dummy的尺寸和偏置要和正式管子一样但可以不接信号只接固定电位。我见过有人为了省面积不加dummy结果边缘管子的阈值电压和中间差了好几毫伏电流镜失配严重。对于三极管匹配的要求更高。因为ΔVBE直接依赖于两个三极管的VBE差任何失配都会直接转化为PTAT电流的误差。三极管要做成大面积的叉指结构发射极的周长和面积比要一致。如果一个是8倍面积可以用8个相同的单元并联每个单元都做共质心布局。5.2 隔离环与衬底噪声模拟电路最怕衬底噪声。数字电路的开关动作会在衬底上产生几百毫伏的尖峰如果耦合到带隙基准里输出就会抖动。隔离环的作用就是把敏感电路围起来收集衬底上的少数载流子减少噪声耦合。对于Widlar电流源和带隙基准我通常会在外面围一圈P隔离环接最低电位里面再围一圈N隔离环接最高电位。P环收集空穴N环收集电子。两个环之间留一定的间距不要靠太近。隔离环的宽度一般取最小设计规则的两到三倍太窄了收集效果不好太宽了浪费面积。如果工艺有深N阱选项可以把整个模拟模块坐在深N阱里这样衬底噪声的影响会小很多。但深N阱会增加版图复杂度和成本需要权衡。5.3 电阻的版图注意事项Widlar电流源里的电阻以及带隙基准里的电阻都是关键元件。电阻的匹配和温度系数直接影响电流和基准电压的精度。版图上电阻要做成相同的宽度和长度方向一致最好放在同一个well里周围加dummy电阻。电阻的端头效应也要注意。电阻两端的接触孔会引入额外的电阻如果两个电阻的端头结构不一样匹配就会变差。通常的做法是在电阻两端加相同的端头或者用开尔文连接来消除端头电阻的影响。对于需要高精度的电阻可以用多个单元电阻串联或者并联通过修调来调整阻值。修调的方式有激光修调、熔丝修调、或者EEPROM修调。激光修调精度高但成本高熔丝修调便宜但需要额外的焊盘EEPROM修调灵活但需要额外的电路。版图设计面试常问两个电阻需要匹配一个放在另一个旁边但中间隔了一条金属线会不会影响匹配答案是会。金属线会产生应力影响电阻的阻值。所以匹配电阻之间不要走金属线或者走对称的金属线。6. 常见问题排查与实战避坑指南6.1 启动失败的几种可能启动失败是Widlar电流源最常遇到的问题。表现是上电后电流为零或者电流远小于设计值。排查思路如下先检查启动电路是否正常工作用瞬态仿真看启动管子的栅极电压是否按预期变化。如果启动管子一直导通说明RC时间常数太大或者电容没接对。如果启动管子一直关断说明RC时间常数太小或者启动管子的尺寸不够注入的电流不足以把电路推离零态。还有一种可能是电路存在多个简并态。除了零态和正常工作态可能还有中间态。这通常发生在电流镜的管子尺寸比例不合适或者电阻值太大的时候。解决办法是调整管子尺寸或者电阻值让正常工作态成为唯一的稳定态。我遇到过一次启动失败排查了很久才发现是仿真器的初始条件设置问题。仿真器默认所有节点初始电压为零电路就停在零态了。后来加了.nodeset指令给关键节点设了初始电压仿真就正常了。但实际芯片上电时电源是斜坡上升的不会停在零态所以这个问题只存在于仿真里。不过为了保险还是加了启动电路。6.2 输出电流偏差大的原因如果流片回来发现输出电流比设计值偏大或者偏小可能的原因有几个。一是电阻的工艺偏差比如设计值60kΩ实际可能偏差±20%。二是三极管的匹配不好ΔVBE偏离理论值。三是体效应没有考虑充分输出管的VTH比预期高或者低。排查时先测电阻的实际值如果电阻偏差大可以通过修调或者外部调整来补偿。如果电阻正常就测三极管的VBE看两个管子的VBE差是否等于理论值。如果不等说明匹配有问题需要改进版图。如果VBE差正常但电流还是不对就检查输出管的VDS是否足够可能管子进入了线性区。6.3 温度系数不达标的调试温度系数不达标表现为基准电压随温度变化太大或者曲线形状不对。调试步骤先测室温下的基准电压看是否在预期范围内。然后测高温和低温下的电压画出温度曲线。如果曲线是单调的说明PTAT和CTAT的比例不对需要调整电阻比。如果曲线是抛物线但开口太大说明曲率补偿不够。调整电阻比的方法如果PTAT分量太大曲线会上升需要减小PTAT电阻或者增大CTAT分量。如果PTAT分量太小曲线会下降需要增大PTAT电阻。调整后重新流片或者用修调来微调。曲率补偿的方法可以在PTAT电流里加一个高阶项比如利用不同温度系数的电阻或者利用三极管β的温度非线性。这需要更复杂的电路但能把温度系数做到±10ppm/°C以内。6.4 常见问题速查表问题现象可能原因排查方法解决措施上电后电流为零启动电路失效瞬态仿真看启动节点调整RC时间常数或启动管尺寸输出电流偏大电阻偏小或ΔVBE偏大测电阻值和VBE差修调电阻或改进匹配输出电流偏小体效应或电阻偏大检查输出管VDS调整电阻值或改用PMOS温度系数差PTAT/CTAT比例不对温度扫描看曲线形状调整电阻比或加曲率补偿噪声大衬底耦合或电源噪声频谱分析加隔离环或滤波电容匹配差版图布局不对称测多个样本的偏差共质心布局加dummy最后分享一个小技巧做带隙基准的仿真时可以先用理想元件搭一个行为级模型快速验证PTAT和CTAT的比例。确认比例正确后再换成实际的三极管和电阻模型。这样能节省大量仿真时间也更容易定位问题。行为级模型里VT可以用一个电压源加温度系数来实现VBE可以用一个二极管加电流源来模拟。虽然不够精确但用来验证架构足够了。这个内容后续还可以这样扩展如果你要做低功耗的带隙基准可以研究一下亚阈值区的Widlar电流源输出电流可以做到纳安级别但匹配和噪声会更难处理。或者研究一下曲率补偿的进阶方法比如利用MOS管的亚阈值特性产生高阶补偿项。这些都是实际项目中会遇到的挑战有机会再展开聊。
返回列表