4、DRC结果解读:如何阅读DRC报告

DRC跑完了,一堆错误飘红,怎么办?

别慌。我刚开始带新人时,最常见的问题就是——看到几百个DRC错误,直接懵了。其实DRC报告没那么可怕,关键是你得知道怎么看。

4.1 DRC报告长什么样?

不同EDA工具输出的报告格式略有差异,但核心信息都一样。我以Calibre为例,这是业内最常用的工具之一。

一份典型的DRC报告,包含这几个部分:

  • 头部信息:工具版本、运行时间、规则文件路径
  • 错误摘要:按规则分类的错误数量统计
  • 详细错误列表:每个错误的具体信息
  • 结束标记:报告结束,总错误数汇总

嗯,这里要注意——很多人只看错误数量,不看摘要。其实摘要能帮你快速定位问题集中区域。

4.2 错误类型:你得认识这几种

DRC错误大致分三类,我按严重程度排个序:

错误类型 严重程度 典型例子
硬性错误(Hard Error) 必须修复 金属间距不足、有源区重叠
软性错误(Soft Error) 建议修复 天线效应、密度不足
警告(Warning) 可忽略但需确认 浮空节点、未连接引脚

我在项目中遇到过一种情况:新人看到几百个Warning,急得不行。其实有些Warning是规则文件本身过于保守导致的。你想想看,如果每个Warning都去修,那项目周期得翻一倍。

注意:硬性错误必须清零才能tape-out。软性错误和警告,需要结合设计规范判断是否修复。

4.3 坐标信息:找到错误位置

DRC报告里每个错误都会给出坐标。格式一般是:

ERROR: M1.SPACE.1 - Metal1 spacing < 0.18um
  @ (123.45, 678.90)  layer: M1
  Cell: TOP/INST_A/INST_B

坐标的单位是微米(um),对应版图坐标系的原点。我习惯的做法是:

  1. 先看Cell路径,确定错误在哪个模块
  2. 再看坐标,在版图里定位
  3. 最后看层次信息,确认是哪层金属或器件

说白了,坐标就是地图上的经纬度。你光知道经纬度没用,得知道它在哪个城市(Cell)才行。

4.4 层次信息:看懂层名

层次信息告诉你错误发生在哪一层。常见的层名缩写:

  • M1, M2, M3...:金属层
  • V1, V2, V3...:通孔层
  • POLY:多晶硅层
  • ACT:有源区
  • NW:N阱
  • CONT:接触孔

举个例子,错误信息里写「M1.SPACE.1」,意思就是金属1层的间距规则被违反了。我见过有人把M1的间距错误当成M2的去修,结果修了半天发现位置不对——这就是没看清层次信息。

4.5 RVE工具的使用

光看文本报告效率太低。RVE(Results Viewing Environment)就是帮你可视化DRC结果的工具。

我个人习惯的RVE操作流程:

  1. 加载结果:打开RVE,导入DRC运行生成的数据库文件(.db或.asc)
  2. 查看摘要:RVE会按规则分组显示错误数量,双击某条规则可以展开所有实例
  3. 定位错误:选中一个错误,RVE会自动在版图窗口中高亮显示
  4. 查看详情:右侧面板会显示该错误的完整信息,包括坐标、层次、违反的规则描述
  5. 标记状态:修完一个错误后,可以标记为「已检查」或「已修复」
小技巧:RVE里有个「Filter」功能,可以按错误类型、层次、坐标范围筛选。我经常用它只看M1层的错误,这样不会眼花。

4.6 知识体系总览

下面这张图帮你理清DRC结果解读的核心逻辑:

DRC结果解读知识体系 DRC结果解读 报告结构 错误类型 坐标信息 头部信息 错误摘要 详细列表 硬性错误 软性错误 警告 Cell路径 坐标值 层次信息 RVE工具:可视化定位与标记

4.7 实战经验:如何高效排查DRC错误

最后分享一个我自己的排查流程:

  1. 先看总数:如果错误超过1000个,大概率是规则文件配置有问题,或者有全局性错误(比如电源地短路)
  2. 再看分布:错误集中在某个模块?还是分散在全芯片?集中问题好修,分散问题要警惕
  3. 从大到小修:先修大面积的错误(比如整条总线间距不够),再修零散的小错误
  4. 善用RVE的Group功能:把相同类型的错误分组,批量定位

核心要点总结:

  • DRC报告 = 头部 + 摘要 + 详细列表
  • 错误分硬性、软性、警告三类,硬性必须清零
  • 坐标 + Cell路径 + 层次信息 = 精确定位
  • RVE是可视化利器,学会用Filter和Group

嗯,DRC结果解读这块,说白了就是「看得懂报告,用得好工具」。刚开始可能会觉得信息量太大,但跑过两三个项目后,你闭着眼睛都能找到问题在哪。

可可精品资料库