2. DRC规则文件概述:规则文件的定义、常见格式(SVRF、TCL)、规则文件在Calibre中的角色

2.1 规则文件的定义与核心作用

DRC(Design Rule Check,设计规则检查)规则文件是半导体制造工艺与IC设计之间的“法律文本”。它由晶圆厂(Foundry)根据工艺节点(如28nm、7nm、5nm)的物理极限和良率要求编写,以标准化的语法描述金属间距、线宽、通孔包绕、密度等几何约束。EDA工具(如Calibre)读取该文件后,对版图数据库执行逐条规则比对,输出违反项(Violation)供设计师修正。

核心公式: 规则文件 = 工艺约束的数学化表达 + EDA工具可解析的指令集

规则文件在Calibre DRC流程中扮演三个关键角色:

  • 约束载体: 将工艺手册(Design Manual)中的数百条几何规则转化为工具可执行的检查语句。
  • 检查引擎: 定义检查范围(全芯片/模块)、精度(栅格/坐标)、报告格式(RVE/ASCII)。
  • 良率过滤器: 通过冗余规则(如最小面积、天线效应)提前筛选出制造阶段可能失效的版图结构。

2.2 常见规则文件格式:SVRF vs TCL

Calibre支持两种主流的规则文件语法:SVRF(Standard Verification Rule Format) 和 TCL(Tool Command Language)。下表从语法风格、适用场景、学习曲线三个维度进行对比:

对比维度 SVRF TCL
语法风格 声明式、关键词驱动(如 WIDTH、SPACE) 脚本式、过程化(if、foreach、set)
可读性 高,接近自然语言,适合工艺工程师编写 中,需要编程基础,适合复杂条件分支
变量与循环 有限(仅支持 INT、REAL、STRING 变量) 完整(支持列表、字典、数学函数、正则表达式)
规则复用 通过 INCLUDE 语句引用外部文件 通过 source 或 proc 实现模块化
调试能力 弱,依赖Calibre内置日志 强,可插入 puts、error 进行断点调试
主流工艺节点 180nm ~ 28nm 成熟工艺 16nm 以下先进工艺(FinFET、GAA)
学习曲线 平缓,1~2周可上手 陡峭,需同时掌握TCL语法和DRC语义
行业趋势: 目前主流晶圆厂(TSMC、Samsung、SMIC)的先进工艺PDK中,DRC规则文件普遍采用“SVRF主框架 + TCL子程序”的混合模式——顶层规则用SVRF保持可读性,复杂计算(如密度梯度、冗余金属填充)用TCL实现。

2.3 SVRF规则文件结构示例

以下是一个典型的SVRF规则文件片段,展示其层次化结构:

// ============================================
// 规则文件头部:版本、单位、精度声明
// ============================================
DRC CHECKSUM "A1B2C3D4"
LAYOUT SYSTEM GDSII
PRECISION 1000   // 1 nm = 1000 单位
UNITS LENGTH MICRON

// ============================================
// 层定义:将GDS层号映射为逻辑名称
// ============================================
LAYER M1 1001
LAYER V1 1010
LAYER M2 1002

// ============================================
// 规则组:金属1最小宽度
// ============================================
RULE GROUP "METAL_1_BASIC"
  WIDTH M1 0.10   // 最小宽度 0.10 µm
  SPACE M1 0.12   // 最小间距 0.12 µm
END GROUP

// ============================================
// 规则组:通孔包绕检查
// ============================================
RULE GROUP "VIA1_ENC"
  ENCLOSURE M1 V1 0.05   // M1 包绕 V1 至少 0.05 µm
  ENCLOSURE V1 M2 0.05   // V1 包绕 M2 至少 0.05 µm
END GROUP

// ============================================
// 输出语句:将检查结果写入数据库
// ============================================
OUTPUT M1_WIDTH_ERR  "M1 width < 0.10 µm"
OUTPUT M1_SPACE_ERR  "M1 space < 0.12 µm"
OUTPUT V1_ENC_ERR    "V1 enclosure violation"

2.4 规则文件在Calibre中的执行角色

下图展示了规则文件在Calibre DRC流程中的位置与数据流向:

规则文件在Calibre DRC流程中的角色 GDSII / OASIS 版图数据库 DRC规则文件 SVRF / TCL Calibre DRC 引擎 规则解析 → 几何运算 → 结果输出 RVE 结果数据库 .db + .ascii 报告 Violation 标记 版图高亮 + 坐标列表 统计摘要 通过/失败/总数 流程说明 ① 版图 + 规则文件同时输入 ② 引擎逐条解析规则并执行 ③ 输出三种格式的结果

2.5 规则文件在Calibre中的执行阶段

Calibre DRC引擎读取规则文件后,按以下四个阶段执行:

  1. 解析阶段(Parse): 检查SVRF/TCL语法正确性,建立规则内部数据结构。若语法错误,引擎直接退出并报告行号。
  2. 层映射阶段(Layer Mapping): 将规则文件中的逻辑层名(如 M1)与版图数据库中的GDS层号(如 1001)绑定。此阶段会检查层号是否存在、是否重复。
  3. 几何运算阶段(Boolean & Check): 执行 WIDTH、SPACE、ENCLOSURE 等几何操作,生成中间层和错误标记。这是最耗时的阶段,通常占整个DRC运行时间的80%以上。
  4. 输出阶段(Output): 将检查结果写入RVE数据库(.db)、ASCII报告(.ascii)和版图标记层(.gds)。
常见陷阱: 规则文件中的 PRECISION 声明必须与版图数据库的精度一致。例如,若版图使用1nm精度(1000单位/µm),但规则文件误写为100(10nm精度),会导致所有间距检查结果偏移一个数量级,产生大量假错(False Violation)。

2.6 SVRF与TCL的混合使用场景

下图展示了一个先进工艺DRC规则文件中SVRF与TCL的典型分工:

SVRF + TCL 混合规则文件架构 SVRF 主文件 (top.drc) • 层定义 (LAYER) • 单位/精度声明 • 简单规则 (WIDTH/SPACE) • INCLUDE 子文件 • OUTPUT 语句 • RULE GROUP 分组 • 调用 TCL 过程 TCL 子文件 (complex.tcl) • 密度梯度计算 • 冗余金属填充算法 • 天线效应比率计算 • 多层嵌套条件分支 • 自定义错误消息格式化 • 统计汇总与报告生成 • 调用外部脚本/工具 INCLUDE SVRF负责规则结构,TCL负责复杂计算逻辑,两者通过 INCLUDE 和 proc 调用衔接

2.7 规则文件版本管理与维护建议

  • 版本号嵌入: 在规则文件头部使用 DRC CHECKSUM 或注释记录版本号(如 // REV 2.3_2025Q1),便于追溯。
  • 分层引用: 将基础规则(如最小宽度/间距)与工艺特定规则(如OPC辅助图形)分离为独立文件,通过 INCLUDE 组合。
  • 回归测试: 每次修改规则文件后,使用标准测试版图(Golden Layout)运行DRC,确保新增规则不破坏已有检查。
  • 注释密度: 每10行规则至少包含1行注释,说明规则来源(如“TSMC N7 1.2.3-4”)和设计意图。