第1章 物理验证概述
DRC、LVS、ERC —— 这三个缩写,几乎每个芯片后端工程师每天都要面对。你可能觉得它们只是 tapeout 前的一堆检查,但说实话,物理验证是整个芯片设计流程里最不能糊弄的环节。我做了十几年后端,见过太多因为物理验证没跑透而流片失败的案例,有些甚至直接导致几百万打水漂。
1.1 什么是 DRC / LVS / ERC?
咱们先拆开看。DRC 是 Design Rule Check,检查版图是否符合代工厂的工艺规则。比如线宽不能小于多少,间距不能太近。LVS 是 Layout Versus Schematic,说白了就是检查你画出来的版图,跟原本设计的电路网表是不是一回事。ERC 是 Electrical Rule Check,查的是电气异常,比如悬空节点、电源短路之类。
我个人习惯把这三者比作“芯片出厂前的三道安检”。DRC 查物理尺寸,LVS 查连接关系,ERC 查电气健康。缺一个都不行。
1.2 在芯片设计流程中的位置
物理验证通常放在后端设计的最后阶段,也就是布局布线完成之后、tapeout 之前。但你别以为它只是最后跑个脚本就完事了。我在项目中遇到过好几次,前端设计改了逻辑,后端版图跟着调,结果 DRC 炸出一堆错,最后三天通宵修。所以,我建议在布局布线中期就做局部 DRC 检查,别攒到最后。
下面这张图能帮你快速理解物理验证在整个流程里的位置:
从图里可以看到,物理验证处在 P&R 和 Tapeout 之间,但它不是单向的。一旦 DRC 或 LVS 报错,你必须回到布局布线甚至综合阶段去修。我见过最夸张的一次,一个 LVS 短路问题追了三天,最后发现是标准单元库的电源带错了。嗯,这种坑踩过一次就长记性了。
1.3 为什么物理验证如此重要?
你想想看,一颗芯片从设计到制造,动辄几十万、上百万美元。流片回来如果因为一根线间距不够导致短路,或者因为一个悬空栅极导致功耗异常,那可不是改一行代码就能解决的。物理验证是芯片上市前的最后一道防线。
- DRC 没跑干净 —— 代工厂可能直接拒收你的 GDS,或者制造良率暴跌。
- LVS 对不上 —— 你画出来的版图和电路不一致,芯片功能直接错误。
- ERC 有漏检 —— 比如 floating well 或者电源域交叉,长期可靠性堪忧。
1.4 三者之间的关系
DRC、LVS、ERC 虽然检查内容不同,但它们是互相补充的。举个例子:DRC 保证金属线宽够宽,但不管这条线连到哪;LVS 保证连接正确,但不管这条线会不会引起天线效应;ERC 能查出天线效应,但查不了线宽。所以三者必须一起跑,缺一不可。
| 检查项 | 检查对象 | 典型问题 | 修复方向 |
|---|---|---|---|
| DRC | 版图几何图形 | 间距违规、最小宽度、密度 | 调整版图尺寸/位置 |
| LVS | 版图 vs 电路网表 | 短路、断路、器件失配 | 修正连接或器件参数 |
| ERC | 电气规则 | 悬空节点、电源域冲突、天线效应 | 添加阱接触、天线二极管 |
好了,这一章我们理清了物理验证是什么、它在流程中的位置,以及为什么它这么关键。从下一章开始,我们会一头扎进 DRC 的细节里,从基础概念到工具操作,再到实战修错。嗯,做好准备,后面全是干货。