本文汇总了相关工具中常用环境变量的作用与用法,适合 EDA 工具管理员和进阶用户参考。所有资料均参考自 Cadence 官方支持文档。


一、.cdsenv 加载控制

CDS_LOAD_ENV

控制 Virtuoso 启动时 .cdsenv 文件的加载位置。

默认情况下,Virtuoso 按照 CSF(Cadence Setup File)机制搜索 .cdsenv,搜索顺序依次为:当前目录、$HOME、工具安装目录(详见 setup.loc)。

效果
CWD 仅从当前工作目录加载 .cdsenv,不再搜索 $HOME
(不设置) 按 CSF 默认顺序搜索
1
setenv CDS_LOAD_ENV CWD

适用场景:多项目并行工作时,希望每个项目目录使用独立的 .cdsenv 配置,而不受 $HOME 下全局设置影响。

参考:Cadence Support Article 11457554: “How to load Cadence setup files from current directory instead of $HOME”


二、许可证相关变量

CDS_LIC_FILE

指定 Cadence FLEXnet 许可证服务器地址,是最重要的许可证环境变量之一。

1
2
3
setenv CDS_LIC_FILE 5280@<server_name>
# 多服务器用冒号分隔(Linux/Unix)
setenv CDS_LIC_FILE 5280@server1:5280@server2
  • 端口号通常为 5280(Cadence 默认),也可使用其他端口
  • 如果不设置此变量,工具会尝试从其他途径(如 cdslmd.dat)找到许可证服务器

CDS_LIC_TIMEOUT

设置工具等待许可证的超时时间(单位:秒)。默认值为 10 秒

1
setenv CDS_LIC_TIMEOUT 180

适用场景:许可证服务器负载高或网络延迟大时,工具默认 10 秒未获得许可证就会报错(error -15: Cannot connect to license server system)。增大此值可避免该问题。

参考:Cadence Support Article a1Od0000000sbWnEAI: “How to configure and debug license issues”


三、32位/64位模式控制

CDS_AUTO_64BIT

控制 Cadence 工具是否以 64 位模式启动。默认不设置时,工具以 32 位模式运行(通过 wrapper 脚本调用 /bin/64bit/ 下的可执行文件)。

效果
ALL 所有工具均使用 64 位
NONE 所有工具均使用 32 位
"tool1 tool2"INCLUDE:"list" 仅指定工具使用 64 位
EXCLUDE:"list" 除列出工具外,其余均使用 64 位

常见示例:

1
2
3
4
5
6
7
8
9
10
11
# 全部 64 位
setenv CDS_AUTO_64BIT ALL

# Spectre 用 64 位,si(Open Simulation System)用 32 位
setenv CDS_AUTO_64BIT EXCLUDE:"si"

# 只让 UltraSim 用 64 位
setenv CDS_AUTO_64BIT ultrasim

# Xcelium 用 64 位
setenv CDS_AUTO_64BIT INCLUDE:XCELIUM

参考:Cadence Spectre Circuit Simulator User Guide(各版本);Cadence Virtuoso UltraSim Simulator User Guide(IC25.1);Cadence Virtuoso ADE Explorer User Guide(IC25.1)


四、网表模式控制

CDS_Netlisting_Mode

控制 Cadence 工具的网表输出模式(Netlisting Mode)。默认值为 Digital(未设置时)

效果
Analog 启用模拟网表模式:属性查找包含 CDF 数据;AMS、Spectre、APS、UltraSim 仿真时自动设置此模式
Digital(默认) 启用数字网表模式:不查找 CDF 数据,网表性能更快
1
setenv CDS_Netlisting_Mode Analog

注意事项:

  • CDS_Netlisting_Mode 设置为 Analog 时,Symbol 标签(Label)的属性查找逻辑也会不同
  • Virtuoso Custom Digital Placer 等工具中,可切换到 Digital 以获得更快的网表速度
  • AMS 仿真工具在执行 runset 前会自动将此变量设为 Analog

参考:Cadence Virtuoso Custom Digital Placer User Guide(IC25.1);Cadence Virtuoso Schematic Editor User Guide(IC25.1);Cadence STEP What’s New in STEP 01.05


