3. Calibre DFM运行环境搭建
Calibre DFM 并不是一个单一可执行程序,而是一组围绕版图数据、工艺规则与检查引擎协同工作的工具集合。要让 DFM 检查真正跑起来,运行环境需要同时满足四个条件:可用的 Calibre 可执行文件、有效的 License、与工艺匹配的规则文件(rule deck)、以及可被工具正确读取的版图与工艺库。本节围绕这四件事展开,重点讲清楚“装什么、配什么、怎么验证”,而不是停留在概念层面。
一、工具安装:先确认版本与平台一致性
Calibre 通常由 EDA 供应商以安装包形式提供,安装目录结构相对固定。以 Linux 环境为例,常见安装路径为 /opt/mentor/calibre/<version> 或用户自定义的 /tools/calibre。安装时首先要确认三件事:操作系统与架构(如 RHEL 7/8、x86_64)、Calibre 主版本(如 2022.3、2023.4)、以及与代工厂 PDK 匹配的版本要求。很多 DFM 规则文件对 Calibre 版本有最低要求,版本过低会直接报语法不识别。
安装完成后,需要把可执行文件路径加入环境变量。典型做法是在用户 shell 配置中设置:
export CALIBRE_HOME=/opt/mentor/calibre/2023.4
export PATH=$CALIBRE_HOME/bin:$PATH
export MGC_HOME=$CALIBRE_HOME
export CALIBRE_LIC_FILE=27020@lic-server.company.com
其中 CALIBRE_HOME 指向安装根目录,PATH 让 calibre、calibre -drc、calibre -lvs 等命令可直接调用,CALIBRE_LIC_FILE 指定 License 服务器地址与端口。设置后可用 which calibre 和 calibre -v 验证命令是否可用、版本是否正确。
二、License 配置:端口、主机与特性检查
Calibre 采用浮动 License 机制,客户端通过 LM_LICENSE_FILE 或 CALIBRE_LIC_FILE 指向 License 服务器。配置时要注意三点:一是端口号必须与服务器端 lmgrd 启动时一致,常见为 27000 或 27020;二是主机名要能被 DNS 或 /etc/hosts 正确解析;三是所购买的 License 特性(feature)要覆盖 DFM 相关模块,例如 calibre_drc、calibre_lvs、calibre_dfm 等。
验证 License 是否可用,最直接的方式是运行 calibre -licdebug 或查看 lmstat 输出:
lmstat -a -c 27020@lic-server.company.com | grep -i calibre
如果提示 “Cannot connect to license server” 或 “Feature not found”,应依次检查网络连通性、端口开放情况、服务器进程状态以及 feature 名称是否拼写正确。License 问题往往不是工具本身故障,而是环境变量或网络配置遗漏,排障时应优先从这三处入手。
三、工艺库与规则文件准备
DFM 检查依赖两类输入:工艺库(PDK)和规则文件(rule deck)。工艺库通常由代工厂提供,包含层定义、器件模型、技术文件等;规则文件则描述具体的 DFM 检查项,如金属密度、通孔密度、CMP 平坦度、光刻热点等。规则文件一般以 .rul 或 .cal 为扩展名,内部通过 LAYER、DRC、DFM 等语句组织。
准备阶段要确认规则文件与工艺节点、金属层堆叠、以及 Calibre 版本三者匹配。例如某 28nm 工艺的 DFM deck 可能要求 Calibre 2022.3 以上,并引用特定的 techfile 与 layer map。若规则文件中出现 INCLUDE 语句,需保证被包含文件路径正确,否则运行时会报 “cannot open include file”。建议在正式跑全芯片前,先用一个小模块做冒烟测试,确认规则文件能正常加载。
四、命令行基本操作:从冒烟测试到全芯片运行
Calibre 的命令行调用方式非常直接,核心是 calibre 加不同选项。DFM 检查通常以 DRC 引擎为基础,通过 runset 指定规则文件。一个典型的冒烟测试命令如下:
calibre -drc -hier -turbo -runset dfm.rul -gds top.gds -report dfm.rpt
其中 -drc 表示调用 DRC 引擎,-hier 启用层次化处理,-turbo 开启多线程加速,-runset 指定规则文件,-gds 指定输入版图,-report 指定输出报告。运行结束后,工具会生成 dfm.rpt 以及可能的 dfm.sum 汇总文件。判断是否成功,首先看退出码是否为 0,再看报告中是否有 “Total Errors: 0” 或具体违规条目。
如果规则文件较大,建议先用小模块验证语法,再逐步放大到全芯片。命令行方式适合批量运行和自动化脚本,也便于在服务器上通过 nohup 或作业调度系统提交。
五、图形界面基本操作:RVE 与结果查看
Calibre 提供图形界面用于结果查看和交互式调试,常用的是 RVE(Results Viewing Environment)。启动方式为:
calibre -gui
在 GUI 中,可以加载 runset、选择输入版图、启动检查,并在结果窗口中按层次、按规则、按坐标浏览违规。RVE 支持与版图编辑器联动,点击某条违规即可在版图中高亮对应位置。对于 DFM 检查,图形界面尤其适合分析密度、热点、CMP 等空间分布类问题,因为这类问题往往需要结合版图上下文判断。
图形界面与命令行并非互斥:常见做法是用命令行跑批量检查,再用 GUI 打开报告做交互分析。两者共享同一套规则文件和 License,因此环境配置一次即可通用。
六、环境搭建检查清单
为便于实际执行,下面给出一份可直接对照的检查清单,覆盖从安装到运行的完整链路:
| 检查项 | 验证方式 | 通过标准 |
|---|---|---|
| Calibre 可执行文件 | which calibre / calibre -v |
返回路径且版本符合 PDK 要求 |
| License 连通性 | lmstat -a -c 27020@lic-server |
能看到 calibre 相关 feature 且状态为 UP |
| 规则文件可加载 | 小模块冒烟测试 | 无 include 报错、无语法错误 |
| 版图可读取 | 检查 GDS/OASIS 顶层 cell | 工具能识别层次与层号 |
| 输出报告生成 | 查看 .rpt / .sum |
报告完整、退出码为 0 |
calibre -v 正常但运行 DRC 时报 License 错误,优先检查 CALIBRE_LIC_FILE 是否被其他环境变量覆盖,以及当前用户是否有权限访问 License 服务器端口。
INCLUDE 路径建议使用绝对路径或基于 $CALIBRE_HOME 的相对路径,避免因运行目录不同导致文件找不到。工艺库版本与 Calibre 版本不匹配时,即使命令能启动,也可能在检查中途报层号或语法错误。