关于本站 & Virtuoso .cdsenv 调用顺序

本知识库整理了 Cadence Virtuoso 平台下所有 .cdsenv 环境变量的中文释义、功能说明、使用场景与注意事项,共计 23,756 条参数,覆盖常见工具 上百 款。

📘 什么是 .cdsenv?

.cdsenv 是 Cadence Virtuoso 平台的环境变量定义文件。 Virtuoso 启动时会按固定优先级顺序依次读取这些文件,并用后读取的值覆盖先读取的值, 最终形成当前会话的完整环境变量集。

每个 .cdsenv 文件以 工具.分区.变量名 类型 "默认值" 的格式逐行定义, 支持 boolean / integer / float / string / cyclic 等多种类型, 是控制 Virtuoso 全家桶(Layout、Schematic、ADE、LVS、DRC、PVS、PVE …)行为的最基础入口。

⚙️ .cdsenv 加载顺序(优先级由低到高)

Virtuoso 按以下顺序依次查找并加载 .cdsenv,后续文件中同名变量会覆盖前面的定义:

  1. 第 1 层

    🏢 站点级(安装目录)

    路径:<CDS_INST_DIR>/tools/dfII/.cdsenv 及各子工具自带的 .cdsenv。

    例如:/tools/dfII/.cdsenv、/tools/lvs/.cdsenv、/tools/pvs/.cdsenv 等,是 Cadence 原厂提供的默认值。

  2. 第 2 层

    🏭 项目级 / 工艺 PDK 级

    路径:<PROJECT_ROOT>/.cdsenv 或 PDK 安装目录中的 .cdsenv。

    由项目组、Foundry 或 CAD 团队维护,用来配置工艺相关的默认参数(例如 LVS 对比选项、DRC 最大线宽、器件默认版图视图等)。通常由 cds.lib 所在路径向上追溯查找。

  3. 第 3 层

    👤 用户主目录级

    路径:~/.cdsenv(即 $HOME/.cdsenv)。

    每个用户可以在自己的 Home 目录下放置个性化配置,这里的设置会覆盖前面项目 / PDK 的同名变量,适合个人偏好(例如默认字体、UI 颜色、常用默认视图列表等)。

  4. 第 4 层

    📁 当前工作目录级(启动目录)

    路径:./.cdsenv(执行 virtuoso 命令时所在的目录)。

    启动 Virtuoso 所在目录下的 .cdsenv 优先级最高,覆盖所有前面的设置。常用来为每个任务/流片批次单独做差异化配置。

  5. 第 5 层

    🛠️ 运行时动态覆盖

    在 SKILL 或 CI 脚本中使用 envSetVal('工具 分区 变量名 '类型 值) 直接修改内存中的值, 或在 CIW 中执行 SKILL 命令;重新加载 .cdsenv / 重启 Virtuoso 才会生效的除外。

    运行时赋值优先级最高,但仅对当前会话生效,不会写回到磁盘文件。

💡 调试小贴士: 不知道某个变量最终为何值?可以在 Virtuoso CIW 中执行 envGetVal('工具 分区 变量名) 查看当前会话中的真实值, 或使用本站的 搜索功能 直接按完整标识查询该变量的含义与默认值。

📊 调用优先级一览

优先级 5 (最高)
运行时 envSetVal / SKILL 脚本
↓ 覆盖
优先级 4
当前工作目录 ./.cdsenv
↓ 覆盖
优先级 3
用户主目录 ~/.cdsenv
↓ 覆盖
优先级 2
项目级 / PDK 级 .cdsenv
↓ 覆盖
优先级 1 (最低)
安装目录 站点级 .cdsenv (Cadence 原厂)

💬 关注微信公众号:EDA运维

公众号 ID: pcyuepu
  • 芯片行业 IT & EDA 软件运维
  • Linux 服务器管理
  • LSF / SOS 作业调度系统
  • Synopsys 工具
  • Cadence 工具
  • Mentor / Siemens EDA 工具
  • 学习 · 交流 · 经验分享

欢迎关注阅读「EDA运维」公众号,一起学习芯片设计环境与 EDA 工具。

微信扫码关注 公众号 pcyuepu · EDA运维

↑ 长按 / 扫码关注公众号 ↑