一、DRC基础回顾:设计规则检查的核心概念

各位同学,咱们今天聊聊DRC。说实话,DRC这东西,刚入行的工程师觉得它烦人——跑一遍要等半天,报出一堆错误还得一个个修。但干久了你会发现,DRC其实是芯片设计里最靠谱的「守门员」。

我个人习惯把DRC比作「芯片的交通规则」。你想想看,没有红绿灯、没有车道线,马路上的车肯定乱成一锅粥。芯片制造也是一样,光刻机、刻蚀机这些设备都有物理极限,你画出来的图形必须符合它们的「脾气」。

DRC(Design Rule Check) 就是检查版图是否满足晶圆厂给定的制造规则。说白了,它告诉你:「这么画,工厂能做出来;那么画,大概率要翻车。」

1.1 DRC在芯片设计流程中的位置

很多教材喜欢画一个完整的芯片设计流程图,从规格定义一直讲到GDSII输出。我这里只挑重点说——DRC发生在哪个环节?

嗯,它通常在版图设计完成之后、流片之前。具体来说:

  1. 前端设计(RTL编码、综合)—— 这时候还没版图什么事
  2. 后端设计(布局布线、版图绘制)—— 画完版图了
  3. 物理验证(DRC、LVS、ERC)—— 关键一步!
  4. 流片(Tape-out)—— 过了才能去投片

我记得刚入行那会儿,有个老工程师跟我说:「DRC没过就敢流片,那是拿公司的钱打水漂。」后来我自己带项目,亲眼见过一个同事因为DRC没跑干净就急着投片,结果回来芯片短路,几百万的流片费打了水漂。从那以后,我每次流片前都要亲自盯着DRC报告看完。

我的经验:DRC不是跑一遍就完事的。你改一次版图,就要重新跑一次。我建议在版图绘制过程中,每完成一个模块就局部跑一下DRC,别等到最后全拼起来再跑——那时候报错几百个,你哭都来不及。

1.2 常见DRC规则类型

DRC规则种类很多,不同工艺厂给的规则书厚得像本字典。但核心规则其实就那么几类,我给大家捋一捋:

(1)宽度规则(Width Rule)

这个最简单——你的金属线、多晶硅、有源区,宽度不能小于某个值。为什么?因为太细的线,光刻机印不出来,或者印出来电阻太大、容易烧断。

举个例子,0.18μm工艺里,金属1的最小宽度通常是0.23μm。你画个0.2μm的线,DRC直接报错。

// 伪代码示例:宽度检查
MIN_WIDTH M1 0.23  // 金属1最小宽度0.23μm
MIN_WIDTH POLY 0.18 // 多晶硅最小宽度0.18μm

(2)间距规则(Spacing Rule)

两条同层图形之间,距离不能太近。太近了会怎样?短路呗!或者因为光刻的衍射效应,两条线粘在一起。

我在项目中遇到过最坑的一次:两条金属线间距明明满足规则,但DRC还是报了错。后来查了半天,发现是因为它们在不同电位下,有额外的「电学间距」要求。嗯,这个后面讲复杂场景时会细说。

规则类型 典型值(0.18μm工艺) 说明
M1间距 0.23μm 同层金属最小间距
POLY间距 0.22μm 多晶硅最小间距
ACTIVE间距 0.28μm 有源区最小间距

(3)包围规则(Enclosure Rule)

这个也好理解——比如接触孔(Contact)周围,金属要把它「包住」一圈。包得不够,接触孔就容易断掉或者电阻变大。

我记得有一次,一个实习生画的版图,接触孔周围的金属只包了0.1μm,规则要求是0.15μm。他跟我说:「就差0.05μm,应该没事吧?」我说:「你想想看,光刻机的对准误差都不止0.05μm,这要是流片出来,十个孔里能坏一半。」

避坑指南:我曾经因为包围规则吃过亏。当时做的是一个高压器件,规则书上写的包围值是「常规值+0.2μm」,我没仔细看,直接用了常规值。结果DRC报错,一查才发现高压器件有额外的包围要求。所以,看规则书一定要看全,别只看表格里的数字。

(4)密度规则(Density Rule)

这个稍微绕一点。它要求版图上每一层材料的「面积占比」不能太低,也不能太高。太低了,化学机械抛光(CMP)的时候会把薄的地方磨穿;太高了,又容易磨不平。

密度规则通常是一个范围,比如金属层的密度要求在20%~80%之间。如果你的版图某个区域金属太少,就得加「 dummy 金属」——说白了就是塞一些没用的金属块进去凑数。

// 密度检查示例
DENSITY M1 20% 80% 100x100  // 在100μm×100μm窗口内,M1密度需在20%~80%之间

(5)其他常见规则

  • 孔规则(Via Rule):通孔的大小、数量、间距
  • 天线规则(Antenna Rule):防止等离子体损伤
  • 阱规则(Well Rule):阱的宽度、间距、连接方式
  • ESD规则:静电防护相关的特殊要求

1.3 DRC的知识体系框架

说了这么多,我画个图帮大家理一理思路。DRC看似零散,其实可以归纳为三个维度:

DRC 核心知识体系 规则类型 宽度规则 间距规则 包围规则 密度规则 其他(孔/天线/阱/ESD) 检查流程 版图数据输入(GDSII/OASIS) 规则文件加载(RUNSET) DRC引擎运算 结果输出与标记 错误定位与修复 工具与技巧 Calibre / Assura / ICV 分层DRC(Hierarchical) 增量DRC(Incremental) DRC脚本编写(SVRF/TCL) 批量修复与自动化

这张图把DRC分成了三大块:规则类型、检查流程、工具与技巧。咱们这节课主要讲规则类型,后面几章会深入检查流程和工具使用。

1.4 为什么DRC这么重要?

你可能觉得,DRC不就是跑个检查嘛,有什么难的?但实际项目中,DRC往往是整个流程里最耗时的环节之一。我见过一个复杂的混合信号芯片,DRC跑了整整三天,报错一万多处。修完一轮,再跑,又报五千处……来回折腾了七八轮才清干净。

为什么会这样?因为现代工艺越来越复杂,规则越来越多。0.13μm工艺的规则书大概200页,到了7nm工艺,规则书能到2000页。而且很多规则是相互关联的——你修了一个错误,可能引发另外三个错误。

我的建议:新手做DRC修复,不要上来就闷头改。先看错误分布,哪些是「真错」,哪些是「假错」(比如层次标记错误导致的误报)。我一般会先分类:

  • 红色警报:必须修(宽度、间距、包围等硬规则)
  • 黄色警告:建议修(密度、天线等软规则)
  • 蓝色提示:可忽略(某些工艺允许的例外情况)

好了,DRC的基础概念就讲到这里。记住一句话:DRC不是用来为难你的,它是用来保护你的。 每次看到DRC报错,别烦躁,想想它帮你避免了一次流片失败,心里就平衡了。

下一节咱们会深入讲DRC的检查流程和工具使用,到时候我会拿实际项目中的案例来拆解。今天就先到这儿。


可可精品资料库