五、Verilog-A / AHDL 编译

CDS_AHDL_REUSE_LIB

控制 Verilog-A 模型编译时是否复用(reuse)已有的共享库文件(shared library)。

效果
YES(compact model 默认) 自动搜索已有共享库并复用,节省重复编译时间
NO(normal model 默认) 不复用,每次重新编译
1
setenv CDS_AHDL_REUSE_LIB NO

适用场景:

  • 并行仿真(+aps++aps+xps+ms 模式)时,多个进程同时使用共享库可能引发冲突,此时建议设为 NO
  • Liberate AMS 多任务并行运行时,官方推荐设为 NO

参考:Cadence Verilog-A Language Reference(25.1);Cadence Spectre Circuit Simulator Reference(25.1);Cadence Liberate AMS Mixed-Signal Characterization Reference Manual(LIBERATE 23.1)


六、版图 Fluid Guard Ring(FGR)缓存

FGR_CACHE_TIMESTAMP_CHECK

与 Virtuoso Layout 中 Fluid Guard Ring(FGR) 的缓存机制相关。

FGR 实例在首次评估(evaluate)后会将结果缓存为 sub-master(包含 index.pclcache.pcl)。当 sub-master 与 super-master 之间出现时间戳不一致(timestamp mismatch)时,Virtuoso 的默认行为是直接使用旧缓存,不重新评估。

设置此变量后:

1
setenv FGR_CACHE_TIMESTAMP_CHECK 1

Virtuoso 将忽略已保存的 sub-master,在时间戳不匹配时用当前版本的 Virtuoso 重新评估 FGR 实例,确保缓存与最新版本一致。

另一相关变量:

FGR_REEVAL_ON_CORRUPT_CACHE:当 index.pcl 存在但 cache.pcl 读取失败(损坏)时,设为 true 可触发自动重新评估,而不是报错中止。

参考:Cadence Support Article a1O3w000009bdqUEAQ(FGR 缓存机制相关)


七、Voltus-Fi 功耗完整性

CDS_MMSIM_VOLTUSFI_ROOT

指定 Voltus-Fi Custom Power Integrity Solution 的安装路径,用于在 Virtuoso(IC)环境与 Spectre/MMSIM 环境中同步 Voltus-Fi 版本。

1
2
3
setenv CDS_MMSIM_VOLTUSFI_ROOT /path/to/installation
# 最常见的用法:与 CDSHOME 保持一致
setenv CDS_MMSIM_VOLTUSFI_ROOT $CDSHOME

不设置此变量时,Voltus-XFi 会从 Spectre 安装目录调用 emirreport,而非 Virtuoso 安装目录,当两者的 OA 版本不一致时会触发以下错误:

1
2
ERROR: Requested minor API version '623' which is supported by OpenAccess build '22.60.065'
is newer than the minor API version '619' of the shared library...

以及 EMIR-1901 错误。

参考:Cadence Support Article 20504400: “Voltus-XFi errors out with API version mismatch”;Cadence Voltus-Fi Custom Power Integrity Solution XL User Guide(IC23.1)


八、工具安装根目录

CDSHOME

指向 Cadence 工具安装根目录,是许多工具脚本和配置文件的基础路径变量。

1
setenv CDSHOME /path/to/cadence/IC6.1.8/lnx86

典型用途:

  • $CDSHOME/tools/bin/ — 工具可执行文件目录
  • $CDSHOME/share/license/configure — 许可证配置脚本
  • CDS_MMSIM_VOLTUSFI_ROOT 联用:setenv CDS_MMSIM_VOLTUSFI_ROOT $CDSHOME

参考:Cadence Support Article a1Od0000000sbWnEAI: “How to configure and debug license issues”


九、OpenAccess 插件路径

OA_PLUGIN_PATH

OpenAccess(OA)标准环境变量,指定 OA 插件(Plugin)的搜索路径。不同 Cadence 工具可能依赖不同的 OA 插件来访问设计数据库(如 lib.defs 插件、Express Pcell 插件等),OA 运行时会在此变量指定的目录下查找所需插件。

