简介:这是一份面向集成电路版图设计学习者的《运放版图分解》PPT课件,由西南科技大学网络教育系列课程配套,系统讲解运算放大器版图从原理图到物理实现的关键环节。内容覆盖差分对管的二维共中心匹配、Dummy管防漏电、电流镜的ABA/ABB排列与源漏互换技巧,以及LVS检查中的常见错误与规避方法,适合正在学习模拟版图或准备版图相关项目的学生和工程师参考。包体内含1个PPT文件,整体大小约1.32MB,知识点集中,便于按章节快速翻阅。目前已有374人学习/浏览,是同类课程资料中热度较稳定的版图分解素材。通过该PPT可直观获取运放版图布局、连线优化、保护环设置等实操笔记,并对照LVS常见问题清单检查自己的设计,减少版图验证返工,是一份能直接辅助理论理解与上机操作的实用教学资源。
1. 运放版图的胜负手:为什么匹配性比电路结构更决定流片成败
仿真波形跑得再漂亮,从流片回来第一次上电就翻车的运放设计,十有八九是死在版图上。运算放大器的核心指标——输入失调电压、共模抑制比、电源抑制比——几乎全部由输入差分对管和电流镜这两类结构的匹配精度决定,而匹配精度在版图阶段是完全可设计的几何问题。差分对管怎么交错摆放、电流镜的管子按什么顺序排列、源漏在哪儿共用、Dummy 管和保护环加在哪,这些看似琐碎的操作,决定了流过两条支路的电流是不是严格相等。这份版图课程材料用棍棒图和排列枚举,把差分对、电流镜的版图画法以及 LVS 的常见坑位拆得干干净净。看懂这些机制,你就能回答一个最实际的问题:为什么两个电路结构完全一样的运放,版图不一样,测试结果能差出一大截?
2. 差分对管版图:二维共中心匹配是如何把工艺梯度"对称掉"的
2.1 棍棒图:把晶体管摊成一维棍子,再看哪些节点能共用
版图设计的第一步不是铺多边形,而是先画棍棒图。棍棒图把每个晶体管画成一根矩形棒,横向是沟道宽度方向,纵向排列源漏,栅极用一根竖线穿过棒身。原理图里的连接关系在棍棒图上被翻译成"哪个端子和哪个端子相邻"。为什么一定要先画棍棒图?因为扩散区是可以共享的:两个相邻晶体管的源或漏如果电位相同,就能共用一个扩散区,直接少一块有源区。这不仅是省面积,还意味着少一段金属走线和一对接触孔,寄生电容随之下降,匹配性也更好——间距为零的器件,工艺相关度最高。
差分对管的原理图很简单:两颗尺寸相同的 NMOS,源极连在一起接到尾电流源,漏极各接负载。要让两颗管子严格对称,光靠"画得一样大"是不够的。晶圆上的工艺参数存在梯度:多晶硅栅的刻蚀速率从左到右有偏差,注入浓度从中心到边缘有缓变,金属厚度也未必处处均匀。如果左一颗A右一颗B直接排开,这些梯度就会在A、B之间造成系统性的失配。棍棒图阶段要决定的,正是两颗管子的相对几何关系——谁在左边、谁在右边、要不要交叉。
这个阶段还有一个关键动作:把相同标号的节点列出来。差分对的两个源都接到同一个尾电流节点S,两个源就有合并的潜力;让两个源在棍棒图上相邻,就能共用一个扩散区,这是后续所有源漏共用操作的起点。课件里的顺序很清楚:先看哪些能源漏共用,再画棍棒图,最后才连线。初学者最常见的错误是上来就画多边形,结果扩散区画得七零八落,寄生和面积都失控。
2.2 二维共中心排列:质心重合为什么能抵消一阶梯度
差分对匹配的核心手段是共中心(Common Centroid)布局。在半导体工艺失配模型里,阈值电压和电流因子的失配通常被拆成随机失配与系统失配两部分:随机失配与管子面积的平方根成反比,系统失配则与两颗管子的距离成正比——这是理解版图匹配的常用框架。共中心布局消灭的正是后一项:让参与匹配的每一类管子的几何质心落在同一个坐标点上。
一维共中心是 ABBA 交叉排列。四列管子沿 X 方向排开,两颗 A 管放在中间、两颗 B 管放在两侧,A 的质心和 B 的质心都在整个结构的中心。工艺梯度若近似一阶线性,A 管向左偏多少、B 管向同方向也偏多少,配对后偏差互相抵消。如果改成 ABAB 排列,A 管的质心偏左、B 管的质心偏右,一阶梯度无法抵消,组内失配就会随工艺波动线性放大。用文本示意这组对比:
ABBA:A B B A A 管质心:位于两列 A 的中间,即整体中心 B 管质心:位于两列 B 的中间,即整体中心 两者质心重合,一阶梯度对 A、B 的偏差平均后抵消 ABAB:A B A B A 管质心:偏左 B 管质心:偏右 质心分离,一阶梯度对应的失配项无法消除二维共中心就是把同样的思想扩展到 X、Y 两个方向。比如把管子排成 2×2 矩阵,A 管占一条对角线、B 管占另一条对角线;或者用更多管子排成对称的 L 形、环形阵列。为什么值得做二维?因为晶圆上的工艺梯度有方向性,一维 ABBA 只能抵消沿排列方向的分量,垂直方向上的梯度依然存在。二维共中心保证无论梯度方向指向哪边,A、B 组各自的质心都在同一个点上,失配的一阶项在任何方向上都被平均掉。课件里"采用二维共中心匹配"这句话,背后就是这个几何机制。
要提醒的是,共中心匹配不是简单的"看着对称"。ABAB 也是对称图形,但对称轴位置与质心不重合;真正的共中心必须满足每一类管的质心重合,而非图表面对称。画完布局后可以自己算一遍:把每颗管子的坐标按面积加权平均,看两类管的质心坐标差是否为零。这个验证动作在棍棒图阶段做,成本几乎为零,等铺完金属再发现对称性不对就晚了。
2.3 源漏共用与 Dummy 管:减少寄生与边缘效应的两个动作
差分对管画完交叉排列后,紧接着就是源漏共用。两个源节点都是S,把两个源放在相邻位置,共用一个扩散区,于是这个节点的面积减半、接触孔减半,源节点的寄生电容明显变小。对运放而言,输入差分对的源节点是共模信号路径上的关键节点,这里寄生越小,共模抑制比越不容易被高频退化。课件里"源漏共用后的棍棒图"展示的就是这个结果:一根完整的有源区横跨两颗管子的源端,两侧各留一个漏端。
Dummy 管则是另一类问题的解。版图边缘的刻蚀速率与中间区域不同,多晶硅栅在阵列边界处往往更细,导致最外侧晶体管的沟道长度偏小。差分对如果直接把两颗管子裸露在阵列边缘,两颗管感受到的工艺环境就有差异。解决方法是加 Dummy 管:在真实管的两侧各放一个不参与工作的假管,让真实管周围的环境一致。Dummy 管的栅接固定电位,源漏接地,不流过任何信号电流,只充当工艺环境的"填充物"。
Dummy 加在哪、加几个,取决于匹配精度要求。低精度应用可以只加一边甚至不加,高精度差分对两边对称加。代价是面积变大、栅极寄生略微变多。这一取舍在运放版图里反复出现:匹配精度是用面积和寄生换来的。课件里"无 Dummy 有 Dummy"的对比图,直观展示了同一排列加上填充前后的差别。理解了这个机制,你就明白 Dummy 管不是玄学,而是对刻蚀边界条件的工程补偿。
3. 电流镜的版图策略:ABA、ABB 排列背后是源漏共用的搜索
3.1 方案一 ABA:Dummy 管包夹下的对称优先
电流镜是运放里仅次于差分对的匹配敏感结构。基本电流镜由一颗二极管接法的输入管和一颗输出管组成,输出电流与输入电流的比值取决于两管宽长比之比,而宽长比的精度直接落在版图的几何精度上。课件给出的方案一是 ABA 排列:三列管子沿水平方向排开,A 管在两侧、B 管在中间,两侧再各加一个 Dummy。如果把输入管记为 A、输出管记为 B,排列就是 D A B A D。
这个排列的用意很直接:把需要精确镜像的管子放在结构中央,让它感受到的环境在任何方向上都是一致的。A 管分居 B 两侧,关于 B 对称;两边的 A 管匹配,等价于把 A 的总电流平均分到两个镜像位置,B 与任意一侧 A 的失配会被另一侧反向抵消。边界条件也对称:最外侧是 Dummy,真实管没有一个是阵列边缘的"裸管"。ABA 是典型的"先保证匹配,再考虑面积"的方案。
为什么不用 ABBA 或 ABAB 做电流镜?因为电流镜本质是电流比器件,它不像差分对那样要求 A、B 两类管完全等权,而是要求镜像关系稳定。ABA 把 B 管夹在中间,B 管自身的失配零散项被两侧的对称环境压到最低;而 ABBA 更侧重 A、B 两类管配对的质心重合,适合差分对那种"两边严格相等"的场景,用在镜像比不是 1:1 的电流镜上反而浪费。这些排列没有绝对的对错,只有是否匹配当前电路的敏感度。
3.2 方案二 ABB:源漏互换的搜索过程
方案二是 ABB 排列:两颗同类型管相邻摆放在一侧,另一颗管单独在另一侧,外侧补 Dummy。这种排列比 ABA 更省面积——两颗 A 相邻就有机会共用源漏——但代价是需要仔细安排端子的相对位置,否则出现了共用机会却对不上。
这里的关键机制是源漏互换。MOS 管在物理上是对称器件,没有任何一层掩膜区分源和漏,真正决定谁是源谁是漏的,只是版图上连接的金属网络。这意味着画版图时可以"左右翻转"一颗管子的源漏,让需要等电位的端子落在相邻边界上。课件里的操作顺序写得很清楚:先画出排列,再检查相同标号的节点是否相邻;不相邻就执行源漏互换,直到能共用的节点对齐。
这个搜索过程看上去像经验操作,其实可以写成一段判定逻辑。两颗相邻管子各自有源端和漏端,只要存在一对等电位的端子,就有共用扩散区的可能:
def can_share_diffusion(term_a_s, term_a_d, term_b_s, term_b_d): """判断两颗相邻管在当前取向下能否共用扩散区。 参数均为节点名(字符串),返回可共用的节点名或 None。 """ candidate_pairs = [ (term_a_d, term_b_d), # A 漏对 B 漏 (term_a_d, term_b_s), # A 漏对 B 源 (term_a_s, term_b_d), # A 源对 B 漏 (term_a_s, term_b_s), # A 源对 B 源 ] for a_term, b_term in candidate_pairs: if a_term == b_term: return a_term return None逻辑很好理解:只要四对端子组合里有一对电位相同,物理上就可以把这两个端子合并成同一个扩散区,同时省掉一颗接触孔和一段金属。返回 None 时,把其中一颗管子的源漏互换一次再重新判断,通常一两轮就能找到可行取向。使用 ABB 排列时,两颗相邻的 A 管若一个源的电位与另一个漏的电位相同,源漏互换就能把二者对齐,形成整块共用扩散区,这也是课件在 ABB 方案下专门演示"源漏互换,寻找源漏共用"的原因。
这个脚本的价值在于把版图里的试错变成可穷举的搜索。实际的电流镜有多个管子并联,候选排列和取向组合有限,手写代码枚举一遍,比在版图编辑器里来回翻转直观得多。需要注意的是,源漏互换只改变几何连接,不改变电学功能,因为 MOS 管的源漏在器件模型里本身就是互通的,只要栅压条件不变,互换后的电流路径完全等价。
3.3 保护环的接法与作用:衬底噪声如何被围堵
电流镜还有一个隐形的敌人是衬底噪声。数字电路翻转、输出级开关都会向衬底注入电流,造成衬底电位局部波动;MOS 管的阈值电压受衬底偏置调制,衬底一抖,镜像电流跟着抖。对高精度电流镜来说,这种抖动直接转化为输出电流噪声和失真。
保护环是对付衬底噪声的标准手段。在电流镜周围打一圈重掺杂环,NMOS 外面用 P+ 环接地,PMOS 外面用 N+ 环接 VDD。机制上,这个环与衬底形成一个反向偏置的 PN 结,收集从远处扩散过来的少子,同时把敏感区域与噪声源之间的衬底电流路径截断。反向偏置结的耗尽区像一堵墙,让衬底电位波动很难渗透进来。
画保护环有几个容易忽略的细节:环必须连续,缺口会漏噪声;环的宽度要足够,窄环的收集效率有限;环的电位必须用金属明确接出来,不能指望扩散区自身导电。课件在电流镜棍棒图完成后专门加了一步"并打保护环",顺序也值得注意——先完成源漏共用和连线,再围保护环,避免保护环侵入敏感扩散区造成不必要的寄生。对于运放里的主电流镜,这层保护环的收益通常远大于它占掉的那点面积。
4. 大尺寸电流镜的排列设计:BCCAACCB 与 CABCCBAC 的取舍
4.1 当电流镜变成四管并联,排列问题变成组合问题
前面讨论的电流镜只有两三颗管子,ABA 或 ABB 已经足够。课件里的电流镜二复杂度上了一个台阶:多组晶体管并联,每组又由若干同尺寸的管子构成,版图需要在一条直线上排开八个甚至更多位置。排列自由度上升,三个约束开始互相打架:同类管要分布均匀以保证匹配,相邻管的源漏要尽量共用以减小寄生,整体还要关于中心对称以抵抗工艺梯度。
这类问题的本质是组合优化。每个位置可以放 A、B、C 三类管之一,排列方式有 3 的 8 次方种候选,全部人工尝试不现实。课件直接给出了两个有代表性的候选:BCCAACCB 和 CABCCBAC。乍一看两者都是对称串,为什么前者"能全部共用",后者不行?拆开看就清楚了。
BCCAACCB 从左到右是 B、C、C、A、A、C、C、B:相邻的同类管有两组 C-C 和一组 A-A,全部真实管都处于"有同类邻居"的状态;CABCCBAC 是 C、A、B、C、C、B、A、C:只有中间的 C-C 相邻,A 和 B 都被其他类型的管子隔开。这个差别直接决定了源漏共用的上限。
4.2 用枚举脚本验证:为什么 BCCAACCB 能全部共用
把"能不能共用"拆成两个可量化的指标,就可以用脚本评估任意排列。一个指标是相邻同类对数,它近似刻画源漏共用的潜力;另一个是镜像对称度,它刻画共中心匹配的潜力。示例实现如下:
def evaluate(pattern): """评估一个排列串的源漏共用潜力与对称性。 pattern: 由 A/B/C 组成的字符串,每个字符代表一个管位。 返回 (相邻同类对数, 镜像对称位数),均为越大越好。 """ n = len(pattern) adjacent = 0 for i in range(n - 1): if pattern[i] == pattern[i + 1]: adjacent += 1 symmetric = 0 for i in range(n): if pattern[i] == pattern[n - 1 - i]: symmetric += 1 return adjacent, symmetric参数就两个:排列串本身和它的长度。对 BCCAACCB 来说,相邻同类对是位置 2-3 的 C-C、4-5 的 A-A、6-7 的 C-C,共 3 对,且八个位置全部镜像对应,对称位数是 8。对 CABCCBAC 来说,相邻同类对只有位置 4-5 的 C-C,共 1 对,对称位数同样是 8。这就是课件里"能全部共用"和"不能"的量化差:BCCAACCB 的三组相邻同类管都具备共用扩散区的电位条件,而 CABCCBAC 的 A、B 管没有同类邻居,只能在各自位置上单独做扩散区,靠金属跨越其他管子拉通。
但要强调,这个评分函数只刻画几何上的共用程度,不直接等于最优。实际的版图设计还要看金属走线是否顺、电流方向是否一致、热源分布是否均匀,以及供电节点能否在不绕远的情况下接出去。课件在给出 BCCAACCB 后并没有直接结束,而是继续做了三件事:连接标号相同的节点,打保护环,再根据棍棒图铺多边形。这提醒我们,排列枚举只是把搜索空间收敛到少数候选,最后的走线可行性和寄生大小,仍然要回到具体版图上判断。
用脚本做排列搜索有一个附带好处:它可以暴露"看起来对称"的陷阱。有些排列镜像位数很高,但相邻同类对极少,源漏共用率低,面积和寄生都不理想;有些排列相邻同类对多,却破坏了共中心对称。evaluate 函数把两个指标同时算出来,设计者可以按电路需求给两个指标加权排序,而不是凭感觉挑一个顺眼的。
5. 避坑:LVS 反复报错的九条典型根源
LVS(Layout Versus Schematic)把版图提取的网表和原理图网表做比对,是物理验证的第一关。实际踩坑的经验是:这一关卡住的往往不是多边形画错,而是原理图与版图之间的信息错位。课件列了九条典型问题,这里挑五条最常见的展开,每一条都按"现象→原因→解决"来说。
5.1 原理图里存在你根本看不见的元件
现象:LVS 报告版图比原理图多出若干器件,回到原理图却怎么找也找不到。新手第一反应是怀疑版图画多了,反复删改,问题依旧。
原因:原理图上有一些元件不以图形形式出现在视图中,比如模型中隐含的体二极管、衬底接触、ESD 结构,它们只存在于生成的网表里。课件原话是"只能通过网表查看得到",这是最容易被忽略的一类。
解决:从导出的 CDL/SPICE 网表反查,按器件名搜索,定位到对应实例后再回原理图对照。确认它是模型自带的物理效应器件后,在版图里补上对应结构,或通过 LVS 规则文件声明忽略这类器件。不要盲目删版图。
5.2 命名不合理:A=A 这种标号为什么会让 LVS 当场卡住
现象:原理图和版图视觉上完全一致,LVS 却报出大量节点失配,甚至解析报错。排查半天,发现某个节点名是"A=A"。
原因:很多 LVS 工具把"="当作表达式保留字符,节点名里的"="会让网表解析器截断或错读名字。类似的问题还有节点名带空格、以数字开头、包含中文等。命名不规范的节点可能被拆成两个节点,拓扑自然对不上。
解决:定一条硬规则:所有节点名和器件名以字母开头,只包含字母、数字、下划线。原理图顶层名字和版图库名字尽量一致,课件里也专门提到"原理图的命名最好和版图文件的命名相同",省掉一层映射的烦恼。
5.3 D 触发器的输出符号和反相器撞车
现象:D 触发器输出节点标号为Y,版图里反相器或传输门的输出也习惯性标Y,LVS 报出器件类型不匹配或节点悬空。
原因:当两个不同器件的输出节点同名,且符号形状相似时,LVS 在器件识别阶段可能把两者当成同一个网络的一部分,也可能因为同名冲突直接放弃匹配。课件明确写了这一条:"D触发器的输出与反相器或传输门符号相同"是常见病。
解决:给存储单元的输出节点起独有标号,比如 DFF_Q,不要用 Y、Q 这类通用名。符号层面的输出引脚方向也要检查——原理图里定义为输出、生成的符号里却变成输入,同样会造成网表方向混乱。
5.4 输出不能驱动输出:网表里出现两个驱动节点
现象:LVS 报短路,定位到两个子电路的输出端连在同一个节点上。检查版图,金属连得没错,问题出在原理图本身。
原因:数字逻辑里只有三态门或开漏结构允许输出并联,普通运放、门电路的输出端对输出端相连,在网表层面等于两个电压源短接。课件把它列为一条,说明这是原理图阶段就会埋下的错误。
解决:回到原理图确认总线连接结构。如果是故意做线或(wired-OR),必须用三态器件或开漏结构;如果不是,就把两个输出分开。版图再完美也救不了错误的原理图拓扑。
5.5 Virtuoso XL 的输入输出标号不能在版图里手画
现象:用 XL 流程生成的版图,自己在顶层手动加了 text 标号,LVS 仍然报告缺引脚或标号不识别。
原因:XL 流程的器件引脚由原理图同步生成,I/O 标号需要在生成实例时定义。手动贴的 text 只是标注(annotation),不会写入导出网表,LVS 看到的是引脚缺失,而不是标号错误。课件原话是"输入输出标号不允许在版图中给出,需要生成时给出",指的就是这种情况。
解决:用 XL 的 Create Pin 功能或生成选项重新定义 I/O,不手动贴 text。如果必须后补引脚,也要通过引脚编辑器添加,并确认它进入了导出网表。
6. 匹配面积与布线代价的权衡:怎样才算一幅好运放版图
把机制全部讲完之后再看运放版图,评价标准不再只是"LVS 通过"。一幅好的运放版图是在匹配精度、面积和寄生三者之间取得平衡,而不是把所有匹配技巧无差别堆上去。二维共中心匹配消耗面积,Dummy 管占据额外位置,保护环围一圈挡住布线通道,源漏共用节省的寄生可能被绕远的金属连线重新吃掉——每一项技术都有成本。
我的判断顺序是:先看电路的敏感度。输入差分对和主电流镜承担运放最核心的精度指标,值得用满共中心、Dummy、保护环这些手段;偏置电流镜、辅助支路这类对精度不敏感的位置,用简化的 ABB 排列即可,省下的面积留给主放大级。再看面积预算。版图面积直接决定成本,当匹配与面积冲突时,用失配模型估算可接受的偏差范围,而不是凭感觉加倍画大管子——管子面积翻倍,失配只降到原来的约 0.7 倍,边际收益递减得很快。最后走线阶段回头验证源漏共用是否已经做到极致,多一次源漏互换的搜索往往就能省掉一段长金属。
这里说一个我自己的教训。某次做高精度运放,为了把面积压小,省略了差分对两侧的 Dummy 管,仿真和 LVS 都通过,结果流片回来实测失调电压比设计指标大了将近一倍。后来分析就是边缘刻蚀导致的系统性失配——省掉的那两块 Dummy,恰恰是保护真实管工艺环境的关键。从那以后,我每次画运放版图都强制先画棍棒图,把源漏共用机会穷举一遍,确认共中心质心重合,再铺多边形、走线、围保护环,最后才跑 LVS。这个顺序看着慢,实际上最省时间。希望这些原理和教训能帮到你。
本文还有配套的精品资源,点击获取