设计规则检查(DRC)基础
各位工程师朋友,今天我们来聊聊DRC。说实话,DRC是物理验证里最基础也最绕不开的一环。我做了十五年芯片,每次流片前最紧张的就是看DRC报告——那种感觉,就像高考查分一样。
DRC,全称Design Rule Check,设计规则检查。它的任务很简单:检查你的版图是否符合代工厂给出的制造规则。为什么要有这些规则?因为光刻机、刻蚀机这些设备有物理极限,你画得太细、太密,生产出来就是废片。
核心观点:DRC不是找茬,是帮你省钱。一次流片失败,几百万就没了。
一、DRC规则分类
代工厂给的规则文件,少则几百条,多则上万条。但归纳起来,无非四大类。
1. 宽度规则(Width)
说白了,就是你的金属线、多晶硅线不能太细。太细了,电流一大会烧断,或者刻蚀时直接断掉。
我记得有个项目,后端工程师为了省面积,把电源线画得刚好卡在规则下限。结果流片回来,芯片一上电就冒烟。嗯,从那以后我养成了习惯:电源线至少比规则下限宽20%。
2. 间距规则(Spacing)
两条线之间不能靠太近。靠太近会怎样?短路呗。或者信号串扰,逻辑出错。
这里有个坑:不同金属层的间距规则不一样。比如M1和M2,因为工艺不同,间距要求也不同。我曾经见过一个新手,把M1的间距规则套用到M2上,结果DRC报了上千个错误。
3. 密度规则(Density)
这个很多人容易忽略。代工厂要求你的版图里,金属、多晶硅的密度不能太高也不能太低。太高了,刻蚀不均匀;太低了,化学机械抛光(CMP)会把表面磨不平。
我建议:在布局布线阶段就考虑密度问题。别等到最后加dummy fill,那玩意儿很费时间。
4. 天线效应规则(Antenna Effect)
这个比较有意思。长金属线在等离子刻蚀时,会像天线一样收集电荷。电荷积累多了,会击穿栅氧化层,导致晶体管报废。
怎么解决?加天线二极管,或者跳层布线。我个人习惯是:在长走线末端加一个反偏二极管,简单粗暴有效。
| 规则类型 | 检查内容 | 常见错误 |
|---|---|---|
| 宽度 | 线宽是否达标 | 线宽不足 |
| 间距 | 线间距离 | 间距违规 |
| 密度 | 图形密度 | 密度过高/过低 |
| 天线效应 | 电荷积累 | 天线比超标 |
二、DRC规则文件结构
规则文件有两种主流格式:SVRF和TVF。SVRF是Calibre用的,TVF是ICV用的。其实核心逻辑都一样,只是语法不同。
SVRF格式(Calibre)
SVRF的语法很直观。举个例子:
// 定义规则
RULE WIDTH_M1 {
// 检查M1层宽度
WIDTH M1 < 0.18
// 报错信息
ERROR "M1 width must be >= 0.18um"
}
你看,先定义规则名,然后写检查条件,最后给报错信息。就这么简单。
TVF格式(ICV)
TVF的语法稍微复杂一点,但逻辑一样:
rule WIDTH_M1 {
condition: width(M1) < 0.18
message: "M1 width must be >= 0.18um"
}
我个人更喜欢SVRF,因为它的报错信息可以写得更详细。比如加上坐标、层名、当前值,方便定位问题。
小技巧:写规则文件时,把报错信息写得越详细越好。你想想看,如果只报"宽度错误",你还要去查是哪一层、哪个坐标。如果写成"M1 width 0.15um at (100,200) must be >= 0.18um",直接就能定位。
三、DRC运行流程
DRC的运行流程,说白了就是三步:读入、检查、输出。
第一步:读入版图
你需要准备两样东西:版图文件(GDS或OASIS格式)和规则文件(.rul或.rule)。
这里有个坑:版图文件必须和规则文件匹配。比如你用0.18um的规则去检查0.13um的版图,那结果肯定不对。我曾经见过有人把工艺搞混了,结果DRC报了十万个错误,吓得脸都白了。
第二步:规则检查
工具会逐条比对规则。这个过程很快,几百万条规则几分钟就能跑完。但要注意:规则文件里可能有条件语句,比如"如果A层存在,则检查B层"。这些条件必须写对,否则会漏检。
第三步:输出结果
DRC报告会告诉你:哪些地方违规了,违规类型是什么,坐标在哪里。我建议:不要只看错误数量,要看错误类型。有时候一个错误类型下面有几百个实例,其实都是同一个问题导致的。
警告:DRC报告里的"waiver"(豁免)要慎用。有些工程师为了快速清掉错误,把一些违规标记为"豁免"。但豁免不等于解决,流片时这些地方还是会出问题。我个人的原则是:能不豁免就不豁免,实在要豁免,必须写清楚原因。
好了,DRC的基础知识就讲到这里。记住:DRC不是终点,是起点。跑完DRC,你还要跑LVS、ERC、ANT等检查。但DRC是基础,基础不牢,地动山摇。
最后分享一个经验:每次跑DRC前,先检查规则文件的版本。代工厂会更新规则,用旧版本检查新工艺,结果会不准确。我习惯在项目开始前,把规则文件的版本号、日期都记录下来,方便追溯。
可可精品资料库