第四节 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

这条规则怎么读?

  1. 检查类型:SPACE,检查间距
  2. 检查对象:METAL1和METAL2两层
  3. 参数:有条件。如果金属1的宽度大于5um,间距要0.5um;否则0.3um

你看,拆解开来是不是很简单?

知识体系总览

为了让你更直观地理解规则文件的解析逻辑,我画了一张图:

DRC规则文件解析知识体系 DRC规则文件 DO文件格式 规则表格格式 「三看」法则:如何读懂一条规则 第一步:看检查类型 WIDTH/SPACE/ENC... 第二步:看检查对象 单层/双层关系 第三步:看参数单位 数值/条件/单位 常见陷阱:隐含规则 | 规则优先级 | 单位混淆 避坑指南:拿到规则文件先确认单位

这张图把整个知识体系串起来了。从规则文件出发,到两种格式,再到「三看」法则,最后是常见陷阱。你照着这个思路去读规则文件,基本不会跑偏。

总结一下:读懂DRC规则文件,核心就是「三看」——看检查类型、看检查对象、看参数单位。别被复杂的格式吓到,拆解开来,每条规则都很简单。

好了,这一节就到这里。记住,规则文件是死的,但人是活的。多读、多练、多总结,你也能成为DRC高手。


专注资料整理