2. DRC工具与文件格式:主流DRC工具介绍、规则文件与结果输出

在芯片物理验证流程中,设计规则检查(DRC)工具是确保版图符合代工厂工艺规则的“守门员”。不同工具在引擎架构、规则语言、结果可视化方面各有侧重。本章系统梳理三大主流DRC工具、规则文件格式及结果输出格式,帮助工程师建立工具选型与文件解析的基础认知。

2.1 主流DRC工具对比

目前业界最广泛使用的DRC工具包括 Calibre(Mentor Graphics / Siemens EDA)、ICV(Synopsys)和 Assura(Cadence)。三者在处理能力、规则语言、集成度上存在显著差异,下表从关键维度进行对比:

对比维度 Calibre ICV Assura
开发商 Siemens EDA (原Mentor) Synopsys Cadence
规则语言 SVRF (Standard Verification Rule Format) Tcl (Tool Command Language) Skill / Assura Rule Language
引擎架构 分层并行处理,支持多线程/分布式 基于图形处理器加速,层次化运算 集成于Virtuoso环境,交互式验证
典型应用场景 大规模数字芯片、先进工艺(7nm及以下) 高性能计算芯片、FinFET工艺 模拟/混合信号芯片、全定制版图
结果输出格式 ASCII报告、GDS标记、SVG图形 ASCII报告、GDS标记、DB格式 ASCII报告、GDS标记、Skill图形
市场占有率 约60%(先进工艺首选) 约25%(高性能计算领域强势) 约15%(模拟设计生态绑定)
选型建议: 对于7nm及以下先进工艺节点,Calibre凭借其成熟的层次化引擎和丰富的代工厂PDK支持,是绝大多数项目的首选。ICV在Synopsys设计流程中与PrimeTime、IC Compiler II深度集成,适合全Synopsys工具链团队。Assura在Cadence Virtuoso环境中具有最佳交互体验,适合模拟版图工程师逐条调试DRC违例。

2.2 DRC规则文件格式

DRC规则文件是代工厂将工艺约束转化为机器可读指令的载体。不同工具使用不同的规则语言,其中 SVRF 和 Tcl 是最具代表性的两种格式。

2.2.1 SVRF格式(Calibre)

SVRF是Calibre的原生规则语言,采用声明式语法,通过 LAYER、DRC、CONNECT 等关键字定义层次、规则和连接关系。其核心结构如下:

// 定义层次
LAYER M1 1001
LAYER V1 1002
LAYER M2 1003

// 定义规则:金属1最小宽度
DRC M1 WIDTH < 0.1 "M1最小宽度违例,要求≥0.1μm"

// 定义规则:金属1与金属2之间的最小间距
DRC M1 M2 SPACE < 0.12 "M1-M2间距违例,要求≥0.12μm"

// 定义连接关系
CONNECT M1 V1
CONNECT V1 M2

SVRF的优势在于语法直观、代工厂支持广泛,且支持复杂的布尔运算和派生层定义。几乎所有先进工艺的DRC规则集都提供SVRF版本。

2.2.2 Tcl格式(ICV)

ICV使用Tcl作为规则脚本语言,将DRC规则封装为Tcl过程(proc),具有更强的编程灵活性和流程控制能力。典型结构如下:

# 定义层次
set_layer -name M1 -gds_number 1001
set_layer -name V1 -gds_number 1002
set_layer -name M2 -gds_number 1003

# 定义规则:金属1最小宽度
create_rule -name M1_WIDTH -type width -layer M1 -value 0.1 \
    -error_message "M1最小宽度违例,要求≥0.1μm"

# 定义规则:金属1与金属2最小间距
create_rule -name M1_M2_SPACE -type space -layer1 M1 -layer2 M2 \
    -value 0.12 -error_message "M1-M2间距违例,要求≥0.12μm"

Tcl格式的优势在于可编程性——工程师可以在规则中嵌入条件判断、循环、数学运算,适合需要动态调整规则参数的场景(如根据密度反馈调整规则阈值)。

格式转换提示: 部分代工厂同时提供SVRF和Tcl两套规则文件。如果项目需要从Calibre迁移到ICV,或反之,可使用工具自带的规则转换器(如Calibre的 svrf2tcl 脚本)进行初步转换,但转换后必须逐条验证规则语义是否一致,因为两种语言的布尔运算优先级和派生层定义方式存在差异。

