2. ICV DRC规则文件结构:规则文件的基本组成、语法规则与文件组织方式
ICV DRC规则文件是物理验证流程的核心,其结构设计直接影响规则的可维护性、执行效率与跨工艺移植能力。本章从文件基本组成、语法规则与组织方式三个维度展开,帮助读者建立对规则文件结构的系统认知。
2.1 规则文件的基本组成
一个完整的ICV DRC规则文件通常由以下五个逻辑单元构成,每个单元承担特定的功能职责:
| 逻辑单元 | 功能描述 | 典型内容 |
|---|---|---|
| 头部声明 | 定义规则版本、工艺节点、单位制与全局变量 | VERSION 1.0、UNITS MICRON、GLOBAL VDD VSS |
| 层定义 | 映射GDSII层号与逻辑层名称,定义派生层 | LAYER M1 16、LAYER VIA1 17 |
| 规则语句 | 描述具体的DRC检查条件与约束 | WIDTH M1 >= 0.1、SPACING M1 M1 >= 0.12 |
| 派生运算 | 通过布尔/几何运算生成中间层或检查层 | AND M1 VIA1、SIZE M1 BY 0.05 |
| 输出控制 | 定义错误标记格式、报告路径与运行选项 | OUTPUT ERROR_MARKER、REPORT summary.rpt |
关键原则:头部声明与层定义构成规则文件的“元数据层”,规则语句与派生运算构成“检查逻辑层”,输出控制构成“结果交付层”。三层分离是层次化设计的基础。
2.2 语法规则
ICV DRC规则文件采用基于关键字的自由格式语法,不依赖行号或固定列位置。以下为最核心的语法规则:
- 注释:以
//或/* ... */标记,支持行内与块注释。 - 语句结束:每条规则或定义以分号
;结束,允许跨行书写。 - 标识符:由字母、数字、下划线组成,区分大小写,不能以数字开头。
- 层引用:使用
LAYER_NAME或LAYER_NAME(LAYER_NUMBER)两种形式。 - 运算符:支持算术(
+ - * /)、比较(>= <= == !=)、逻辑(AND OR NOT XOR)与几何(SIZE GROW SHRINK)运算符。 - 单位:长度单位默认为米,可通过
UNITS声明切换为微米或纳米。
语法避坑:分号遗漏是规则文件解析失败的最常见原因。建议在每条规则后单独一行书写分号,避免与表达式挤在同一行。
以下是一个符合语法规范的规则片段示例:
// 头部声明
VERSION 2.1;
UNITS MICRON;
// 层定义
LAYER M1 16;
LAYER VIA1 17;
LAYER M2 18;
// 派生层:M1与VIA1的交集
DEFINE M1_VIA_OVERLAP = AND M1 VIA1;
// 规则检查:M1最小宽度
WIDTH M1 >= 0.10;
// 规则检查:M1与M2间距
SPACING M1 M2 >= 0.15;
// 输出控制
OUTPUT ERROR_MARKER LAYER 200;
REPORT "drc_summary.rpt";
2.3 文件组织方式
对于大规模工艺节点(如7nm及以下),单个规则文件可能包含数万行语句。层次化文件组织是管理复杂度的核心手段。ICV支持通过 INCLUDE 指令实现文件拆分与复用:
层次化组织方式带来以下优势:
- 模块化:金属层规则、通孔规则、密度规则各自独立成文件,便于团队并行开发。
- 复用性:工艺基础文件(
tech_base.rule)可在多个项目中共享,减少重复劳动。 - 可配置性:通过切换工艺角文件(
corner_tt.rule/corner_ss.rule)实现不同PVT条件下的规则适配。 - 可维护性:单一规则修改只需定位到对应子文件,不影响其他模块。
组织方式陷阱:避免在子文件中重复定义全局变量或层映射。所有全局声明应集中在主文件或专门的
global.rule 中,子文件仅引用。重复定义会导致解析冲突或覆盖错误。
2.4 文件组织最佳实践
基于工业界主流做法,推荐以下文件组织模板:
| 文件名称 | 包含内容 | INCLUDE 顺序 |
|---|---|---|
drc_main.rule |
VERSION、UNITS、全局变量、INCLUDE指令 | 第1层(入口) |
global.rule |
全局常量、开关变量、技术参数 | 第2层 |
layer_map.rule |
GDSII层号到逻辑层的完整映射 | 第3层 |
derived_layers.rule |
所有派生层定义(AND、OR、SIZE等) | 第4层 |
metal_rules.rule |
金属层宽度、间距、包围检查 | 第5层 |
via_rules.rule |
通孔层最小尺寸、覆盖、阵列规则 | 第5层 |
density_rules.rule |
金属密度、槽密度、均匀性检查 | 第5层 |
corner_tt.rule |
典型工艺角下的规则微调 | 第6层(可选) |
层次化设计核心:主文件只做“组装”工作,不包含任何具体规则逻辑。所有规则语句下沉到子文件,通过 INCLUDE 顺序控制解析优先级。这种设计使得规则文件可以像软件工程一样进行版本管理与持续集成。
通过上述结构,ICV DRC规则文件实现了从“平面式”到“层次化”的转变,为大规模工艺节点的规则管理提供了可扩展、可维护的工程基础。