封装协同视角的版图规则检查方法 - 第2节
一、版图规则基础:设计规则检查(DRC)的基本概念
设计规则检查,简称DRC。说白了,就是给版图定一套规矩。
你想想看,芯片制造是个物理过程。光刻、刻蚀、沉积,每一步都有物理极限。如果两条线离得太近,光刻时可能连在一起,造成短路。如果一条线太细,刻蚀时可能断掉,造成开路。这些都不是软件能容忍的,是物理世界说了算。
我刚开始做版图时,总觉得DRC是找麻烦的。画得好好的,一跑DRC,满屏报错。后来有一次,一个同事的芯片流片回来,功能全对,就是良率上不去。查来查去,就是有几处间距刚好卡在规则边缘。从那以后,我再也不敢轻视DRC了。
DRC的核心目的就三个:
- 保证制造良率——别让物理缺陷毁了你的芯片
- 保证电气性能——别让寄生效应搞崩你的电路
- 保证可靠性——别让芯片用几个月就挂了
DRC不是可选项,是必选项。没有DRC clean的版图,流片就是赌博。
二、常见版图规则类型
规则类型很多,但常用的就那么几类。我按项目中的实际使用频率,给你排个序。
2.1 宽度规则(Width)
宽度规则,就是规定某层图形的最小宽度。比如金属线最小0.18μm,多晶硅最小0.13μm。
为什么要有宽度规则?因为太细的线,刻蚀时容易断。我在一个0.13μm项目中遇到过,某条电源线画得太细,DRC报错我没当回事,想着后边再改。结果后边忘了,流片回来那条线直接熔断。教训深刻。
我的习惯:电源线和地线,宽度至少留20%余量。别卡着最小宽度画,那是给自己挖坑。
2.2 间距规则(Spacing)
间距规则,规定同一层或不同层图形之间的最小距离。比如金属到金属最小0.2μm,多晶硅到有源区最小0.15μm。
间距不够,光刻时可能连在一起。或者虽然没连,但寄生电容太大,影响电路速度。高频电路尤其要注意这个。
我记得有个射频项目,LNA的输入输出走线间距没留够,仿真时没发现问题。流片回来测试,增益比预期低了3dB。一查,就是寄生电容搞的鬼。
2.3 包围规则(Enclosure)
包围规则,规定一层图形必须完全包围另一层图形,且包围的尺寸要够。比如接触孔被金属包围,至少每边多出0.1μm。
这个规则容易被忽略。我见过一个新手,接触孔画得刚好和金属边对齐。DRC没报错,但实际制造时,光刻对准偏差一点点,接触孔就露出来了。结果就是接触电阻变大,电路性能下降。
注意:包围规则通常有方向性。比如N阱包围PMOS,和PMOS包围N阱,要求不一样。别搞混了。
2.4 密度规则(Density)
密度规则,规定某层图形的面积占比。比如金属密度不能低于30%,也不能高于70%。
为什么要有密度规则?因为化学机械抛光(CMP)时,密度不均匀会导致表面不平。密度太低的地方,抛光过度;密度太高的地方,抛光不足。
嗯,这里要注意。密度规则通常有窗口大小和步长。比如在100μm×100μm的窗口内,金属密度要在30%~70%之间。窗口滑动检查,每个位置都要满足。
2.5 其他常见规则
| 规则类型 | 说明 | 典型值(0.18μm工艺) |
|---|---|---|
| 面积规则 | 图形最小面积 | 0.1μm² |
| 孔规则 | 接触孔/通孔尺寸和间距 | 0.18μm×0.18μm |
| 天线规则 | 防止天线效应 | 比率<1000:1 |
| 阱连接规则 | 阱必须接电位 | 每50μm一个接触 |
三、规则文件格式解析
规则文件,就是DRC工具读的配置文件。不同工具格式不同,但核心逻辑差不多。
3.1 常见的规则文件格式
- Calibre SVRF格式:.svrf或.rule文件,Mentor工具用的
- Assura/ICV格式:.rul文件,Cadence工具用的
- PVS格式:.rul文件,Synopsys工具用的
- DRACULA格式:.drc文件,老工具了,现在用得少
我个人习惯用Calibre。不是因为别的,就是用得顺手。你用什么工具都行,关键是理解规则怎么写。
3.2 规则文件的基本结构
一个典型的规则文件,长这样:
// 层定义
LAYER M1 10
LAYER V1 11
LAYER M2 12
// 规则定义
// 最小宽度
WIDTH M1 0.18
WIDTH M2 0.18
// 最小间距
SPACING M1 0.20
SPACING M2 0.20
// 包围规则
ENC V1 M1 0.10 BY 0.10
// 密度规则
DENSITY M1 30 70 WINDOW 100 STEP 50
你看,结构很清晰。先定义层,再定义规则。每一条规则,就是一行命令。
3.3 规则文件的关键要素
写规则文件时,有几个关键点要注意:
- 层名和层号:必须和版图工具一致,否则DRC认不出来
- 单位:通常是微米(μm),也有用纳米的。看清楚,别搞错
- 规则优先级:多条规则冲突时,以优先级高的为准
- 排除区域:有些区域不适用某些规则,要写EXCEPTION
避坑指南:我曾经遇到一个项目,规则文件里单位写的是纳米,但版图工具默认用微米。结果所有规则都放大了1000倍,DRC跑出来全是假错。排查了两天才发现。所以,拿到规则文件第一件事,确认单位。
3.4 规则文件的调试技巧
写规则文件,免不了要调试。我的经验是:
- 先跑一小块区域,别全芯片跑。全芯片跑一次可能要几个小时,调试效率太低
- 用简单图形测试,比如画几条线、几个方块,验证规则是否生效
- 看DRC报告,别只看结果。报告里会告诉你哪条规则被触发了,坐标在哪
- 用DRC工具的可视化功能,把报错图形高亮显示,一目了然
嗯,说到调试,我想起一个事。有次我写了一条复杂的条件规则,怎么跑都不对。后来发现是括号位置错了。规则文件里,括号和逻辑运算符的优先级,和编程语言一样。写的时候要小心。
四、本章知识体系
下面这张图,把本章的核心内容串起来了。你可以对照着看,哪里不清楚就回去翻。
DRC这东西,说难不难,说简单也不简单。关键是多练、多跑、多总结。我做了十几年版图,每次拿到新工艺,第一件事就是把DRC规则文件从头到尾读一遍。别嫌麻烦,这步省了,后边有的是坑等着你。
可可精品资料库