在使用 Cadence Virtuoso Schematic Editor 时,你可能会遇到一个弹窗提示 “Overwrite Base Cell CDF termOrder”。这个弹窗通常是由于开启了 updateCDFtermOrder 环境变量导致的。

本文将介绍如何通过环境变量配置来关闭这个弹窗,以及相关的 queryCDFtermOrder 变量的用法。

问题描述

当打开某些 Schematic 时,Virtuoso 会检查 CDF (Component Description Format) 的端口顺序 (termOrder)。如果发现不一致,且 updateCDFtermOrder 被设置为 t,它可能会尝试更新,并弹出确认对话框:

Overwrite Base Cell CDF termOrder

这在批量处理或自动化流程中可能会造成干扰。

解决方案

可以通过设置 .cdsenv.cdsinit 中的环境变量来控制这一行为。

1. 使用 .cdsenv

在你的 .cdsenv 文件中,添加或修改以下设置:

1
2
3
4
5
# 开启自动更新 termOrder (通常是导致弹窗的原因)
auCore.misc updateCDFtermOrder boolean t

# 关闭询问弹窗 (设置为 nil 将不再询问,直接执行 updateCDFtermOrder 的设定)
auCore.misc queryCDFtermOrder boolean nil

如果你希望完全禁用自动更新 termOrder 的行为,可以将 updateCDFtermOrder 设置为 nil

1
auCore.misc updateCDFtermOrder boolean nil

2. 使用 .cdsinit

你也可以在 .cdsinit 文件中使用 SKILL 代码进行设置:

1
2
3
4
5
; 开启自动更新
envSetVal("auCore.misc" "updateCDFtermOrder" 'boolean t)

; 关闭询问弹窗 (静默模式)
envSetVal("auCore.misc" "queryCDFtermOrder" 'boolean nil)

或者完全禁用:

1
envSetVal("auCore.misc" "updateCDFtermOrder" 'boolean nil)

进阶:Change CDF termOrder 弹窗

除了上述情况,有些用户可能会遇到 “Change CDF termOrder” 的弹窗。这通常不是由环境变量直接控制的,而是来自于某些自定义的 SKILL 触发器 (Trigger)。

根据 Cadence Support 的记录,这可能与 CCScheckAndUpdateCDF 这个自定义函数有关。如果你遇到这个特定的弹窗,建议检查你的环境加载的 SKILL 代码,或者咨询 CAD 团队是否加载了类似以下的触发器:

1
schRegPostCheckTrigger('CCScheckAndUpdateCDF)

如果需要移除该触发器,可以使用:

1
schUnregPostCheckTrigger('CCScheckAndUpdateCDF)

总结

  • updateCDFtermOrder: 控制是否自动更新 CDF 端口顺序。
  • queryCDFtermOrder: 控制在更新前是否弹出确认窗口。

通常建议的静默更新配置为:updateCDFtermOrder = tqueryCDFtermOrder = nil


参考来源:Cadence Support Article 11123666