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流程中的位置与数据流向:
2.5 规则文件在Calibre中的执行阶段
Calibre DRC引擎读取规则文件后,按以下四个阶段执行:
- 解析阶段(Parse): 检查SVRF/TCL语法正确性,建立规则内部数据结构。若语法错误,引擎直接退出并报告行号。
- 层映射阶段(Layer Mapping): 将规则文件中的逻辑层名(如
M1)与版图数据库中的GDS层号(如1001)绑定。此阶段会检查层号是否存在、是否重复。 - 几何运算阶段(Boolean & Check): 执行
WIDTH、SPACE、ENCLOSURE等几何操作,生成中间层和错误标记。这是最耗时的阶段,通常占整个DRC运行时间的80%以上。 - 输出阶段(Output): 将检查结果写入RVE数据库(.db)、ASCII报告(.ascii)和版图标记层(.gds)。
常见陷阱: 规则文件中的
PRECISION 声明必须与版图数据库的精度一致。例如,若版图使用1nm精度(1000单位/µm),但规则文件误写为100(10nm精度),会导致所有间距检查结果偏移一个数量级,产生大量假错(False Violation)。
2.6 SVRF与TCL的混合使用场景
下图展示了一个先进工艺DRC规则文件中SVRF与TCL的典型分工:
2.7 规则文件版本管理与维护建议
- 版本号嵌入: 在规则文件头部使用
DRC CHECKSUM或注释记录版本号(如// REV 2.3_2025Q1),便于追溯。 - 分层引用: 将基础规则(如最小宽度/间距)与工艺特定规则(如OPC辅助图形)分离为独立文件,通过
INCLUDE组合。 - 回归测试: 每次修改规则文件后,使用标准测试版图(Golden Layout)运行DRC,确保新增规则不破坏已有检查。
- 注释密度: 每10行规则至少包含1行注释,说明规则来源(如“TSMC N7 1.2.3-4”)和设计意图。