1
2
# EDI/Innovus 工具使用 lib.defs 插件时的示例
setenv OA_PLUGIN_PATH <install_hierarchy_root>/share/oa/data/altplugins

典型使用场景:

  • 在 EDI(Encounter Digital Implementation)或 Modus 工具中创建 OA22 数据库,需要 lib.defs 插件
  • 在 Unity 工具导入 OA 设计时,配置 Express Pcell 插件以生成 Pcell sub-master
  • 在 OrCAD/Allegro 安装配置阶段设置工具所需的 OA 插件路径

参考:Cadence Modus: Guide: Diagnostics — Creating an OA22 Database(25.12);Cadence Support Article 20518114: “Unity Open Access Express Pcell Plug-In”;Cadence OrCAD and Allegro 17.4-2019 Installation Guide for Windows


十、Design Management 版本管理集成

CDS_PROMPT_CKIN / CDS_PROMPT_CKOUT

当 Virtuoso DFII 环境与设计管理软件(Design Management Software,如 SOS、Synchronicity 等)集成后,打开 cellview 时会弹出 checkout 确认框,关闭时会弹出 checkin 确认框。这两个变量控制是否弹出该确认对话框。

变量 含义
CDS_PROMPT_CKIN 控制 checkin(存回)时是否弹出提示框
CDS_PROMPT_CKOUT 控制 checkout(取出)时是否弹出提示框
效果
none 不弹出提示框,静默执行
(其他值) 弹出提示框,由用户确认

CDS_AUTO_CKIN / CDS_AUTO_CKOUT

控制 checkin/checkout 的自动执行行为。

变量 含义
CDS_AUTO_CKIN 控制关闭 cellview 时是否自动 checkin
CDS_AUTO_CKOUT 控制打开 cellview 时是否自动 checkout
效果
all 对所有 cellview 自动执行,无需用户逐个确认

实现”永不询问、自动执行”的完整设置(在 .cshrc 中配置):

1
2
3
4
setenv CDS_PROMPT_CKIN  none
setenv CDS_PROMPT_CKOUT none
setenv CDS_AUTO_CKIN    all
setenv CDS_AUTO_CKOUT   all

注意:这些变量必须在 Shell 层面设置(.cshrc 等),不能通过 .cdsinit 中的 setShellEnvVar() 设置,否则不会生效。等效的 SKILL 方式是在 .cdsinit 中调用 ddAutoCtlSetVars(0 0 3 3)

参考:Cadence Support Article a1Od0000000nY8VEAU: “How to set the default auto checkin and checkout preference to be ‘Never Ask Me’?”;Cadence Library Manager User Guide(Changing Auto Check-In/Check-Out Environment Variable Settings)


参考资料

  • Cadence Support Article 11457554: “How to load Cadence setup files from current directory instead of $HOME”
  • Cadence Support Article a1Od0000000sbWnEAI: “How to configure and debug license issues”
  • Cadence Support Article 20504400: “Voltus-XFi errors out with API version mismatch and does not generate EMIR results”
  • Cadence Support Article a1O3w000009bdqUEAQ(FGR 缓存时间戳相关)
  • Cadence Support Article a1Od0000000nY8VEAU: “How to set the default auto checkin and checkout preference to be ‘Never Ask Me’?”
  • Cadence Spectre Circuit Simulator Reference(25.1): Verilog-A / CDS_AHDL_REUSE_LIB 章节
  • Cadence Virtuoso Custom Digital Placer User Guide(IC25.1): Setting the Netlisting Mode
  • Cadence Virtuoso UltraSim Simulator User Guide(IC25.1): 64-bit 章节
  • Cadence Voltus-Fi Custom Power Integrity Solution XL User Guide(IC23.1): CDS_MMSIM_VOLTUSFI_ROOT 章节
  • Cadence Modus: Guide: Diagnostics(25.12): Creating an OA22 Database / OA_PLUGIN_PATH
  • Cadence Support Article 20518114: “Unity Open Access Express Pcell Plug-In”