第四节 DRC规则文件解析:读懂规则的定义
做封装设计这些年,我见过太多工程师拿到DRC规则文件就头大。密密麻麻的代码,各种奇怪的缩写,说实话我第一次看也懵。但后来我发现,只要掌握了规则文件的「语法」,读起来就跟看说明书一样简单。
规则文件的两种常见格式
目前业界主流的DRC规则文件,无非两种格式:DO文件和规则表格。我分别说说。
1. DO文件格式
DO文件,全称是Design Rule Deck。说白了就是一个脚本文件,里面写满了规则命令。我最早接触的是Calibre的SVRF格式,后来也用过Mentor的Standard Check格式。
一个典型的DO文件长这样:
// 金属线宽检查
WIDTH METAL1 0.18
WIDTH METAL2 0.18
// 金属间距检查
SPACE METAL1 TO METAL1 0.20
SPACE METAL2 TO METAL2 0.20
// 通孔覆盖检查
ENC VIA1 TO METAL1 0.05
ENC VIA1 TO METAL2 0.05
嗯,这里要注意:每条规则都有固定的语法结构。我总结了一个规律——规则 = 检查类型 + 对象 + 参数。
比如 WIDTH METAL1 0.18,意思就是「检查METAL1层的线宽,最小不能小于0.18微米」。
核心要点:DO文件的每一行,都是一个独立的检查命令。读懂它,就是拆解这三个要素。
2. 规则表格格式
有些设计团队喜欢用Excel表格来管理规则。我个人觉得表格更直观,尤其适合团队协作。一个典型的规则表格长这样:
| 规则编号 | 检查类型 | 层1 | 层2 | 最小值 | 单位 | 描述 |
|---|---|---|---|---|---|---|
| DRC-001 | WIDTH | METAL1 | - | 0.18 | um | 金属1线宽 |
| DRC-002 | SPACE | METAL1 | METAL1 | 0.20 | um | 金属1间距 |
| DRC-003 | ENC | VIA1 | METAL1 | 0.05 | um | 通孔覆盖 |
表格的好处是——你一眼就能看到所有规则。我曾经在一个项目中,用表格整理了300多条规则,团队沟通效率提升了不少。
如何读懂一条规则的定义
不管什么格式,读懂一条规则的核心就三步。我管它叫「三看」法则。
第一步:看检查类型
检查类型决定了这条规则要干什么。常见的就那么几种:
- WIDTH:检查线宽
- SPACE:检查间距
- ENC:检查覆盖/包围
- AREA:检查面积
- DENSITY:检查密度
我记得刚入行时,看到 ENC 还以为是「加密」的意思,闹了笑话。其实就是Enclosure的缩写,检查通孔被金属覆盖了多少。
第二步:看检查对象
对象就是这条规则针对哪些层。有时候是单层,比如检查金属1的线宽。有时候是两层之间的关系,比如金属1和金属2的间距。
举个例子:
SPACE METAL1 TO METAL2 0.30
这里对象是METAL1和METAL2两层。意思是这两层之间的间距不能小于0.30微米。
小技巧:如果对象只有一层,比如 WIDTH METAL1 0.18,那就是检查这一层自己的属性。如果是两层,比如 SPACE METAL1 TO METAL1 0.20,那就是检查同一层内不同图形之间的关系。
第三步:看参数和单位
参数就是具体的数值,单位通常是微米(um)或纳米(nm)。我建议你养成一个习惯——看到数值先确认单位。我曾经见过一个案例,有人把0.18um当成了0.18mm,结果整个版图都废了。
参数有时候不只是一个数值,还可能包含条件。比如:
WIDTH METAL1 0.18 // 最小线宽
WIDTH METAL1 MAX 10.0 // 最大线宽
嗯,这里要注意:有些规则既有最小值,也有最大值。比如线宽,太细了不行,太粗了也不行。
规则文件中的常见陷阱
我踩过不少坑,分享几个典型的:
陷阱一:隐含规则
有些规则文件里不会明说,但实际存在。比如,金属层的最小间距,可能跟金属的宽度有关。宽金属的间距要求更大。这种规则通常写在注释里,或者需要你从上下文中推断。
陷阱二:规则优先级
当两条规则冲突时,哪条说了算?我遇到过这样的情况:一条规则说金属间距0.20,另一条说特殊区域间距0.30。结果是特殊区域的规则优先级更高。所以读规则文件时,一定要看有没有条件语句。
陷阱三:单位混淆
有些老旧的规则文件可能用微米,有些用纳米。我建议你拿到规则文件后,第一件事就是确认单位。我曾经因为单位搞错,多花了三天时间改版图。
实战:读懂一条真实规则
咱们拿一条真实项目中的规则来练练手:
// 规则编号:DRC-0047
// 描述:金属1到金属2的间距,当金属宽度大于5um时,间距需大于0.5um
IF (WIDTH METAL1 > 5.0) THEN
SPACE METAL1 TO METAL2 0.5
ELSE
SPACE METAL1 TO METAL2 0.3
ENDIF
这条规则怎么读?
- 检查类型:SPACE,检查间距
- 检查对象:METAL1和METAL2两层
- 参数:有条件。如果金属1的宽度大于5um,间距要0.5um;否则0.3um
你看,拆解开来是不是很简单?
知识体系总览
为了让你更直观地理解规则文件的解析逻辑,我画了一张图:
这张图把整个知识体系串起来了。从规则文件出发,到两种格式,再到「三看」法则,最后是常见陷阱。你照着这个思路去读规则文件,基本不会跑偏。
总结一下:读懂DRC规则文件,核心就是「三看」——看检查类型、看检查对象、看参数单位。别被复杂的格式吓到,拆解开来,每条规则都很简单。
好了,这一节就到这里。记住,规则文件是死的,但人是活的。多读、多练、多总结,你也能成为DRC高手。