2. Calibre nmLVS运行环境与文件体系

Calibre nmLVS 并不是一个孤立的可执行程序,而是一套由安装目录、环境变量、许可证服务、运行脚本、日志、报告和结果数据库共同构成的验证环境。理解这套文件体系,是保证 LVS 能稳定运行、结果可追溯、问题可定位的前提。很多“跑不起来”或“结果找不到”的问题,根源并不在规则文件本身,而在于环境变量指向了错误的版本、许可证没有正确获取,或者结果数据库被写到了意料之外的路径。

安装目录结构

Calibre 通常安装在类似 /opt/mentor/calibre/ 或 /eda/mentor/calibre/ 的路径下,并以版本号区分,例如 calibre_2023.4_18.11。一个典型的安装目录包含以下关键子目录:

  • bin/:存放 calibre、calibre -lvs、calibre -drc 等主程序,以及 calibre -gui 图形界面入口。
  • lib/:运行库与内部模块,版本升级时变化最频繁。
  • rules/:随工具发布的示例规则文件与标准单元库,可作为编写 LVS 规则时的参考。
  • doc/:手册与命令参考,遇到选项不确定时应优先查阅。
  • license/ 或 licenses/:许可证相关工具与说明文件。

实际项目中,工艺厂提供的 LVS 规则文件(如 lvs_rule.cal)通常不放在安装目录,而是放在项目目录或 PDK 目录中,通过 -hcell、-runset 等选项引用。安装目录只提供“引擎”,规则文件才是“图纸”。

环境变量配置

Calibre 依赖若干环境变量才能正确找到程序、库和许可证。最核心的是 PATH 与 MGC_HOME(部分版本使用 CALIBRE_HOME)。典型配置如下:

export CALIBRE_HOME=/eda/mentor/calibre/calibre_2023.4_18.11
export PATH=$CALIBRE_HOME/bin:$PATH
export MGC_LICENSE_FILE=27020@lic-server
export LM_LICENSE_FILE=$MGC_LICENSE_FILE
export CALIBRE_TMPDIR=/scratch/$USER/calibre_tmp

其中 CALIBRE_TMPDIR 常被忽略,但非常重要。LVS 在运行过程中会产生大量中间文件,如果默认写到用户主目录,既可能撑爆配额,也可能因磁盘 I/O 慢而拖长运行时间。建议指向本地高速 scratch 盘,并确保该目录存在且可写。

配置完成后,可用 which calibre 确认程序路径,用 calibre -version 确认版本,用 lmstat -c $MGC_LICENSE_FILE 确认许可证服务可达。

许可证配置

Calibre 采用 FlexLM 许可证机制。许可证文件通常由管理员维护,客户端只需通过 MGC_LICENSE_FILE 或 LM_LICENSE_FILE 指向许可证服务器,格式为 端口@主机名。若使用本地许可证文件,则指向文件路径。常见问题包括:端口被防火墙拦截、服务器上 Calibre 守护进程未启动、许可证数量不足导致排队。运行 LVS 前,建议先用 lmstat 查看 calibre_lvs 特性是否可用。

运行脚本与命令行

LVS 的典型运行方式有两种:命令行直接调用,或通过 runset 文件驱动。命令行方式如下:

calibre -lvs -hier -turbo 8 \
  -hcell hcell_file \
  -runset lvs_runset \
  lvs_rule.cal

其中 -hier 表示层次化验证,-turbo 指定并行线程数,-hcell 指定层次单元列表,-runset 指定运行集文件。runset 文件把版图、原理图、规则文件、输出路径等参数集中管理,适合团队复用和版本控制。

日志、报告与结果数据库

LVS 运行结束后,会在工作目录生成一组标准文件,理解它们的用途是判读结果的关键:

  • lvs.log:运行日志,记录命令、版本、许可证、各阶段耗时和错误信息,是排障第一入口。
  • lvs.rep:文本报告,包含器件匹配、网络连接、端口对应等详细结果。
  • lvs.db 或 svdb/:结果数据库,供 RVE(Results Viewing Environment)加载,用于图形化定位不一致点。
  • lvs.sum:汇总文件,快速给出“CORRECT”或“INCORRECT”的总体结论。

下面这张图展示了从环境变量到最终结果数据库的完整文件体系与数据流关系,帮助建立整体认知。

Calibre nmLVS 运行环境与文件体系 环境层 CALIBRE_HOME 安装目录 /bin /lib /rules PATH calibre 可执行入口 MGC_LICENSE_FILE 27020@lic-server CALIBRE_TMPDIR 中间文件临时目录 输入层 版图 GDS / OASIS layout.gds 原理图网表 schematic.spi LVS 规则文件 lvs_rule.cal runset lvs_runset calibre -lvs 引擎 层次化提取 · 器件识别 · 网络比对 · 并行加速 输出层 lvs.log 运行日志 版本/许可证/耗时/错误 lvs.rep 文本报告 器件/网络/端口匹配 lvs.db / svdb 结果数据库 供 RVE 图形化定位 lvs.sum 汇总结论 CORRECT / INCORRECT

结果判读与常见路径问题

拿到输出后,第一步看 lvs.sum 或 lvs.rep 末尾的总结论。若显示 CORRECT,说明版图与原理图在器件、网络和端口层面一致;若显示 INCORRECT,则需打开 RVE 加载 svdb,逐项查看不匹配的网络、悬空器件或端口错位。常见路径问题包括:CALIBRE_TMPDIR 不存在导致启动失败、结果数据库写到了无权限目录、runset 中相对路径在不同工作目录下解析不一致。建议在 runset 中统一使用绝对路径,或在脚本中先 cd 到固定工作目录再调用。

不要随意删除 svdb 目录,它是 RVE 定位问题的唯一数据源;若需重新运行,建议先备份旧结果,避免覆盖后无法对比。

掌握这套文件体系后,LVS 的运行就不再是“黑盒”。环境变量决定工具能否启动,许可证决定能否获得授权,输入文件决定验证对象,输出文件决定你能否读懂结果。把每一层的关系理清,排障时就能快速缩小范围:启动失败查环境变量和许可证,结果异常查规则文件和输入网表,定位困难查日志和结果数据库。