4、DRC规则解读:如何阅读DRC规则描述、规则层级与派生规则、规则中的变量与参数
大家好,我是老李。做芯片后端十几年,DRC报告看了无数份。说实话,刚入行那会儿,看到密密麻麻的规则描述,头都大了。后来慢慢摸出门道,发现DRC规则其实没那么可怕。今天就跟大家聊聊,怎么读懂这些规则。
4.1 DRC规则描述的基本结构
每一条DRC规则,说白了就是一句话:「检查某个东西,不能违反某个条件」。但实际写出来,往往很长。我习惯把它拆成三部分看:
- 检查对象:要检查什么层?什么图形?
- 约束条件:间距要多大?宽度要多少?
- 违规后果:违反了会怎样?是报错还是警告?
举个例子,一条典型的金属间距规则:
M1.SPACE: M1 (WIDTH >= 0.1) TO M1 (WIDTH >= 0.1) SPACE < 0.2
这条规则的意思是:检查M1层上,宽度大于等于0.1微米的图形,它们之间的间距不能小于0.2微米。嗯,这里要注意,很多新手会忽略那个「WIDTH >= 0.1」的条件。我在项目中遇到过,有人以为所有M1图形都要满足0.2微米间距,结果把宽线也套进去了,白白浪费了面积。
核心要点:读规则时,先看「检查对象」,再看「约束条件」。顺序别搞反了。
4.2 规则层级:从Foundry到设计团队
DRC规则不是一层不变的。它有个层级结构,我画了张图,大家一看就明白:
你看,从Foundry给的手册,到我们最终跑DRC用的脚本,中间经过了好几层。每一层都可能加东西、改参数。我个人习惯是,拿到一个新工艺的DRC规则,先找到最原始的Foundry手册,对照着看。不然你都不知道哪些是工艺要求的,哪些是团队自己加的。
4.3 派生规则:从基础规则到组合规则
什么叫派生规则?说白了,就是基于基础规则,组合出来的新规则。举个例子:
- 基础规则:M1最小间距0.2微米,M2最小间距0.3微米
- 派生规则:M1到M2的间距,取两者最大值,即0.3微米
为什么会这样?你想想看,不同层之间如果间距太小,工艺上容易出问题。所以很多Foundry会直接给一个派生规则,省得你自己算。
我在项目中遇到过最典型的派生规则,是「天线规则」的派生。基础规则只检查单层金属的天线比,但实际芯片有好多层金属。于是就有了派生规则:把各层金属的天线比加起来,看总比例是否超标。嗯,这个坑我踩过,后来才明白。
小技巧:看派生规则时,先找到它的「父规则」。父规则搞懂了,派生规则自然就明白了。
4.4 规则中的变量与参数
DRC规则里经常出现变量和参数。比如:
M1.SPACE = M1_MIN_SPACE + M1_SPACE_MARGIN
这里的M1_MIN_SPACE是工艺要求的最小值,M1_SPACE_MARGIN是设计团队加的余量。为什么要加余量?说白了,就是给自己留点安全空间。工艺有波动,万一光刻偏了,你刚好卡在最小值上,那就麻烦了。
我见过最夸张的一次,有个团队把余量设成了0,结果流片回来,良率惨不忍睹。从那以后,我每次看规则,都会特别留意这些参数值。
| 参数名 | 含义 | 典型值 | 备注 |
|---|---|---|---|
| M1_MIN_SPACE | M1最小间距(工艺要求) | 0.2 μm | 来自Foundry手册 |
| M1_SPACE_MARGIN | M1间距余量(设计团队加) | 0.02 μm | 可调整,建议保留 |
| M1_SPACE_FINAL | 最终使用的M1间距 | 0.22 μm | = M1_MIN_SPACE + M1_SPACE_MARGIN |
注意:变量名在不同工艺里可能不一样。比如TSMC叫M1_SP,SMIC可能叫M1_SPACE。别想当然,一定要看注释。
4.5 实战技巧:如何快速定位规则
说了这么多,最后分享几个实战技巧:
- 先看违规坐标:DRC报告里会给出违规的坐标。先定位到那个位置,看看是什么图形。
- 再看规则名称:规则名称通常有规律。比如
M1.SPACE就是M1层间距规则,VIA.ENC就是通孔包边规则。 - 最后查规则描述:如果前两步搞不定,再去翻规则描述。我一般用grep搜规则名称,直接定位。
我曾经带过一个新人,他每次看DRC报告都从头读到尾,累得半死。我告诉他,先看坐标,再看规则名,最后查描述。他试了之后说:「原来这么简单!」
好了,关于DRC规则解读,今天就聊这么多。记住:规则是死的,人是活的。多读、多练、多总结,你也能成为DRC高手。
总结:读DRC规则,先拆结构,再看层级,留意派生规则,关注变量参数。按这个顺序来,效率翻倍。
可可精品资料库