3. DRC规则文件结构:语法、层次结构与常用语句

DRC规则文件是Calibre执行版图验证的核心输入。理解其语法结构、层次划分以及关键语句,是高效调试DRC违例的基础。本章将系统拆解规则文件的组成要素,帮助你在面对成千上万行规则时,快速定位问题根源。

3.1 规则文件整体层次结构

一个标准的Calibre DRC规则文件通常遵循“定义 → 派生 → 检查 → 输出”的逻辑层次。理解这一层次,相当于拿到了阅读规则文件的“地图”。

层次结构速览: 规则文件并非平铺直叙,而是按功能模块分层组织。调试时,应首先确认当前违例属于哪一层,再向下深入。
Calibre DRC 规则文件层次结构 第1层:输入定义 (Input Definition) INDY / LAYOUT SYSTEM / DRM 语句 → 指定版图数据源、单位、精度 第2层:层次派生 (Layer Derivation) INT / AND / OR / NOT / SIZE / GROW / SHRINK → 生成中间层 第3层:检查规则 (DRC Check) DRC CHECK / ENC / WIDTH / SPACE / AREA → 定义具体几何约束 第4层:结果输出 (Results Output) DRC RESULTS DATABASE / SVDB / SUMMARY → 控制违例存储与报告

3.2 规则文件基本语法

Calibre DRC规则文件采用自由格式的文本语法,不区分大小写,但推荐使用大写关键字以增强可读性。注释行以 // 或 /* */ 标记。

语法元素 说明 示例
注释 单行 //,多行 /* ... */ // 这是宽度检查规则
变量赋值 使用 = 定义层或参数 M1 = LAYER 1
操作符 逻辑与几何运算 GATE = POLY AND DIFF
检查语句 以 DRC CHECK 开头 DRC CHECK M1_WIDTH M1 WIDTH < 0.18
结果控制 指定数据库输出 DRC RESULTS DATABASE
调试提示: 当规则文件报错时,首先检查 变量名是否拼写一致 以及 操作符两侧是否有空格。Calibre对语法空格敏感度较低,但变量名必须完全匹配。

3.3 核心语句详解

3.3.1 SVDB 语句:数据库版本控制

SVDB 语句用于指定Calibre生成的SVDB(Standard Verification Database)文件的版本和格式。它决定了结果数据库的兼容性与功能特性。

// 指定SVDB版本为4.0,支持分层结果存储
SVDB VERSION 4.0

// 启用SVDB压缩以节省磁盘空间
SVDB COMPRESS ON

3.3.2 DRC CHECK 语句:定义检查规则

这是规则文件的核心。每条 DRC CHECK 语句定义一个具体的几何或电气检查项。其基本格式为:

DRC CHECK check_name layer_expression check_type [threshold]

其中 check_type 包括 WIDTH、SPACE、ENC(包围)、AREA 等。

检查类型 描述 典型应用
WIDTH 检查图形最小宽度 金属线宽 ≥ 0.18μm
SPACE 检查同层图形最小间距 多晶硅间距 ≥ 0.22μm
ENC 检查一个层对另一个层的包围 接触孔被金属包围 ≥ 0.05μm
AREA 检查图形面积 通孔面积 ≥ 0.04μm²

3.3.3 DRC RESULTS DATABASE 语句:结果输出控制

该语句控制违例结果如何写入数据库,包括输出文件路径、格式以及是否包含层次信息。

// 将结果输出到指定SVDB文件
DRC RESULTS DATABASE "output/design_drc.db" SVDB

// 仅输出违例总数摘要,不生成详细数据库
DRC RESULTS DATABASE SUMMARY ONLY
常见错误: 如果 DRC RESULTS DATABASE 语句缺失或路径错误,Calibre将不会生成任何结果数据库,导致无法在RVE中查看违例。调试时务必确认该语句存在且路径可写。

3.4 规则文件结构对比:单文件 vs. 多文件包含

实际项目中,规则文件常采用模块化组织。下表对比了两种常见结构:

结构类型 优点 缺点 适用场景
单文件 简单直接,易于分发 文件庞大,维护困难 小型设计或原型验证
多文件包含
(INCLUDE 语句)
模块化,可复用,团队协作友好 依赖关系复杂,路径管理需谨慎 大型SoC项目,工艺库规则
// 多文件包含示例:主规则文件
INCLUDE "foundry_rules/tech_layers.drc"   // 工艺层定义
INCLUDE "foundry_rules/design_rules.drc"  // 通用设计规则
INCLUDE "project_specific/custom_checks.drc" // 项目自定义检查
DRC CHECK 语句执行流程 输入层 (M1) 派生层 (M1_DUMMY) 检查操作 (WIDTH) 结果数据库 (SVDB) 说明:DRC CHECK 语句将输入层或派生层作为操作对象,执行几何检查后,将违例写入结果数据库

3.5 常用语句速查表

以下表格汇总了调试过程中最常遇到的规则文件语句,建议作为快速参考:

语句 功能 调试关注点
LAYOUT SYSTEM GDSII 指定输入版图格式 确认格式与文件扩展名匹配
DRC MAXIMUM RESULTS ALL 设置每个检查的最大违例输出数 设为 ALL 可避免遗漏违例
DRC ICSTATION YES 启用IC Station交互调试 用于在版图编辑器中高亮违例
SELECT LAYER 在结果数据库中仅输出指定层 减少数据库体积,加速调试
DRC SUMMARY REPORT 生成文本摘要报告 快速查看违例总数与分布
核心要点: 掌握规则文件的层次结构(输入→派生→检查→输出)和三大核心语句(SVDB、DRC CHECK、DRC RESULTS DATABASE),是高效调试DRC违例的基石。遇到复杂违例时,先回到规则文件,确认检查定义是否正确、派生层是否合理、输出路径是否有效。