1. 带隙基准为什么值得单独立卷:一个小模块决定全芯片精度
做模拟版图有些年头的人应该都有一种感觉:带隙基准电压源(bandgap)这个模块,看起来不大,结构也不复杂,就那么十几个管子加一串电阻,但它往往是整个芯片里最难做到"一次流片就达到指标"的模块之一。别的模块出了问题,顶多是那一路功能不行;bandgap出了偏差,全芯片的参考电压、比较器阈值、LDO输出、ADC的满量程范围全都会跟着漂。我见过不少次,一个本该是"基准"的模块,做出来的电压在温度变化下像呼吸灯一样缓缓漂移,整个系统的精度预算直接报废。
带隙基准的原理说出来不算深奥:利用两个方向相反的温度系数叠加,产出一个近似与温度无关的电压。晶体管的基极-发射极电压VBE随温度升高而下降,大约在-2mV/°C左右;而两个不同电流密度下的VBE差值ΔVBE则与温度成正比,大约是+0.085mV/°C乘以某个系数。把这两部分按比例加权相加——典型做法是用运放把ΔVBE施加在一个电阻上,再用另一个电阻把对应的电流转换为电压加到VBE上——就能得到一个温度系数近似为零的基准电压。常规CMOS工艺下这个值基本都落在1.2V上下,接近硅材料的带隙电压1.22eV,这也是"带隙基准"这个名字的由来。
这个原理在教科书上很简单,真正拉开差距的地方在于"加权"这两个字。你需要的所有比例关系——运放输入对管的跨导匹配、电流镜的镜像精度、两个支路电阻的比值、乃至双极晶体管的发射极面积比——几乎全部要靠版图来实现。任何一项匹配出了问题,都会直接变成输出电压的温漂系数恶化,或者不同芯片之间基准电压离散性变大。换句话说,bandgap的版图质量和电路设计质量几乎是同等权重,谁也不能偷懒。
这篇文章打算把我实际做过的、也反复踩过坑的带隙基准版图设计流程完整梳理一遍。适合两类人看:一是刚入门模拟版图、第一次接到bandgap任务的工程师,可以拿这当一份实操路线图;二是已经画过一两个版本、想对照检查自己是否遗漏关键布局细节的同行。我尽量把每个环节背后的"为什么"也说清楚,而不只是告诉你"这里要匹配"、那里要加dummy"——知其然但不知其所以然,换个结构就露馅了。
2. 动工之前的功课:从原理图里读出版图约束清单
2.1 先读电路拓扑,而不是急着开软件
很多新手拿到bandgap的schematic,第一反应是打开版图工具、把器件从库里调出来、然后开始连线。这个顺序基本是错的。画版图之前必须先花半天到一天时间,把电路的电流走向、匹配要求、敏感节点全部梳理清楚。否则你边画边改,器件位置挪来挪去,最后时间都耗在返工上。
一颗典型的带隙基准电路,不管结构怎么变化,核心都包含几个固定角色:一个运算放大器,两个(或一组)工作在不同电流密度下的双极晶体管,一组按比例设计的电阻网络,通常还有一对电流镜。把这些角色在纸上画成"版图约束图",标注清楚哪些器件之间有匹配关系、哪些节点是敏感节点、哪些支路对寄生电阻敏感。这一步虽然是画图而不是画版图,但它决定了你后面布局的骨架。
我自己习惯在原理图上用不同颜色标注:红色表示需要严格匹配的器件组,比如运放的差分输入对、电流镜对、电阻比例网络;黄色表示次级敏感,比如运放的有源负载;绿色表示普通器件。标注完之后,"哪些器件必须靠近""哪些器件必须走线对称""哪些节点绝不能绕远路"就一目了然了。
2.2 关键的匹配比例与设计参数摘录
新一代的bandgap电路结构可能略有差异,但版图需要落实的核心比例关系逃不出下面这张表。把这些参数从电路设计者那里确认清楚,并且记在工作笔记上,是动工前的必修课。
| 电路要素 | 典型匹配要求 | 版图注意点 |
|---|---|---|
| 双极晶体管Q1、Q2 | 发射极面积比通常为1:8或1:16(由电路决定) | 同圆心布局、共用同一隔离岛、保证热梯度一致 |
| 运放差分输入对 | 完全匹配,失调敏感性极高 | 共质心交叉布局、加dummy、走线严格对称 |
| 电流镜有源负载 | 与输入对同方向、同尺寸 | 方向一致、间距一致、源漏金属连法一致 |
| 电阻比例网络(R1、R2、R3等) | 电阻比值精度决定温漂系数 | 同材料、同宽度、分段交织、两端加dummy |
| PTAT电流产生支路 | 两条支路寄生电阻要尽量相等 | 走线长度相等,引线电阻要计入整体电阻值 |
除了这些比例,还需要关注几个和版图直接相关的电路参数:工作电流大小(决定你走线宽度够不够)、对噪声的要求(敏感节点可能需要屏蔽或加大间隔)、启动电路的复位时间(如果带负压检测就需要额外处理ESD路径),还有最重要的工作温度范围。很多bandgap指标要求在-40°C到125°C甚至在更大的范围内温漂小于几十个ppm/°C,这意味着版图里所有影响温度系数的匹配结构,都要能承受这个范围的热梯度差异。
2.3 工艺信息收集与坐标网格规划
开始画之前,工艺相关的技术文件必须先核对到位。开个会也好,翻开design rule手册也好,至少确认以下几件事:金属层数、各层最小线宽/间距、电阻类型和方块电阻值、双极晶体管的结构细节(纵向PNP还是横向PNP,能不能做成多发射极共用岛区)、所有器件是否有单独的衬底/阱连接要求、有没有金属密度规则。
我在这个阶段还会顺手规划坐标网格。把原点设置在版图核心区域中心(通常选运放输入对所在位置),以0.005um为基本网格单位画小尺寸器件、以0.05um为推算网格做整体规划。这样后面做共质心布局、对称走线时,坐标计算会方便得多。不要小看这个习惯,等到需要精确比较两条走线电阻是否一致的时候,规整的坐标系能省下大量计算时间。
3. 版图核心设计:从器件分配到匹配布局的完整走位
3.1 整体布局规划:先定骨架,再填血肉
把电路约束信息整理清楚后,下一步是确定芯片上各功能块的相对位置。带隙基准的面积通常不大,几十平方微米到一两百平方微米量级,但规划不好一样出问题。
我的做法是:以运放输入对为中心点,因为它是最敏感的器件组。以它为中心,向左或向右展开电阻网络;上方放电流镜和有源负载;下方放双极晶体管对和启动电路。这样规划的出发点很朴素——敏感的东西放中间,不敏感的放外圈,外围的其他电路噪声和温度梯度不容易直接影响核心匹配结构。
如果这个bandgap最终要被place在某个更大的芯片里,比如一个电源管理芯片或者传感器信号链芯片,那你最好让整个模块的输入输出端口朝向方便与外部对接的方向。虽然这一步看起来属于系统集成布局,但如果版图画完再接硬线、绕大圈,引线上增加的寄生电阻和电容很可能让你前面的匹配努力大打折扣。任何时候,连接关系最短都是最高优先级,然后才轮到美观。
3.2 运放输入对与电流镜:共质心不是万能的,但不用它肯定不行
运放差分输入对是全电路匹配要求最高的地方。一个几十毫伏的失调电压,经过闭环放大后会直接叠加到基准电压输出上,导致不同芯片之间电压离散性迅速恶化。而失调主要来源于输入对管的栅氧化层厚度差异、沟道长度差异和阈值电压差异,这些差异几乎全部来自工艺制造过程中的局部梯度变化。
解决方案就是大家都听过的共质心(common centroid)布局。以两个输入管M1、M2为例,如果管子尺寸足够分成偶数个finger,就采用"ABBA"式的交叉排列,让两个管子的质心都在布局中心。如果管子数量更多,可以用二维交叉的"ABAB/BABA"排列。这样做的数学意义在于:如果制造过程中多晶硅栅氧厚度从版图左边到右边存在线性梯度,那么对M1和M2的影响会互相抵消,因为它们拥有同一个质心。
不过,只做共质心交叉布局远远不够。每个finger的方向必须完全一致——所有栅极朝向同一个方向,所有源漏金属走向一致。为什么?因为晶体管的应力敏感性是各向异性的,沟道电流方向不同,压阻效应带来的失配也不同。我见过有人把管子转了90度摆放,自认为布局更紧凑,结果后仿失配加倍。方向一致是比交叉更基础的规则,先把方向统一了,再谈共质心。
除此之外,每个匹配器件组的上下左右都应该加dummy管。dummy管不参与电路连接,目的只是让有源管周围的工艺环境完全一致——尤其是离子注入和刻蚀时,边缘器件的掺杂浓度会与内部器件不同。加了dummy之后,有源管的边界条件被"人工标准化",匹配精度立刻上一个台阶。dummy管一定要接地或接固定电位,不能悬空,否则它就是一根漂浮的天线,不但不帮匹配,还给你注入噪声。
电流镜的情况与输入对类似,只是容错空间稍大一些。电流镜的镜像误差会直接决定PTAT电流的比例精度,从而影响温度系数。所以电流镜同样要做交叉、加dummy、方向一致。但有一个细节很多人忽略:电流镜的两个管子,其源端的寄生电阻如果不相等,哪怕管子本身匹配完美,镜像电流也会出现系统性偏差。因此,源端金属走向要完全对称,接到电源轨的过孔位置也要对齐。把电流镜源端的寄生电阻差异控制在1%以内,是一个可以量化的目标。
3.3 双极晶体管布局:发射极面积比与共用隔离岛的艺术
CMOS工艺里的带隙基准,核心器件通常是寄生纵向PNP管(在N阱里做P型发射极、N阱做基极、P衬底做集电极),或者是某些特殊工艺提供的横向PNP管。这类管子的关键版图要求是:Q1和Q2必须保证发射极面积比例精确(比如1:8),且两者的热梯度尽量一致。
最实用的做法是把Q2的8个发射极单元(或16个)分成阵列,围绕Q1成环形排列,使Q1处于阵列几何中心。这样Q2的8个单元各自与Q1的距离、方向基本一致,周围热环境也相同,比例精度最高。如果工艺允许共用N阱,就把Q1和Q2的所有发射极放在同一个大N阱里,只通过不同的P+注入区面积来定义比例关系,这样能进一步消除隔离阱之间的电位差和边界效应。
还有一点容易被忽略:这些双极晶体管在工作时基极电流虽然不大,但它们的衬底(集电极)必须可靠接到地。P衬底在整个芯片上本来就是接地的,所以寄生PNP的集电极连接不会成为瓶颈。但要注意,较大面积的三极管阵列在版图上占据了相当一块面积,如果它周围有其他阱或高阻层,需要检查latch-up风险,即N阱到P衬底的寄生晶闸管结构是否可能被误触发。给三极管阵列加一圈保护环,并确保环内的衬底接触孔密度足够,是标准操作。
3.4 电阻网络:比值精度是所有匹配要求中最好做也最容易翻车的
电阻网络在bandgap里承担两个任务:一是把ΔVBE转化为PTAT电流,二是把PTAT电流转化成一个温度系数为正的电压,与VBE叠加。最终温漂指标很大程度上取决于电阻比值精度。好消息是,电阻匹配是版图里最容易做好的匹配类型——因为方法极其成熟;坏消息是,很多人都做得不彻底,差最后一步。
电阻匹配的第一原则是:所有需要匹配的电阻,必须使用同一种材料。高阻多晶硅电阻和低阻多晶硅电阻的温度系数不同、应力行为不同,哪怕你比值算得再好,也不能混用。即便同一种材料,宽度也必须一致——宽度不同,边缘刻蚀的横向偏差对总宽度的影响比例就不同,比值就产生系统性偏移。
布局时,把需要匹配的电阻按比例做成"分段电路"。比如你需要的比例是R2等于27倍R1,那就把R1设计成一个长度为1个单元、宽度为W的电阻单元,把R2设计成27个这样的单元串联。然后把这些单元做一个蛇形或梳齿状的排列——常见做法是把R1单元插入R2的中间位置,让所有单元的质心重合。两端再各加一个dummy电阻单元,保证边界条件一致。这样制造工艺中的任何横向扩散、纵向厚度变化,对所有电阻单元都是同等比例的,比值自然被保住。
这里有个操作细节值得分享:蛇形电阻的拐角处电阻率会比直线部分略高,所以如果电路设计要求尽可能高的线性精度,可以在电阻两端加额外的补偿段,或者干脆采用全程直线的"L型端接"结构。多花一点面积,换比值精度,通常值得。
4. 走线、隔离与寄生控制:决定性能上限的看不见的手
4.1 信号走线的三条军规:短、直、对称
匹配器件布局完成之后,接下来是连线的环节。很多版图新手觉得连线就是把节点接上就行,其实在bandgap这种高精度模拟模块里,信号路径的品质直接影响性能。
第一条军规是"短":所有敏感信号线——比如运放反相输入端通往三极管发射极的那条线、电阻网络中负责传递ΔVBE的那条对角信号线——越短越好。原因是走线越长,金属电阻越大,与衬底之间的寄生电容也越大。尤其是ΔVBE本身只有几十毫伏量级,任何与它串联的多余电阻都会直接改变流入电阻网络的电流,导致输出基准电压偏移。
第二条军规是"直":信号线不要绕来绕去,不要为了避开某个器件而走冗长的S形路径。绕线不仅增加电阻,还增加了天线效应风险——在刻蚀金属时,裸露的金属面积越大,收集到的电荷越多,如果这条金属连到了某个晶体管的栅极,累积的电荷可能直接打穿栅氧。
第三条军规是"对称":所有本该对称的支路——比如运放两个输入支路各自通往对应三极管的走线——必须使用相同的金属层、相同的长度、相同的过孔数量和位置。如果一条走线用了两层金属加四个过孔,另一条只用了一层金属加两个过孔,两者的寄生电阻差就会直接转化为失调电压。我常用的办法是在走线之前就算好每条线的预估寄生电阻,争取差值小于该支路电阻的1%,这个目标用对称设计不难达到。
4.2 电源与地线网络:没有那么讲究,但也别太随意
电源轨和地轨的电流相对没那么精细,但也不能随便拉。bandgap整体工作电流通常在微安到毫安级别,地线上的一点点压降如果发生在敏感支路中,也会影响电流分配的精确度。常规做法是用较宽的低层金属把电源轨和地轨做成一个"环"或"梳子"结构,让模块内部任何器件距离最近的电源/地线都不超过几十微米。
如果电路设计中要求某些支路的压降极小,可以考虑在版图上增加一条独立的"虚拟地"走线,专门服务于运放输入级的衬底偏置,而不与功率地共用。这种额外的隔离措施能在后仿阶段看到明显的噪声指标改善,面积代价也不大,值得做。但如果电流很小、噪声要求一般,就不必过度设计,保持常规的宽电源轨和完整的地环即可。
4.3 隔离环设计:让bandgap在吵闹的高压环境里保持清醒
带隙基准通常会被集成在嘈杂的系统中——旁边可能是开关电源的功率管、数字逻辑的时钟树、或者高频震荡的锁相环。这些电路会把衬底噪声、电源噪声通过衬底耦合进bandgap的敏感节点。此时,给bandgap模块做完整的隔离就成了关键工程。
标准做法是"双环隔离":内环是围绕核心敏感区域的P+衬底保护环(接地),外环是N阱环(接电源或浮空),中间再用一圈P+衬底环收尾。这种双环结构能同时阻挡纵向注入到衬底的电流和横向经过阱区的干扰。需要提醒的是,保护环必须是闭合的——哪怕断了一小段,隔离效果会骤降几十分贝,这就像沙堡缺了个口子,潮水照样涌进来。
隔离环的另一个作用是防latch-up。带隙基准模块如果离功率器件太近,功率器件的开关瞬间会在衬底上产生大量空穴电流,这些电流如果灌入bandgap的某个N阱并遇到正向偏置的PN结,就可能触发PNPN结构导通,造成闩锁。加保护环并且让保护环有足够密度的衬底接触孔,能把这些电流吸收掉,避免形成正反馈回路。
4.4 金属填充与密度平衡:一个后知后觉的坑
版图完成后,芯片厂在制造时为了均匀性会在空旷区域自动填充金属dummy块。但这些自动填充的金属往往不加选择地落在敏感金属层附近,增加了寄生电容耦合,甚至可能落在电阻上方改变周围介质的介电常数,间接影响电阻值。
解决思路有两个:要么在版图里预先手动添加符合密度规则的虚拟金属,放在非敏感区域;要么给敏感走线或电阻区域明确标注"禁止填充"(通常在设计规则里有blockage层)。前者更适合追求性能稳定的场景,后者更省事。我个人的习惯是:在电阻网络和运放输入对上方不做任何大块金属填充,其他地方按规则做均匀的dummy填充,保持整体金属密度在20%到80%之间。这样既能满足工艺均匀性要求,又不蚕食关键器件的电磁环境。
5. 物理验证与后仿真:性能参数在版图阶段的验收标准
5.1 DRC/LVS:排查那些一定会出现的报错
版图画完后的第一关是设计规则检查(DRC)和版图与原理图一致性检查(LVS)。DRC主要看几何尺寸是否满足工艺要求——线宽够不够、间距够不够、有没有未连接的阱区。LVS则是把版图里的器件和连线与原理图进行比对,确保你画的电路和设计者给的schematic功能一致。
刚开始做bandgap版图的人,LVS报错是家常便饭。最常见的三类:一是电阻的dummy管或dummy电阻被识别成有源器件,导致器件数量对不上;二是保护环与其他的地线网络没有识别出来,导致短路或开路;三是走线因为用了不同金属层跳线,某些连接没有被打上过孔,导致节点悬空。这些错误本身不难理解,但排查起来极为耗时。我的建议是:每画完一个功能块就立刻做局部的DRC和LVS,不要等到整个版图画完再开始查错。边画边验,错误面会小得多。
5.2 寄生提取与后仿真参数的敏感度分析
物理验证通过后,进入最关键的环节:寄生参数提取(PEX)。提取出来的寄生电阻、寄生电容会被加回到原理图中,重新做一遍仿真。所谓"后仿",就是带着这些真实的寄生参数验证电路是否仍然满足指标。
对于bandgap来说,最容易在后仿中出现问题的部位往往是电阻网络连接线上的金属电阻。如果在版图阶段没有严格执行对称走线,提取出来的两条支路寄生电阻不相等,后仿中就会看到输出基准电压出现一个固定的偏移。这个偏移如果不明显,再叠加温度影响,温漂曲线就会不对称。
处理方式是在后仿阶段做一遍"参数扫描":把电流镜镜像管尺寸、电阻比值、输入对管尺寸这些关键参数各自上下偏移5%到10%,观察输出基准电压和温漂系数如何变化。如果某个方向的偏移导致指标大幅变差,说明对应的版图匹配结构还有改进空间,需要回去微调。这个环节看起来费时,但能提前暴露大量"流片回来才发现"的问题。
5.3 性能参数验收标准:从仿真指标到硅片实测的差距预估
带隙基准版图做得好不好,最终要看几项硬指标。我常用来验收的表格如下,后仿结果贴合表中数值,才有把握进入流片环节:
| 性能参数 | 典型设计目标 | 版图影响因子 |
|---|---|---|
| 温度系数(温漂) | 10 ppm/°C ~ 50 ppm/°C | 电阻比值匹配精度、器件间热梯度 |
| 电源抑制比(PSRR) | > 60 dB @ 1kHz | 运放环路寄生、电源走线阻抗 |
| 输出基准电压离散度(chip-to-chip) | < 2%(目标可以更低) | 输入对管失调、电流镜失配 |
| 静态电流 | 按照电路设计指标 | 版图基本不影响 |
| 启动时间 | 几百纳秒到几十微秒 | 寄生电容、启动路径走线电阻 |
| 输出噪声(低频) | 按系统需求 | 敏感走线屏蔽、衬底耦合隔离 |
关于"仿真与实测的差距"这件事,我给所有初学者一个忠告:如果后仿结果只比前仿真差一点点,那多半是你漏提了某些寄生;如果后仿结果比前仿差了很多,那通常不是运气问题,而是版图里有结构性缺陷,比如某个电阻被放在了大块金属附近、或者走线把两个敏感信号耦合在一起。尽早定位这种结构性缺陷,比盲目加大管子尺寸挽救指标要明智得多。
6. 工程文件管理与交付:让bandgap版图真正可复用
6.1 目录结构的规划与命名规范
版图不是画完就结束的,后面还有后续版本迭代、跨项目复用、甚至其他同事接手维护。工程文件的组织方式直接决定这个模块能活多久。
我习惯把bandgap相关的文件分成四个目录:schematic、layout、verification、doc。schematic里存放原理图、仿真网表;layout里存放版图源文件,以及经过DRC/LVS的干净版本;verification里存放DRC报告、LVS报告、寄生参数提取文件和后仿结果;doc里存放版图说明文档和参数清单。这样无论是谁接手,打开目录就能清楚地知道这个版图的"健康状态"。
关于文件名,我有一条硬规矩:必须包含版本号和日期,且不允许在文件名里写"final"或者"new"这种没有信息量的词。比如"bandgap_layout_20240526_v1.2.gds"就比"bandgap_final_final2.gds"清晰得多。版本管理如果能配合版本控制工具就更好,每次修改前先记录,出了问题能够准确回滚。
6.2 单元(Cell)层次与对外接口的整理
bandgap作为子模块,最终会被放进更大的芯片版图中。所以它的顶层单元边界、对外接口(IO的端口位置、金属层、可连接的过孔层)必须事先与系统级版图规划对齐。如果顶层的金属层分配与全局走线规划不匹配,集成的时候就得在线上打补丁,搞得很难看。
内部结构尽量按照功能分成子单元,比如"opamp_cell""bjt_array""resistor_network"分别建立cell,而不是把所有器件平铺在一个大cell里。这样做的理由很实际:后续如果只改某一个电阻,只需要修改对应的子cell,其他部分可以保持LVS验证结果不变,不需要整体重跑全部验证。层次化设计在版图里带来的节省时间和降低出错概率,比你想象的还大。
6.3 交付清单与说明文档
一个可交付的bandgap版图,除了GDS文件本身,还应该附上LVS跑通的报告、DRC跑通的报告、寄生提取与后仿结果对比,以及一份对照原理图逐条说明版图设计要点的文档。这份文档不需要写得像论文,但要能让一个没有参与本项目的人看完之后,快速知道哪些地方做了匹配、哪些地方留了隔离环、哪些区域必须保持清净。将来如果工艺改版,也能依据这份文档评估需要重画哪些部分。
如果条件允许,把后仿每次迭代的仿真脚本和结果也一起归档。技术参数的表单整理工作看似琐碎,但在项目跨度超过半年之后,这些记录往往比记忆可靠得多。我见过太多团队因为临时缺一份"当时怎么定的比值"记录,导致新版图用了不同结构却没人发现,最后流片回来指标漂移。老老实实做文件管理,是在为几个月后的自己省时间。
7. 一点个人心法与收尾建议
整个带隙基准版图做下来,我的体会可以浓缩成一句话:匹配结构是骨架,寄生控制是肌肉,文件管理是神经系统。骨架决定这个模块能不能工作,肌肉决定工作得好不好,神经系统决定这个工作状态能不能延续下去。
如果只让我挑一个最值得反复确认的细节,我会选"对称性"。不只是器件布局对称,还有走线、过孔、电源接入点、衬底接触孔的位置所有一切都要对称。很多问题你当场看不出来,但后仿会把不对称的那一点点反射变成一个明显的指标偏差。养成"画一步检查一步对称性"的习惯,比最后集中排查要省心得多。
再说一个我自己的小技巧:画完版图后,不要急着提交流片,把版图在每个金属层的俯视图逐层过一遍,重点看那些穿越大块电阻阵列或敏感器件上方的走线。这一步相当于给版图做一次"静态体检",能发现不少DRC检查发现不了的东西——比如某条信号线实际跨越了另一个管子的栅极区域,虽然规则上没报错,但耦合电容已经悄悄加了上去。带着这个视角再读一遍自己画的版图,往往会有意外收获。
版图这行当,入门靠的是规则,进阶靠的是理解,精通靠的是心细。带隙基准是个极好的训练场——它不大,但你需要在一小块面积里处理匹配、隔离、走线、寄生、验证和文档,几乎涵盖模拟版图的全部核心技能。把这一个模块画好、画透,再转去做其他复杂模块,你会发现自己对"版图影响电路"这件事的理解已经有了质的改变。