资讯动态

模拟版图设计入门指南:从PDK、DRC到LVS的完整学习路径

发布时间:2026/9/20 1:52:15 来源:尧图企业网站定制
1. 模拟版图入门先搞清楚你在学什么很多人第一次打开 Virtuoso 的 Layout 窗口时面对满屏的图层、标尺和快捷键脑子是懵的。这很正常。模拟版图本身就是一个“手艺活”和“工程活”的结合体它不像写代码那样有明确的语法规则也不像画 PCB 那样可以随意挪动器件。你画的每一根线、放的每一个过孔最终都会变成硅片上的物理图形直接影响芯片能不能工作、性能好不好、良率高不高。我刚开始接触模拟版图的时候最大的困惑不是“怎么画”而是“为什么要这样画”。比如为什么差分对要对称为什么电流镜要匹配为什么有些线要走宽、有些线要走窄这些问题如果一开始不搞清楚后面画出来的版图就是“照葫芦画瓢”遇到新电路就不知道怎么下手了。所以这篇笔记的核心目标很明确帮你把模拟版图学习的基础框架搭起来。所谓基础框架不是让你立刻画出一个运放或者 Bandgap而是让你明白整个学习路径分几步、每一步要掌握什么、用什么工具、踩什么坑。适合刚入行的版图新手也适合做了几年但一直“只画不思”的工程师回头补课。先说一下我自己的背景。我本科学的是微电子但真正接触版图是在研究生阶段。当时导师丢给我一个简单的电流镜电路让我用 Virtuoso 画出来跑通 DRC 和 LVS。我花了整整两周才搞定中间经历了图层选错、DRC 报了几百个错、LVS 死活对不上、Calibre 跑不起来等一系列问题。现在回头看那些坑其实都有规律可循只是当时没人告诉我。这篇文章会围绕几个核心点展开PDK 是什么、Virtuoso 的基本操作逻辑、DRC 和 LVS 到底在检查什么、Calibre 怎么用、以及一个完整的版图设计流程应该怎么走。每个部分我都会尽量讲清楚“为什么”而不是只告诉你“怎么做”。因为工具操作可以查文档但设计思路和避坑经验才是真正值钱的东西。2. 核心概念拆解PDK、DRC、LVS 到底在干什么2.1 PDK版图设计的“规则手册”和“材料箱”PDK 全称 Process Design Kit翻译过来叫“工艺设计套件”。你可以把它理解成一个“材料箱规则手册”的组合。材料箱里有什么有晶体管、电阻、电容、电感这些器件的版图符号Layout Cell还有各种金属层、通孔、阱区的定义。规则手册里有什么有最小线宽、最小间距、最小面积、密度要求、天线效应规则等等。为什么 PDK 这么重要因为你画的版图最终是要送到晶圆厂去制造的而晶圆厂的工艺能力是有限的。比如某家工艺的最小线宽是 0.18μm你画了一根 0.1μm 的线晶圆厂根本做不出来或者做出来良率极低。PDK 就是晶圆厂和设计者之间的“合同”你按我的规则画我保证能给你造出来。我见过很多新手拿到 PDK 之后直接就开始画完全不看 Design Rule Manual。结果 DRC 一跑几千个错误然后一个一个去查效率极低。正确的做法是先花半天时间把 PDK 的文档翻一遍重点看这几项最小线宽和最小间距按金属层分类通孔的类型和尺寸Via1、Via2 等阱区和衬底的连接规则密度规则Density Rule天线效应规则Antenna Rule这些规则不是让你背下来而是让你在画的时候心里有数。比如你知道 M1 的最小线宽是 0.23μm那你画电源线的时候就不会傻乎乎地画 0.1μm。提示PDK 通常由晶圆厂提供不同工艺节点的 PDK 差异很大。比如 TSMC 180nm 和 TSMC 40nm 的规则完全不同不要混用。2.2 DRC设计规则检查你的“第一道安检”DRC 全称 Design Rule Check设计规则检查。它的作用很简单检查你画的版图是否符合 PDK 里定义的物理规则。比如线宽够不够、间距够不够、通孔有没有放对、阱区有没有遗漏。DRC 通常由 Calibre 或 Assura 这样的工具来跑。跑完之后会生成一个错误报告告诉你哪些地方违反了规则。新手看到几百个 DRC 错误很容易慌但其实 DRC 错误是有规律可循的。常见的 DRC 错误类型包括错误类型含义常见原因线宽不足某根线的宽度小于最小线宽画线时没注意 PDK 规则间距不足两根线之间的距离小于最小间距布局太挤或者忘了留 spacing通孔缺失该放通孔的地方没放忘记连接不同金属层阱区未连接阱区没有接到电源或地忘了打阱区接触密度不足某层金属的密度低于要求大面积空白区域没填充 dummy我个人的经验是DRC 错误不要一个一个改先分类。比如先看有多少是线宽问题、多少是间距问题、多少是通孔问题。然后批量修改。比如线宽问题你可以用 Virtuoso 的“Edit in Place”功能批量调整间距问题可以用“Stretch”命令批量拉开。还有一个技巧跑 DRC 之前先跑一次“Check and Save”确保你的版图没有语法错误。Virtuoso 有时候会因为某个图形没有闭合而报一堆莫名其妙的 DRC 错误其实根源只有一个。2.3 LVS版图与原理图的一致性检查LVS 全称 Layout Versus Schematic版图与原理图对比。它的作用是检查你画的版图是否和原理图在电气连接上完全一致。比如原理图里 M1 的栅极接的是 VIN版图里是不是也接的是 VIN原理图里有两个电阻版图里是不是也有两个LVS 比 DRC 更“高级”一点因为它涉及到器件识别和网络提取。Calibre LVS 的工作流程大致是从版图中提取器件晶体管、电阻、电容等从版图中提取连接关系网络从原理图中提取器件和连接关系对比两者是否一致LVS 常见的错误类型包括器件数量不匹配版图里多了一个晶体管或者少了一个器件参数不匹配比如原理图里 W/L 是 10/1版图里画成了 10/2网络不匹配某个节点在原理图里叫 VOUT在版图里叫 NET123软连接Soft Connect版图里两个网络通过高阻路径连接LVS 认为它们是同一个网络但实际不应该连这里重点说一下LVS Soft Connect。这个词在热搜里也出现了说明很多人遇到过。Soft Connect 通常是因为版图里两个本来不应该连接的节点通过衬底或者阱区形成了高阻通路。比如两个 NMOS 的源极都接在 VSS 上但它们的衬底也接在 VSS 上如果衬底没有正确隔离LVS 可能会认为这两个源极是同一个网络。解决方法是检查阱区和衬底的连接确保每个器件的衬底都接到了正确的电位。注意LVS 通过不代表版图一定没问题。LVS 只检查电气连接不检查寄生参数、不检查匹配性、不检查噪声耦合。这些要靠后续的寄生提取和仿真来验证。3. Virtuoso 实操从零开始画一个反相器版图3.1 环境准备启动 Virtuoso 和导入 PDK在开始画版图之前你需要确保几件事Virtuoso 已经安装并配置好通常由公司的 IT 部门或者实验室管理员配置。你需要知道你的工艺库路径在哪里。PDK 已经导入在 Virtuoso 的 Library Manager 里你应该能看到 PDK 的库比如tsmc18或者gpdk180。Calibre 已经配置好DRC 和 LVS 的规则文件Rule File路径要正确。启动 Virtuoso 的命令通常是virtuoso 然后在 CIWCommand Interpreter Window里你可以通过Tools - Library Manager打开库管理器。找到你的 PDK 库比如gpdk180里面会有nmos、pmos、res、cap等器件。我建议新手先用gpdk180这样的通用工艺库练手因为它的规则相对宽松文档也比较全。等熟练了再换到实际的工艺库。3.2 创建版图单元从原理图到 Layout假设你已经画好了一个反相器的原理图现在要画它的版图。步骤如下在 Library Manager 里右键点击你的设计库选择New - Cell View。在弹出的对话框里Cell Name 填invView Name 填layoutTool 选Virtuoso。点击 OKVirtuoso 会打开 Layout 窗口。这时候你会看到一个空白的画布左边是 Layer Selection 面板右边是工具栏。先别急着画先做几件事设置 Grid在 Layout 窗口里按e键打开 Display Options把 Grid 设成 0.01μm 或者 0.005μm。这样你画线的时候可以对齐到格点。加载 PDK 的 Layer在 Layer Selection 面板里你应该能看到 PDK 定义的图层比如M1、M2、POLY、NWELL、PWELL等。如果看不到说明 PDK 没加载成功。设置快捷键Virtuoso 的默认快捷键很反人类比如p是画线r是画矩形m是移动。你可以自己改也可以慢慢适应。3.3 画反相器版图一步一步来反相器的版图其实很简单但它是你理解版图设计流程的最好例子。下面是我自己的画法供参考第一步放 NMOS 和 PMOS从 PDK 库里调出nmos和pmos的版图符号。注意PDK 提供的器件通常有多个版本比如nmos_3t三端和nmos_4t四端。对于反相器你需要四端器件因为衬底要单独接。放好之后调整它们的尺寸。比如 NMOS 的 W/L 设成 1/0.18PMOS 设成 2/0.18。为什么 PMOS 要宽一些因为 PMOS 的载流子迁移率比 NMOS 低所以要更大的宽度来匹配驱动能力。第二步画阱区和衬底接触PMOS 需要放在 NWELL 里NMOS 放在 PWELL 或者 PSUB 上。然后在 NWELL 里打 NWELL 接触接到 VDD在 PSUB 上打 PSUB 接触接到 VSS。这一步很关键因为如果阱区没接好LVS 会报错而且实际芯片里会导致闩锁效应。第三步画栅极连接把 NMOS 和 PMOS 的栅极用 POLY 连起来作为输入 VIN。注意 POLY 的线宽要符合 PDK 规则通常是 0.18μm。第四步画源漏连接NMOS 的源极接到 VSSPMOS 的源极接到 VDD。NMOS 和 PMOS 的漏极连在一起作为输出 VOUT。这些连接通常用 M1 走线通过 Contact 连接到源漏区。第五步画电源线和地线用 M1 或者 M2 画 VDD 和 VSS 的电源线。注意线宽要足够因为电源线上有电流流过。对于反相器这种小电路M1 的默认线宽就够了。第六步跑 DRC 和 LVS画完之后先按ShiftX保存然后跑 DRC。在 CIW 里输入calibre -drc -hier -turbo 4 drc_rule_file如果 DRC 通过再跑 LVScalibre -lvs -hier -turbo 4 lvs_rule_file如果 LVS 也通过恭喜你你的第一个版图完成了。3.4 实操心得那些没人告诉你的细节Grid 设置很重要我一开始没设 Grid画出来的线全是歪的DRC 报了一堆间距错误。后来把 Grid 设成 0.005μm问题就少了很多。不要手动改 PDK 器件PDK 提供的器件版图是经过验证的你手动改它的尺寸或者形状可能会导致 DRC 或 LVS 失败。如果需要不同尺寸的器件用 PDK 的参数化单元PCell来生成。LVS 报错先看“Netlist”Calibre LVS 会生成一个svdb目录里面有layout.net和source.net。对比这两个文件能快速找到不匹配的网络。DRC 错误不要慌几百个 DRC 错误很正常先分类再批量改。我见过一个新手一个一个改改了一周还没改完。4. 常见问题与排查技巧实录4.1 DRC 报错Partial Route Conflicts 怎么处理热搜里有一个词是[drc rtstat-6] partial route conflicts: 1184 net(s) have a partial conflict。这个错误通常出现在 Calibre 的 RTRoute检查里意思是“部分布线冲突”。简单说就是你的版图里有一些网络它们的布线路径不完整或者和其他网络有冲突。这个错误的原因通常有几个布线没有完全连接比如某个网络的线画到一半断了没有接到目标器件上。布线路径被阻挡比如你想从 A 点走到 B 点但中间被另一个器件挡住了线走不过去。布线层选择错误比如你用了 M1 走线但 M1 在某个区域被禁止使用。解决方法用 Virtuoso 的“Highlight Net”功能把报错的网络高亮出来看看哪里断了。检查布线路径上有没有障碍物如果有换一层金属或者绕路。如果是布线层的问题查 PDK 的 Layer Map确认哪些层可以用。我个人的经验是这个错误通常是因为布线不完整。你可以在 Layout 窗口里按ShiftN打开 Net Highlighting然后逐个检查报错的网络。4.2 LVS 报错Soft Connect 怎么排查LVS Soft Connect 是另一个高频问题。它的本质是版图里两个网络通过高阻路径比如衬底、阱区、或者未连接的 POLY形成了连接但 LVS 认为它们应该是同一个网络。排查方法检查阱区和衬底连接确保每个器件的衬底都接到了正确的电位。比如 NMOS 的衬底接 VSSPMOS 的衬底接 VDD。检查 POLY 走线如果 POLY 走线跨过了多个器件但没有正确隔离可能会导致 Soft Connect。检查 Calibre 的 LVS 选项有些 LVS 规则文件里会设置LVS Soft Connect的阈值你可以调整这个阈值来忽略一些高阻连接。提示Soft Connect 不一定是错误有时候是设计需要的。比如两个 NMOS 的衬底都接 VSS它们本来就是同一个网络。但如果 LVS 报 Soft Connect你需要确认这个连接是不是你想要的。4.3 Virtuoso 使用中的小问题电阻不显示阻值怎么办在 Virtuoso 里电阻的阻值通常显示在属性里。如果看不到按q键打开属性窗口检查Resistance参数。如果还是看不到可能是 PDK 的显示设置问题需要在 Display Options 里打开“Value”显示。原理图自动打 Pin在原理图里你可以用Create - Pin手动打 Pin也可以用 SKILL 脚本自动打。我通常手动打因为自动打的 Pin 有时候位置不对。扫描 NMOS 的 gmoverid 步骤这是仿真相关的内容简单说就是跑 DC 扫描然后计算 gm/Id。在 ADE 里设置变量扫描然后用 Calculator 计算 gm/Id。5. 学习路径建议从新手到能干活5.1 第一阶段熟悉工具和基本概念这个阶段的目标是能用 Virtuoso 画出一个简单的版图并跑通 DRC 和 LVS。建议从反相器、与非门、或者简单的电流镜开始。不要一上来就画运放那样会打击信心。时间投入2-4 周。重点掌握Virtuoso 的基本操作画线、放器件、移动、复制PDK 的图层和规则DRC 和 LVS 的基本流程Calibre 的基本命令5.2 第二阶段理解匹配和对称这个阶段的目标是能画出差分对、电流镜、Bandgap 等需要匹配的电路。匹配是模拟版图的核心也是区分新手和老手的关键。时间投入1-3 个月。重点掌握共中心布局Common Centroid叉指结构InterdigitationDummy 器件对称布线5.3 第三阶段寄生提取和后仿这个阶段的目标是能从版图提取寄生参数并跑后仿。后仿是验证版图性能的关键步骤。时间投入1-2 个月。重点掌握Star-RC 或者 Quantus 提取寄生后仿的设置和调试寄生对电路性能的影响5.4 第四阶段实战项目这个阶段的目标是独立完成一个完整的模块版图比如 LDO、PLL、ADC 等。这个阶段没有固定的时间取决于项目的复杂度。重点掌握版图规划Floorplanning电源网络设计信号完整性噪声隔离6. 个人经验分享那些年我踩过的坑最后分享几个我自己的踩坑经历希望能帮你少走弯路。坑一不看 PDK 文档就开画。我刚开始画版图的时候觉得 PDK 文档太厚懒得看。结果 DRC 报了几千个错误改了一周才改完。后来我学乖了每次拿到新 PDK先花半天看文档后面画的时候顺畅多了。坑二LVS 通过就以为万事大吉。有一次我画了一个电流镜LVS 通过了但后仿发现电流偏差很大。原因是版图里两个晶体管的匹配不好导致电流镜比例不对。LVS 只检查连接不检查匹配。坑三忽略电源线的宽度。有一次我画了一个功率管电源线画得太细后仿发现 IR Drop 很大导致输出功率不够。后来把电源线加宽了一倍问题解决。坑四DRC 错误一个一个改。这是新手最容易犯的错误。正确的做法是先分类再批量改。比如线宽问题可以用“Edit in Place”批量调整间距问题可以用“Stretch”批量拉开。坑五不保存版本。Virtuoso 有时候会崩溃如果你没保存画了一天的版图就没了。我现在的习惯是每画完一个模块就保存一次并且用File - Save As保存不同版本。这些坑看起来很小但每一个都让我浪费了不少时间。希望你看完这篇笔记之后能直接跳过这些坑把时间花在真正重要的地方理解电路、优化匹配、提高性能。模拟版图是一门需要耐心和细心的手艺没有捷径可走。但只要你把基础框架搭好了后面的路会越走越顺。我到现在还记得第一次看到自己画的版图通过 LVS 时的兴奋感那种成就感是实实在在的。希望你也能早日体验到。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价