2. Calibre nmDRC运行环境与文件体系
Calibre nmDRC 的规则开发与调试,本质上是在一套固定的“运行环境 + 文件体系”中完成的。理解这套体系,比记住某一条 SVRF 语法更重要:只有清楚规则文件从哪里读、运行目录里会生成什么、结果数据库和日志分别承担什么职责,才能在报错时快速定位问题,而不是盲目重跑。本节围绕规则文件、运行目录、结果数据库、日志文件、SVRF/TVF 命令入口与常用运行选项展开。
一、规则文件:SVRF 与 TVF 的分工
Calibre 的规则文件通常以 .cal 或 .rule 为扩展名,内部由 SVRF(Standard Verification Rule Format)语句构成。SVRF 是 Calibre 的核心规则语言,负责描述层定义、DRC 检查、器件识别、ERC 等。规则文件一般包含几个固定区块:
- 运行环境声明:如
LAYOUT PATH、LAYOUT PRIMARY、LAYOUT SYSTEM GDSII,指定版图来源与顶层单元。 - 层定义:用
LAYER语句把 GDS 层号/数据类型映射为可读的层名,例如LAYER M1 31 0。 - 检查规则:用
DRC、WIDTH、SPACE、ENCLOSURE等语句描述几何检查。 - 输出控制:用
RESULTS DATABASE、DFM等语句指定结果格式与路径。
TVF(Tcl Verification Format)则是建立在 SVRF 之上的 Tcl 扩展。当规则需要条件分支、循环、参数化或调用外部脚本时,TVF 更合适。典型做法是:用 TVF 读取工艺参数、生成层定义或循环生成多组检查,再调用 SVRF 语句完成实际检查。可以这样理解:SVRF 是“检查逻辑”,TVF 是“组织与调度逻辑”。
二、运行目录与文件体系
一次 nmDRC 运行会围绕一个工作目录展开。建议为每次运行建立独立目录,例如 run_drc/,并在其中放置规则文件、版图文件和运行脚本。Calibre 运行时会在该目录下生成结果数据库、日志和中间文件。常见的文件体系如下:
| 文件/目录 | 作用 | 典型命名 |
|---|---|---|
| 规则文件 | 定义检查内容与运行参数 | drc.cal / drc.tvf |
| 版图文件 | 被检查的 GDS/OASIS | top.gds |
| 结果数据库 | 存放违规标记与结果 | drc.results / drc.db |
| 日志文件 | 记录运行过程与错误 | drc.log |
| 摘要报告 | 汇总各检查项违规数 | drc.summary |
结果数据库是调试的核心对象。Calibre 支持多种结果格式,常见的有 ASCII 结果、GDSII 结果和 RDB(Results Database)。ASCII 结果便于文本查看,RDB 则更适合在 Calibre RVE 中交互式浏览。日志文件记录运行时间、内存、每条规则的执行状态以及错误信息,是判断“规则是否被正确解析”的第一手依据。
三、命令入口与常用运行选项
Calibre nmDRC 的命令入口是 calibre -drc。最基本的调用形式是:
calibre -drc -hier -turbo 8 drc.cal
其中 -drc 指定进入 DRC 模式,-hier 启用层次化处理,-turbo 8 指定并行线程数。常用选项还包括:
-64:启用 64 位模式,处理大版图时避免内存溢出。-hyper:启用 Hyper 模式,提升大规模规则集的运行效率。-runset:指定运行集文件,便于复用配置。-summary:生成摘要报告,快速查看各检查项违规数。-log:指定日志文件名,便于归档与对比。
如果规则文件是 TVF,入口仍然是 calibre -drc,Calibre 会根据文件内容自动识别 Tcl 语法。也可以在规则文件中用 TVF 语句显式声明。运行选项既可以写在命令行,也可以写在规则文件的 OPTIONS 区块中,命令行优先级更高。
四、运行流程与结果判读
一次完整的 nmDRC 运行可以概括为:读取规则文件 → 解析层定义 → 加载版图 → 执行检查 → 输出结果数据库与日志。运行结束后,首先看日志末尾是否有 COMPLETE 或错误信息;然后打开摘要报告,确认各检查项的违规数量;最后用 Calibre RVE 加载结果数据库,逐条定位违规位置。
ERROR: Cannot open layout file,优先检查 LAYOUT PATH 与运行目录的相对路径;如果出现 Undefined layer,则检查层定义是否遗漏或层号写错。下面用一张图概括本节的文件体系与运行关系。图中左侧是输入文件,中间是 Calibre 运行核心,右侧是输出产物,箭头表示数据流向。
把这张图记在脑中,后续无论是写规则、跑运行还是排错,都能迅速对应到具体文件与命令入口。规则文件决定“查什么”,运行选项决定“怎么跑”,结果数据库和日志决定“怎么看”。三者配合,才是完整的 nmDRC 运行环境。