第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 查电气健康。缺一个都不行。

一句话总结: DRC 保证“画得对”,LVS 保证“连得对”,ERC 保证“电得稳”。

1.2 在芯片设计流程中的位置

物理验证通常放在后端设计的最后阶段,也就是布局布线完成之后、tapeout 之前。但你别以为它只是最后跑个脚本就完事了。我在项目中遇到过好几次,前端设计改了逻辑,后端版图跟着调,结果 DRC 炸出一堆错,最后三天通宵修。所以,我建议在布局布线中期就做局部 DRC 检查,别攒到最后。

下面这张图能帮你快速理解物理验证在整个流程里的位置:

芯片设计流程 & 物理验证位置 前端设计 (RTL) 逻辑综合 布局布线 (P&R) 物理验证 DRC / LVS / ERC Tapeout 修复迭代 图例: 标准流程 物理验证 (关键节点) 迭代修复路径 数据流方向

从图里可以看到,物理验证处在 P&R 和 Tapeout 之间,但它不是单向的。一旦 DRC 或 LVS 报错,你必须回到布局布线甚至综合阶段去修。我见过最夸张的一次,一个 LVS 短路问题追了三天,最后发现是标准单元库的电源带错了。嗯,这种坑踩过一次就长记性了。

1.3 为什么物理验证如此重要?

你想想看,一颗芯片从设计到制造,动辄几十万、上百万美元。流片回来如果因为一根线间距不够导致短路,或者因为一个悬空栅极导致功耗异常,那可不是改一行代码就能解决的。物理验证是芯片上市前的最后一道防线。

  • DRC 没跑干净 —— 代工厂可能直接拒收你的 GDS,或者制造良率暴跌。
  • LVS 对不上 —— 你画出来的版图和电路不一致,芯片功能直接错误。
  • ERC 有漏检 —— 比如 floating well 或者电源域交叉,长期可靠性堪忧。
避坑指南: 我曾经接手过一个项目,前端说“只改了金属层”,后端就只跑了 DRC,没跑 LVS。结果 tapeout 回来发现一条信号线接错了电源,整批芯片全废。从那以后,我坚持任何改动都必须 DRC + LVS + ERC 全量跑一遍,哪怕只是改了一根线。

1.4 三者之间的关系

DRC、LVS、ERC 虽然检查内容不同,但它们是互相补充的。举个例子:DRC 保证金属线宽够宽,但不管这条线连到哪;LVS 保证连接正确,但不管这条线会不会引起天线效应;ERC 能查出天线效应,但查不了线宽。所以三者必须一起跑,缺一不可。

检查项检查对象典型问题修复方向
DRC版图几何图形间距违规、最小宽度、密度调整版图尺寸/位置
LVS版图 vs 电路网表短路、断路、器件失配修正连接或器件参数
ERC电气规则悬空节点、电源域冲突、天线效应添加阱接触、天线二极管
⚠️ 注意: 有些团队为了赶进度,只跑 DRC 不跑 LVS,或者只跑 LVS 不跑 ERC。我劝你千万别这么做。物理验证不是走形式,它是芯片质量的基石。你省下的两天时间,可能换来的是几个月的返工。

好了,这一章我们理清了物理验证是什么、它在流程中的位置,以及为什么它这么关键。从下一章开始,我们会一头扎进 DRC 的细节里,从基础概念到工具操作,再到实战修错。嗯,做好准备,后面全是干货。