一、流片前检查清单:设计规则检查(DRC)报告解读与常见错误处理

说实话,DRC 这关过不去,流片就是白搭。

我见过太多团队,设计功能跑得飞起,一到 DRC 就卡住。有个项目我记得特别清楚——明明只差一个金属密度规则没满足,结果 tapeout 推迟了两周。嗯,今天咱们就把 DRC 报告怎么读、常见错误怎么处理,一次性讲透。

核心观点:DRC 不是走形式,它是流片前的最后一道防线。你想想看,晶圆厂给你定的规则,每条背后都是真金白银的教训。

1.1 DRC 报告长什么样?

每家晶圆厂的 DRC 报告格式略有不同,但核心结构差不多。我习惯把报告分成三块来看:

  • 头部信息——工艺节点、版本号、运行日期。这些信息容易忽略,但很重要。我遇到过用错 rule deck 的情况,一查头部信息就发现了。
  • 错误列表——每条错误都有坐标、层次、违反的规则名。这是重点。
  • 统计摘要——按规则分类的错误数量。先看这里,心里有个底。

举个例子,一个典型的 DRC 错误条目长这样:

ERROR: M1.S.1 - Minimum M1 spacing 0.18um
  Location: (123.45, 678.90)
  Layer: M1
  Violation: spacing = 0.15um < 0.18um

说白了,就是告诉你:你这根线离旁边的线太近了,差了 0.03 微米。

1.2 常见 DRC 错误类型与处理

我这些年看过的 DRC 报告,90% 的错误都集中在下面几类。咱们一个一个说。

1.2.1 最小间距违规(Spacing Violation)

这是最常见的错误。金属线、有源区、多晶硅……只要两条边靠太近就会报。

为什么会这样? 说白了就是 layout 画得太挤了。有时候是为了省面积,有时候是自动布线工具没调好参数。

我的处理习惯:先看错误分布。如果集中在某个区域,多半是手动 layout 的问题。如果满版都是,那就是布线策略需要调整。我曾经有个项目,自动布线出来的 M2 间距全报错,后来发现是 routing grid 设错了。

1.2.2 最小宽度违规(Width Violation)

线宽不够,工艺做不出来。或者做出来了,电阻太大、容易断。

这类错误通常出现在:

  • 拐角处(corner)的金属线
  • via 附近的金属包裹层
  • 某些特殊器件的走线

注意:不要以为只差 0.01um 就没事。晶圆厂的光刻机可不会跟你讨价还价。差一纳米,良率就掉一截。

1.2.3 金属密度违规(Metal Density Violation)

这个坑我踩过。芯片上某个区域的金属太多或太少,CMP(化学机械抛光)的时候就会出问题——要么磨不平,要么磨过头。

处理方法其实就两种:

  1. 加 dummy metal——密度太低的地方,塞一些浮空的金属块
  2. 挖 slot——密度太高的宽金属线,开一些槽

嗯,这里要注意:加 dummy 的时候别忘了检查 floating 规则。有些工艺要求 dummy 必须接地或接电源。

1.2.4 天线效应违规(Antenna Violation)

这个规则很多人容易忽略。简单说就是:一根长金属线连着栅极,在刻蚀的时候会像天线一样收集电荷,把栅氧化层击穿。

我见过最夸张的一次,一个芯片天线效应报了三千多个错误。后来怎么解决的?跳线(layer hopping)加 diode,双管齐下。

1.3 DRC 错误处理流程

别拿到报告就一头扎进去改。我建议按这个顺序来:

  1. 先看统计摘要——了解全局,哪些规则报得多
  2. 按严重程度排序——有些规则是致命错误(必须改),有些只是建议(可以 waiver)
  3. 定位热点区域——错误集中的地方,往往是设计有问题的区域
  4. 批量修改 vs 手动修改——同类型错误用脚本批量修,个别问题手动调
  5. 重新跑 DRC 验证——改完一定要全版重跑,别偷懒

避坑指南:我曾经一次性改了五百多个 spacing 错误,结果引入了一百多个新的 width 错误。改 DRC 就像打地鼠,改一个可能冒出来三个。所以每次改完都要全版验证,别只查局部。

1.4 DRC 知识体系总览

下面这张图是我自己整理的 DRC 知识框架,你可以对照着看:

DRC 知识体系总览 DRC 检查清单 报告解读 头部信息 错误列表 统计摘要 常见错误类型 间距违规 宽度违规 密度违规 处理流程 全局分析 批量修改 全版验证 核心原则:先全局后局部,先批量后手动 改完一处,全版重跑,避免引入新错误

1.5 实用技巧与工具

最后分享几个我常用的技巧:

场景 推荐做法 避坑提醒
大量 spacing 错误 用脚本批量推线 注意推线方向,别把其他规则推坏了
金属密度不够 自动加 dummy metal 检查 dummy 是否浮空,是否需要接地
天线效应违规 跳线 + 加 diode 跳线层要选对,别引入新的天线问题

一个小建议:每次跑 DRC 之前,先确认 rule deck 版本对不对。我见过有人用 28nm 的 rule 去跑 40nm 的设计,结果报了两万个错误——全是误报。

好了,DRC 这块就先聊到这儿。记住一句话:DRC 报告不是来找你麻烦的,它是来帮你的。每一条规则背后,都是晶圆厂用真金白银换来的经验。


公众号:蓝海资料掘金营,微信deep3321