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%(模拟设计生态绑定) |
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格式的优势在于可编程性——工程师可以在规则中嵌入条件判断、循环、数学运算,适合需要动态调整规则参数的场景(如根据密度反馈调整规则阈值)。
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输出的典型结构:
2.4 工具与格式的协同工作流
在实际项目中,DRC工具、规则文件和结果输出格式构成一个完整的验证闭环。下图展示了从规则准备到结果分析的典型工作流:
工作流说明:
- 规则准备: 代工厂提供SVRF或Tcl格式的规则文件,工程师根据项目需求选择对应工具版本。
- 版图输入: 将GDS或OASIS格式的版图文件导入DRC工具。
- 规则检查: DRC工具加载规则文件,对版图执行层次化或扁平化检查。
- 结果输出: 工具生成ASCII报告用于统计、GDS标记用于版图定位、SVG用于文档展示。
- 分析修复: 工程师根据结果输出定位违例,修改版图后重新运行DRC,直至所有违例清零。