4. DRC 运行环境搭建:Linux 环境下 Calibre/ICV 的安装配置、环境变量设置、License 管理

DRC 工具的运行环境搭建是自动化验证流程的基石。本章以业界主流工具 Calibre (Siemens EDA) 和 ICV (Synopsys) 为例,详细讲解在 Linux 环境下的安装配置、环境变量设置以及 License 管理方法。正确的环境配置能避免 90% 以上的运行时错误。

环境概览: 典型的 DRC 运行环境由三部分组成:工具二进制文件(安装在指定路径)、运行环境变量(Shell 配置)、License 服务(网络或本地浮动许可)。三者缺一不可。
DRC 运行环境三层架构 DRC 运行环境三层架构 工具二进制文件 Calibre / ICV 安装包 运行环境变量 PATH / CALIBRE_HOME / SNPSLMD_LICENSE_FILE License 服务 lmgrd / snpslmd 守护进程 配置要点: 1. 工具版本必须与 OS 内核(RHEL7/8)及 License 版本兼容。 2. 环境变量配置错误会导致“command not found”或“Unable to get license”。 3. License 管理需确保 MAC 地址、HostID 与 License 文件绑定一致。 4. 建议使用独立用户(如 eda_admin)进行安装,避免权限污染。

4.1 Calibre 安装配置

Calibre 是 Siemens EDA 旗下的物理验证黄金工具。其安装包通常以 .tar 或 .tar.Z 格式分发,包含 aoi_cal、calibre、calibre_gui 等核心可执行文件。

4.1.1 安装步骤

  1. 解压安装包: 将安装包上传至目标路径(如 /tools/mentor/),执行解压。
  2. 设置安装目录结构: 建议保持默认的 calibre-version/ 目录层级。
  3. 验证安装: 运行 calibre -help 检查是否正常启动。
Calibre 安装示例:
# 创建安装目录
mkdir -p /tools/mentor/calibre
cd /tools/mentor/calibre

# 解压安装包(假设安装包为 calibre_2024.1_linux.tar)
tar -xvf /path/to/calibre_2024.1_linux.tar

# 设置执行权限(如有必要)
chmod -R +x /tools/mentor/calibre/calibre-2024.1/

# 验证安装
/tools/mentor/calibre/calibre-2024.1/bin/calibre -help

4.1.2 环境变量设置

Calibre 的环境变量主要涉及 CALIBRE_HOME、PATH 和 MGLS_LICENSE_FILE。推荐在用户的 .bashrc 或 .cshrc 中配置。

环境变量 说明 示例值
CALIBRE_HOME Calibre 安装根目录 /tools/mentor/calibre/calibre-2024.1
PATH 添加 Calibre 可执行文件路径 $CALIBRE_HOME/bin
MGLS_LICENSE_FILE 指向 License 文件或端口@服务器 1717@license-server 或 /path/to/license.dat
CALIBRE_2013_ONLY 兼容旧版本语法(可选) TRUE 或 FALSE
Bash Shell 配置示例(~/.bashrc):
# Calibre 环境变量
export CALIBRE_HOME=/tools/mentor/calibre/calibre-2024.1
export PATH=$CALIBRE_HOME/bin:$PATH
export MGLS_LICENSE_FILE=1717@license-server

# 可选:启用多线程
export CALIBRE_DRC_MT=4

4.2 ICV 安装配置

ICV (IC Validator) 是 Synopsys 的物理验证解决方案,与 IC Compiler 和 Fusion Compiler 深度集成。其安装通过 Synopsys Installer 进行。

4.2.1 安装步骤

  1. 运行 Installer: 使用 ./setup.sh 启动图形化或命令行安装。
  2. 指定安装路径: 如 /tools/synopsys/icv-2024.03。
  3. 选择产品组件: 至少选择 ICV 和 ICV GUI。
  4. 完成安装: 安装后生成 ICV_HOME 目录。
ICV 静默安装示例:
# 使用 Synopsys Installer 进行静默安装
./setup.sh -silent \
  -installer /path/to/installer_v5.4 \
  -platform linux64 \
  -root /tools/synopsys/icv-2024.03 \
  -product ICV \
  -version 2024.03

4.2.2 环境变量设置

ICV 的环境变量核心是 ICV_HOME 和 SNPSLMD_LICENSE_FILE。注意 ICV 使用 snpslmd 作为 License 守护进程。

环境变量 说明 示例值
ICV_HOME ICV 安装根目录 /tools/synopsys/icv-2024.03
PATH 添加 ICV 可执行文件路径 $ICV_HOME/bin
SNPSLMD_LICENSE_FILE 指向 Synopsys License 文件或端口 27000@license-server
LM_LICENSE_FILE 通用 License 变量(可选) 27000@license-server
Bash Shell 配置示例(~/.bashrc):
# ICV 环境变量
export ICV_HOME=/tools/synopsys/icv-2024.03
export PATH=$ICV_HOME/bin:$PATH
export SNPSLMD_LICENSE_FILE=27000@license-server

# 可选:设置临时文件目录
export ICV_TMP=/tmp/icv_$USER

4.3 License 管理

License 管理是 DRC 环境中最容易出错的环节。Calibre 使用 FLEXlm (lmgrd) 管理,ICV 使用 Synopsys Common Licensing (snpslmd)。两者均支持浮动 License。

4.3.1 License 文件结构

一个标准的 License 文件包含 SERVER 行、DAEMON 行和 FEATURE 行。以下是一个 Calibre License 示例:

License 文件示例(calibre_license.dat):
SERVER license-server 001122334455 1717
DAEMON mgcld /tools/mentor/calibre/calibre-2024.1/bin/mgcld
FEATURE Calibre_DRC mgcld 2024.12 31-dec-2024 10 \
  VENDOR_STRING=... HOSTID=001122334455 ...

4.3.2 启动 License 服务

License 服务通常以守护进程方式运行,建议使用 lmgrd 或 snpslmd 启动。

工具 License 守护进程 启动命令 常用端口
Calibre mgcld lmgrd -c license.dat -l /var/log/lmgrd.log 1717
ICV snpslmd lmgrd -c license.dat -l /var/log/snpslmd.log 27000
常见 License 错误排查:
  • “Cannot find license file”:检查 MGLS_LICENSE_FILE 或 SNPSLMD_LICENSE_FILE 是否指向正确路径或端口。
  • “License server does not support this feature”:FEATURE 行过期或版本不匹配,需更新 License 文件。
  • “No such feature exists”:License 文件中缺少对应 FEATURE,或环境变量指向错误的 License 文件。
  • “Unable to checkout license”:所有 License 已被占用,或 HostID 不匹配。
License 管理流程 License 管理流程 用户提交 DRC 任务 工具读取环境变量 连接 License 服务器 Checkout License 成功 Checkout License 失败 释放 License 提示:使用 lmstat -a 命令可实时查看 License 使用状态和可用数量。

4.4 环境验证与常见问题

完成安装和配置后,必须进行环境验证,确保工具可正常调用 License。

4.4.1 验证命令

验证项 命令 预期结果
Calibre 可执行 calibre -help 显示帮助信息,无 License 错误
ICV 可执行 icv -help 显示版本和帮助信息
License 状态 lmstat -a -c 1717@license-server 显示 Feature 列表和已用/可用数量
环境变量 echo $CALIBRE_HOME 输出正确的安装路径
最佳实践: 建议在 .bashrc 中设置 ulimit -s unlimited 和 ulimit -c unlimited,避免 DRC 运行过程中因栈空间不足导致崩溃。同时,将 License 日志重定向到独立文件,便于事后审计。