2.3 DRC结果输出格式

DRC运行完成后,工具会生成包含违例位置、类型、层信息的检查结果。不同输出格式服务于不同的使用场景:ASCII报告用于批量统计和脚本解析,GDS标记用于版图可视化定位,SVG图形用于文档报告和快速浏览。

2.3.1 ASCII报告格式

ASCII报告是最基础的输出格式,以文本形式列出每条违例的坐标、层、规则名称和描述。Calibre的ASCII报告典型片段如下:

DRC Results Summary
-------------------
Total Violations: 156
Rule: M1_WIDTH (M1最小宽度)
  Violation 1: (123.45, 678.90)  Layer: M1  Width: 0.08μm
  Violation 2: (124.00, 679.50)  Layer: M1  Width: 0.09μm
Rule: M1_M2_SPACE (M1-M2间距)
  Violation 1: (200.10, 300.20)  Layer: M1/M2  Space: 0.10μm

ASCII报告适合用脚本(如Perl、Python)解析后生成统计图表,或导入数据库进行违例趋势分析。

2.3.2 GDS标记格式

GDS标记格式将违例位置以图形化的方式写入GDS文件,通常使用特定的标记层(如层号200-255)来高亮违例区域。工程师可以在版图编辑器中加载标记GDS,快速定位违例位置。

  • 标记层约定: 不同工具使用不同的层号范围。Calibre默认使用层号200-249作为标记层,ICV使用层号250-255。
  • 标记形状: 违例通常用矩形、多边形或路径表示,形状边界即为违例区域。
  • 属性信息: 部分工具支持在GDS属性中嵌入违例ID和规则名称,方便在版图编辑器中直接查看违例详情。

2.3.3 SVG图形格式

SVG(可缩放矢量图形)格式是Calibre特有的结果可视化输出,将违例信息以矢量图形的方式呈现,适合嵌入技术文档、报告或用于快速浏览。下图展示了DRC结果SVG输出的典型结构:

DRC结果SVG输出结构示意 DRC结果SVG输出结构示意 版图区域 (GDS) 金属层 M1 金属层 M2 违例标记 SVG输出 违例坐标与形状 规则名称与描述 SVG输出特点 • 矢量格式,缩放不失真,适合嵌入技术文档 • 包含违例坐标、形状、规则名称、违例描述等完整信息 • 支持交互式查看(如鼠标悬停显示详情),便于快速定位
注意事项: SVG输出文件通常较大(一个包含数千条违例的SVG文件可能达到数十MB),不建议在浏览器中直接打开大型SVG文件。建议使用专用SVG查看器或将其转换为PDF后再用于文档报告。另外,SVG格式仅Calibre原生支持,ICV和Assura不直接输出SVG,但可通过第三方工具将GDS标记转换为SVG。

2.4 工具与格式的协同工作流

在实际项目中,DRC工具、规则文件和结果输出格式构成一个完整的验证闭环。下图展示了从规则准备到结果分析的典型工作流:

DRC验证工作流 DRC验证工作流:工具、规则与结果 规则文件 SVRF / Tcl 版图输入 GDS / OASIS DRC工具 Calibre / ICV / Assura 结果输出 ASCII / GDS标记 / SVG 分析 & 修复

工作流说明:

  1. 规则准备: 代工厂提供SVRF或Tcl格式的规则文件,工程师根据项目需求选择对应工具版本。
  2. 版图输入: 将GDS或OASIS格式的版图文件导入DRC工具。
  3. 规则检查: DRC工具加载规则文件,对版图执行层次化或扁平化检查。
  4. 结果输出: 工具生成ASCII报告用于统计、GDS标记用于版图定位、SVG用于文档展示。
  5. 分析修复: 工程师根据结果输出定位违例,修改版图后重新运行DRC,直至所有违例清零。
效率提升技巧: 在项目初期,建议同时输出ASCII报告和GDS标记。ASCII报告用于脚本自动化统计违例分布(如按层、按规则分类),GDS标记用于版图编辑器中逐条查看。SVG格式仅在需要生成技术报告或向客户展示时使用,避免在迭代阶段频繁生成大体积SVG文件。