第二章:DRC基础——设计规则的概念与分类
各位同学,咱们今天聊聊DRC。说实话,DRC是物理验证里最基础、也最磨人的一步。我见过太多新手,一上来就急着跑全芯片DRC,结果报了几万个错误,直接懵了。别急,咱们一步步来。
2.1 设计规则:芯片制造的“交通法规”
什么叫设计规则?说白了,就是晶圆厂给你画的一条红线。你设计的版图,必须满足这些规则,否则流片出来就是废片。
我打个比方。你开车上路,有车道宽度、有跟车距离、有转弯半径。芯片制造也一样——金属线不能太细,否则电流一大就烧断;两根线不能靠太近,否则会短路;通孔不能太小,否则电阻太大。
这些规则,都是晶圆厂根据工艺能力定的。比如7nm工艺,最小线宽可能就是几十纳米。你设计时要是画了一根20nm的线,流片时光刻机根本印不出来。
核心要点:设计规则 = 制造工艺的物理极限。违反规则 = 芯片可能无法正常工作。
2.2 设计规则的分类
规则虽然多,但归纳起来就几大类。我按项目中的常见程度排个序:
| 规则类型 | 英文缩写 | 检查内容 | 典型值(举例) |
|---|---|---|---|
| 最小宽度 | Width | 金属/多晶硅等层的线宽 | M1 ≥ 0.1μm |
| 最小间距 | Space | 同层图形之间的间距 | M1-M1 ≥ 0.12μm |
| 包围规则 | Enclosure | 通孔/接触孔被包围的尺寸 | VIA1 四周 ≥ 0.04μm |
| 密度规则 | Density | 某层图形的面积占比 | M1密度 20%~70% |
| 间距规则(不同层) | Spacing (diff layer) | 不同层之间的间距 | M1-POLY ≥ 0.1μm |
嗯,这里要注意。密度规则很多人容易忽略。我记得有个项目,后端做完后跑DRC,M2层密度只有18%,低于下限20%。结果呢?化学机械抛光(CMP)时,那片区域被磨得太薄,直接报废。后来我们不得不手动加了一堆dummy metal。
2.3 DRC检查的基本流程
DRC怎么跑?流程其实不复杂。我画个图,你们一看就明白。
流程看着简单,但实际跑起来坑不少。我建议你们养成一个习惯:跑DRC之前,先确认规则文件版本对不对。晶圆厂经常更新规则,用错版本等于白跑。
2.4 常见DRC违例类型详解
2.4.1 最小间距违例
这是最常见的违例。两根金属线靠太近,制造时可能短路。我在项目中遇到过最离谱的一次——一个实习生画电源线,两根VDD线间距只有0.08μm,规则要求0.12μm。结果DRC报了3000多个违例,全是同一个问题。
避坑指南:我曾经吃过一次亏——自动布线后没检查最小间距,结果流片回来芯片功耗异常。后来发现是某条信号线和时钟线间距不够,产生了串扰。所以,跑完自动布线,一定要手动抽查几个关键区域。
2.4.2 最小宽度违例
线太细,电流密度过大,容易电迁移。尤其是电源线,宽度必须留够余量。我一般会按规则要求的1.2倍来画,安全第一。
// Calibre DRC 规则示例(简化版)
// 检查M1最小宽度
M1_WIDTH {
@ M1 minimum width must be >= 0.1um
WIDTH M1 < 0.1
}
2.4.3 包围规则违例
通孔(VIA)周围必须有足够的金属包围。否则,通孔和金属的连接不牢靠,容易断路。你想想看,一个通孔只有几十纳米大,如果金属只包了一半,流片时很可能就断了。
我记得有个项目,后端工程师为了省面积,把VIA的包围尺寸压到了规则下限。结果DRC虽然过了,但良率测试时发现大量断路。后来我们不得不改版,把包围尺寸加了0.02μm,良率才恢复正常。
2.4.4 密度规则违例
这个前面提过。密度太低,CMP会磨不平;密度太高,刻蚀不均匀。晶圆厂会给出一个范围,比如20%~70%。
警告:密度规则不是跑一次就能搞定的。你加了dummy metal后,可能又引入了新的间距违例。所以,加dummy和跑DRC是个迭代过程。我建议用工具自动加dummy,但一定要检查工具加的dummy是否合理。
2.5 我的DRC调试心得
最后,分享几个实战经验:
- 先跑小区域:别一上来就跑全芯片。先切一块小区域(比如100μm×100μm)跑一下,确认规则文件没问题。
- 分类看违例:DRC报告里违例可能成千上万。按类型分组看,先解决数量最多的那种。往往一个根本原因会导致几百个违例。
- 别迷信自动修复:工具可以自动修一些违例,但修完后一定要人工复核。我见过工具把一条关键路径的线拉长,导致时序违例。
- 保留历史记录:每次跑DRC的结果都保存下来。万一后面出了问题,可以回溯对比。
好了,DRC基础就讲到这里。这些规则看着简单,但实际项目中,每个违例都可能让你加班到深夜。多练、多总结,慢慢就有感觉了。