3、设计规则检查(DRC):DRC的基本概念、常见DRC违例、DRC修复策略

3.1 DRC到底是什么?

设计规则检查,简称DRC。说白了,它就是芯片制造厂给设计师定的一套“规矩”。

你想想看,我们画版图的时候,每一层金属、每一根走线,在光刻机眼里都是有物理极限的。线太细了,光刻机刻不出来;间距太小了,相邻两根线会短路;孔打得太靠近边缘,通孔直接裂开。

DRC就是用来检查这些问题的。它把制造工艺的物理限制,翻译成几何规则。然后一条一条地检查你的版图,看有没有“越界”。

我个人习惯,在项目初期就会跑一遍DRC。不是为了找错,而是为了摸清这套工艺的“脾气”。不同工艺厂的DRC规则,侧重点完全不同。台积电的规则偏保守,但安全;有些小厂规则宽松,但坑也多。

核心要点:DRC不是用来“通过”的,而是用来“理解”工艺的。你越早理解规则背后的物理意义,后面修起来就越顺手。

3.2 常见DRC违例,你一定会遇到

我带过不少项目,每次流片前DRC报告都是一大堆。但真正需要紧张的,其实就那几类。我列一下最常见的,你对照着看。

3.2.1 最小宽度违例

这是最基础的。每一层金属、多晶硅、有源区,都有最小宽度要求。比如0.18μm工艺,金属1最小宽度是0.23μm。你画了0.22μm,它就报错。

我在项目中遇到过,有同事为了省面积,把电源走线画窄了。DRC报了一堆最小宽度违例。他想着“先不管,后面再修”。结果到最后,整块芯片的IR Drop超标,不得不重画。嗯,这个教训挺深刻的。

3.2.2 最小间距违例

两根同层金属之间的距离,不能小于某个值。这个值取决于金属层、电压、以及是否在同一个电位上。

举个例子,1.8V的金属线间距可能是0.28μm,但5V的线间距就要0.5μm以上。为什么?电压高了,击穿风险大。

3.2.3 最小包围面积违例

通孔(Via)周围,上下两层金属必须有一定的“包边”。比如Via周围,上层金属要往外延伸至少0.05μm。这个规则很多人忽略。

我曾经见过一个案例,通孔只画了刚好覆盖接触孔的大小,没有包边。流片回来后,那个通孔在温度循环测试中直接开裂。所以,包边规则千万别省。

3.2.4 天线效应违例

这个稍微复杂一点。长金属线在刻蚀过程中会像天线一样收集电荷,如果电荷积累太多,会击穿栅氧化层。

DRC会检查每根金属线的“天线比”——金属面积除以栅面积。超过阈值就报错。

3.2.5 密度规则违例

每一层金属的图形密度,不能太低也不能太高。比如金属密度要求在20%~80%之间。太稀疏了,CMP(化学机械抛光)会把周围磨掉;太密了,中间会凹陷。

违例类型 常见原因 严重程度
最小宽度 走线画太细 高
最小间距 走线太挤 高
最小包围 通孔包边不足 中
天线效应 长金属线无跳线 高
密度规则 图形分布不均 中

3.3 DRC修复策略,我的实战经验

DRC报错不可怕。可怕的是不知道怎么修,或者修了又引入新问题。下面是我常用的修复策略。

3.3.1 先分类,再动手

拿到DRC报告,别急着改。先按违例类型分类。我习惯用脚本把报告里的违例按“层”和“类型”分组。然后先修“最小宽度”和“最小间距”,因为这些是硬伤,不改不行。天线效应和密度规则可以放后面,有时候可以通过加dummy(虚拟图形)来解决。

3.3.2 最小宽度违例:直接加宽

这个最简单。把线宽改到规则要求的最小值以上。但要注意,加宽后可能会引起间距违例。所以改完一条线,要检查它和相邻线的间距。

3.3.3 最小间距违例:拉开或绕线

两根线太近了,要么拉开距离,要么其中一根绕路。我建议优先拉开,因为绕线可能会引入天线效应。

3.3.4 天线效应:加跳线或加二极管

天线效应违例,最常用的修复方法是“跳线”——把长金属线断开,通过上层金属跳过去。这样金属面积就分开了。

如果跳线不方便,可以在金属线上加一个反偏二极管,用来泄放电荷。但加二极管会占用面积,我一般只在关键信号线上用。

小技巧:修天线效应时,尽量在靠近栅极的地方加跳线。这样保护效果最好。我曾经试过在远离栅极的地方加跳线,结果天线比还是超标。后来才明白,电荷主要是在刻蚀过程中积累的,离栅极越近,风险越大。

3.3.5 密度规则:加dummy图形

密度不够,就在空白区域加dummy金属块。密度太高,就挖掉一些金属。但要注意,dummy图形不能影响电路功能。我一般用自动dummy填充工具,然后手动检查关键区域。

3.3.6 最小包围违例:扩大包边

这个最简单。把通孔周围的金属往外扩,直到满足规则。但要注意,扩大的时候不要碰到其他图形。

警告:修DRC时,千万不要“为了修而修”。每改一处,都要重新跑LVS(版图与电路一致性检查)。我见过有人修DRC时不小心把连线改断了,结果LVS报错,又花了两天时间排查。所以,改一处,跑一次LVS,这是铁律。

3.4 DRC修复流程,一张图说清楚

下面这张图,是我自己总结的DRC修复流程。每次拿到DRC报告,我就按这个步骤来,效率很高。

DRC修复流程图 获取DRC报告 分类违例(按类型/层) 判断严重程度(高/中/低) 选择修复策略 执行修复 重新跑DRC+LVS 未通过,返回分类 ✓ 通过

3.5 避坑指南

最后,分享几个我踩过的坑。

  • 不要一次性修完所有违例。 我曾经一口气修了200个DRC违例,结果LVS全乱了。后来学乖了,一次只修一个类型,修完就跑LVS。
  • 注意“假违例”。 有些DRC违例是假的,比如不同电位的金属线,规则要求间距大一些。但如果你确认这两根线永远不会同时带电,可以申请waive(豁免)。但waive要有依据,不能乱来。
  • 修完要检查周围。 你修了一条线,可能会影响旁边的线。所以修完一个区域,要放大看看周围有没有新问题。
  • 保留修改记录。 我习惯在修DRC时,用注释记录修改原因。这样下次回来看,或者同事接手,都知道为什么这么改。

总结一下:DRC是芯片制造的第一道关卡。它不复杂,但很繁琐。耐心、细心、加上一点经验,你就能搞定它。记住,DRC不是敌人,它是帮你发现问题的朋友。

可可精品资料库