2. DRC 工具与运行环境:主流 DRC 工具介绍、运行文件结构与基本流程

DRC(Design Rule Check)是版图验证的核心环节,其工具链与运行环境直接影响调试效率。本章将系统介绍业界三大主流 DRC 工具(Calibre、ICV、Assura)的定位与差异,解析 DRC 运行文件(.drc / .svrf)的语法骨架,并梳理从启动到生成报告的标准化流程。

2.1 主流 DRC 工具对比

不同 EDA 厂商的 DRC 引擎在规则语言、运行效率、集成方式上各有侧重。下表从关键维度进行横向对比:

工具名称 开发商 规则语言 核心优势 典型应用场景
Calibre Siemens EDA SVRF / Tcl 业界标准,规则库最全;支持层次化并行加速;调试工具 RVE 强大 先进工艺(7nm 及以下)、大规模数字/混合信号芯片
ICV Synopsys ICV Rule 与 Synopsys 数字流程深度集成;物理验证与 DFM 一体化 数字后端、先进 FinFET 工艺、光刻热点检测
Assura Cadence Assura Rule 与 Virtuoso 环境无缝衔接;交互式调试直观 模拟/定制版图、中小规模模块验证
选型建议: 多数代工厂(如 TSMC、Samsung)以 Calibre 规则集作为官方签核标准。若团队同时使用 Cadence 设计环境,建议保留 Assura 做快速迭代,最终以 Calibre 做 sign-off 验证。

2.2 DRC 运行文件结构(.drc / .svrf)

DRC 规则文件是工具执行的“法律条文”。以 Calibre 的 SVRF 语法为例,一个典型的 .drc 文件包含以下逻辑区块:

// ============================================
// 1. 文件头:版本、工艺、单位声明
// ============================================
DRC VERSION 2023.3
LAYOUT SYSTEM GDSII
PRECISION 1000
DRC UNIT 1e-9

// ============================================
// 2. 层定义:将 GDS 层号映射为逻辑层名
// ============================================
LAYER M1 1001
LAYER M2 1002
LAYER VIA1 2001

// ============================================
// 3. 规则定义:几何约束 + 派生层运算
// ============================================
// 最小宽度检查
@ Minimum Metal 1 Width = 0.1um
WIDTH M1 < 0.1  // 若宽度小于 0.1um 则报错

// 最小间距检查
@ Minimum Metal 1 to Metal 1 Space = 0.12um
EXT M1 < 0.12  // 若间距小于 0.12um 则报错

// 派生层:定义过孔包覆层
V1_ENCL = VIA1 ENCLOSURE M1 0.05

// ============================================
// 4. 输出控制:结果数据库与报告格式
// ============================================
DRC RESULTS DATABASE "mydrc.db" ASCII
DRC SUMMARY REPORT "mydrc.sum"
关键字段说明:
  • LAYER:将 GDS 数值层号绑定到可读名称,是规则可维护性的基础。
  • WIDTH / EXT / ENC:SVRF 核心几何算子,分别对应宽度、间距、包覆检查。
  • @:注释行,通常用于描述规则编号或工艺约束来源。
  • DRC RESULTS DATABASE:指定输出数据库格式(ASCII 或二进制),供 RVE 等调试工具加载。

2.3 启动与运行 DRC 的基本流程

从版图文件到 DRC 报告,通常经历以下五个步骤。下图展示了标准执行流水线:

DRC 运行标准流程 输入准备 GDS + 规则文件 规则加载 解析 .drc / .svrf 几何运算 WIDTH / EXT / ENC 结果输出 .db + .sum 报告 调试入口:RVE / 交互式浏览器 加载 .db 文件,高亮版图违例 支持逐条规则过滤与坐标定位

命令行启动示例(以 Calibre 为例):

# 单机运行
calibre -drc -hier -turbo 4 myrules.drc -layout top.gds

# 参数说明:
# -drc      :指定运行 DRC 模式
# -hier     :启用层次化处理(加速大规模版图)
# -turbo 4  :使用 4 个并行线程
# myrules.drc :规则文件路径
# -layout   :指定输入版图文件
常见启动错误:
  • 层号未定义:GDS 中使用的层号在规则文件中未通过 LAYER 声明,工具会直接跳过该层检查。
  • 精度不匹配:规则文件中的 DRC UNIT 与版图数据库单位不一致,导致检查结果偏移。
  • 内存不足:未使用 -hier 或 -turbo 参数,导致扁平化处理时内存溢出。

2.4 运行环境配置要点

在实际工程中,DRC 运行环境通常需要以下配置项:

  • License 环境变量:设置 LM_LICENSE_FILE 或 SNPSLMD_LICENSE_FILE 指向 license 服务器。
  • 工艺文件路径:代工厂提供的 .drc 文件通常包含 INCLUDE 语句引用其他规则片段,需确保相对路径或路径正确。
  • 临时目录:DRC 运行会产生大量中间文件,建议设置 DRC_TMP_DIR 指向高速 SSD 分区。
  • 并行度控制:根据服务器 CPU 核心数设置 -turbo 或 DRC_THREADS,避免过度抢占资源。

下表总结了三种工具的环境变量与启动命令差异:

工具 关键环境变量 典型启动命令 结果查看工具
Calibre MGC_HOME, CALIBRE_HOME calibre -drc ... RVE
ICV ICV_HOME, SNPSLMD_LICENSE_FILE icv -D ... ICV Workbench
Assura CDS_INST_DIR, ASSURA_HOME assura -drc ... Assura Diva / ViVA
调试效率提示: 在首次运行 DRC 时,建议先使用 -turbo 1 单线程模式验证规则文件语法正确性,确认无误后再开启多线程加速。这可以避免因规则语法错误导致的大规模重跑。