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规则不是一层不变的。它有个层级结构,我画了张图,大家一看就明白:

DRC规则层级结构 Foundry原始规则 (如:TSMC 28nm DRC手册) 工艺规则文件 (如:.tf文件、.drf文件) 设计规则检查脚本 (如:Calibre SVRF规则文件) 设计团队定制规则 (如:内部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 实战技巧:如何快速定位规则

说了这么多,最后分享几个实战技巧:

  1. 先看违规坐标:DRC报告里会给出违规的坐标。先定位到那个位置,看看是什么图形。
  2. 再看规则名称:规则名称通常有规律。比如M1.SPACE就是M1层间距规则,VIA.ENC就是通孔包边规则。
  3. 最后查规则描述:如果前两步搞不定,再去翻规则描述。我一般用grep搜规则名称,直接定位。

我曾经带过一个新人,他每次看DRC报告都从头读到尾,累得半死。我告诉他,先看坐标,再看规则名,最后查描述。他试了之后说:「原来这么简单!」

好了,关于DRC规则解读,今天就聊这么多。记住:规则是死的,人是活的。多读、多练、多总结,你也能成为DRC高手。

总结:读DRC规则,先拆结构,再看层级,留意派生规则,关注变量参数。按这个顺序来,效率翻倍。

可可精品资料库