在使用 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 = t 且 queryCDFtermOrder = nil。
参考来源:Cadence Support Article 11123666