第二章 设计规则检查(DRC)基础
各位同学,今天我们来聊聊DRC。说实话,DRC这东西,刚入行的时候觉得它烦人,做久了反而觉得它亲切。为什么?因为DRC是你芯片流片前的最后一道防线。我见过太多因为DRC没跑干净就贸然流片,结果回来一堆废片的案例。嗯,咱们今天就把DRC的底裤扒干净。
2.1 DRC到底是什么?
DRC,全称Design Rule Check,设计规则检查。说白了,就是检查你的版图有没有违反代工厂定下的规矩。这些规矩不是随便定的,而是跟工艺能力直接挂钩的。
举个例子,你画了一条很细的金属线,比如0.1微米宽。但代工厂的光刻机只能做到0.18微米。那这条线在实际制造中就可能断掉。DRC就是帮你揪出这种问题。
核心观点:DRC不是找设计bug,而是找制造风险。它保证你的版图能被造出来,且造出来能正常工作。
我在项目中遇到过一件事:有个同事觉得DRC规则太保守,偷偷把最小间距改小了一点点。结果流片回来,那两条线短路了。从那以后,我再也不敢对DRC规则有任何侥幸心理。
2.2 常见设计规则有哪些?
代工厂的DRC规则少则几百条,多则上万条。但万变不离其宗,核心就几类。我给大家梳理一下:
2.2.1 最小宽度规则
这个最简单。就是规定某层图形的最小宽度。比如金属1最小宽度0.18微米,多晶硅最小宽度0.13微米。你画窄了,DRC就报错。
我的习惯:画线的时候,我一般留10%的余量。比如规则要求0.18,我画0.2。这样即使工艺有波动,也能保证良率。
2.2.2 最小间距规则
两个同层图形之间,必须保持的最小距离。这个很关键,间距太小容易短路。我记得有一次,一个实习生把两条金属线画得太近,DRC报了几百个错。他还不理解,说「明明没碰到啊」。我说:「等光刻机一曝光,它们就碰到了。」
2.2.3 最小面积规则
有些层,比如有源区、多晶硅,对面积有要求。太小了,刻蚀的时候可能被刻掉。或者接触孔打上去,电阻太大。
| 规则类型 | 典型值(0.18μm工艺) | 违反后果 |
|---|---|---|
| 最小宽度 | 0.18 μm | 线断、电阻增大 |
| 最小间距 | 0.20 μm | 短路、漏电 |
| 最小面积 | 0.25 μm² | 刻蚀不完整、接触不良 |
2.2.4 其他常见规则
- 包覆规则:比如接触孔必须被金属完全包住,不能露边。
- 密度规则:某层图形的密度不能太低或太高,否则CMP会不平。
- 天线规则:这个后面会专门讲,先留个悬念。
2.3 DRC规则文件格式解析
DRC规则不是写在纸上的,而是写在一个文件里。这个文件就是DRC rule deck。不同工具格式不同,但华大九天的工具用的是标准的SVRF格式。我给大家看个例子:
// 最小宽度规则
METAL1 {
WIDTH >= 0.18
}
// 最小间距规则
METAL1 {
SPACING >= 0.20
}
// 最小面积规则
ACTIVE {
AREA >= 0.25
}
// 包覆规则
CONTACT {
ENCLOSURE METAL1 >= 0.05
}
你看,其实很简单。每一段定义了一个规则,后面跟着参数。但实际项目中,规则文件可能有几万行。为什么?因为要考虑各种特殊情况。
注意:规则文件里的单位通常是微米。但有些代工厂用纳米,一定要看清楚。我曾经因为单位搞错,跑出来的结果全是错的,浪费了整整一天。
2.4 DRC的运行流程
DRC怎么跑?我画个图给大家看:
这个流程看着简单,但实际跑起来有很多坑。我给大家几个建议:
- 先跑小模块:不要一上来就跑全芯片。先跑一个小模块,确认规则文件加载正确。
- 看log文件:DRC跑完,先看log。有时候规则文件版本不对,跑出来全是假错。
- 分批修复:错误太多的时候,先修最严重的。比如天线规则违反,优先级最高。
我的经验:DRC跑完,我习惯先看前10个错误。如果前10个都是同一类问题,那说明设计中有系统性错误。这时候不要一个一个修,而是从源头改。
2.5 DRC结果怎么看?
DRC跑完会生成一个结果文件。里面会告诉你:
- 违反了什么规则(比如METAL1.SPACE)
- 在哪个坐标位置
- 涉及哪些图形
华大九天的工具会把结果直接显示在版图上,用高亮标记出来。你点一下,就能看到具体是哪条线、哪个间距出了问题。
避坑指南:我曾经遇到过一个情况,DRC报了1000多个错,但仔细一看,全是同一个问题引起的。比如一条线太细,导致它跟周围所有线的间距都算错了。这种叫「连锁错误」。先修根因,其他错误会自动消失。
2.6 小结
DRC是物理验证的第一步,也是最基础的一步。它不复杂,但很繁琐。你需要耐心,需要细心。记住一句话:DRC跑得越干净,流片风险越低。
下一节我们会讲天线效应,那是DRC里最让人头疼的问题之一。但别怕,我有办法对付它。
课后练习:找一份你手头的DRC规则文件,打开看看。找到最小宽度、最小间距、最小面积这三条规则,看看它们的参数是多少。然后对照你的版图,看看有没有违反的地方。