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/OASIStop.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 运行核心,右侧是输出产物,箭头表示数据流向。

Calibre nmDRC 文件体系与运行关系 输入文件 规则文件 drc.cal / drc.tvf 版图文件 top.gds 运行选项 / runset Calibre nmDRC calibre -drc -hier -turbo 8 SVRF 解析 + TVF 调度 层次化处理 / 并行检查 输出产物 结果数据库 drc.results 日志文件 drc.log 摘要报告 drc.summary 运行目录中的关键文件与判读要点 规则文件:SVRF 定义检查逻辑,TVF 负责参数化与调度 结果数据库:ASCII 便于文本查看,RDB 适合 RVE 交互定位 日志文件:检查 COMPLETE 与 ERROR,确认规则是否被正确解析 摘要报告:按检查项汇总违规数,快速判断哪条规则需要调试

把这张图记在脑中,后续无论是写规则、跑运行还是排错,都能迅速对应到具体文件与命令入口。规则文件决定“查什么”,运行选项决定“怎么跑”,结果数据库和日志决定“怎么看”。三者配合,才是完整的 nmDRC 运行环境。