Virtuoso EMX 界面定制:自动化你的仿真设置
在 Virtuoso 这种复杂的 EDA 环境中,频繁地在工具界面(Form)上重复输入相同的参数(如 N-port 设置、s-parameter 路径、PZ 方法等)不仅低效,而且容易导致人为错误。
对于 Integrand EMX(现在的 Cadence EMX Planar 3D Simulator),其 Virtuoso 插件提供了非常灵活的接口,允许 CAD 工程师通过 SKILL 脚本来定制界面的初始值填充。
本文将介绍三种主要的定制方法,这些方法通常在 emxconfig.il 或 .cdsinit 中实现。
一、 最灵活的方式:EMX_form_init_proc 钩子函数
这是 EMX 官方推荐的最强大方法。你可以定义一个 SKILL 函数,并将其挂载到 EMX_form_init_proc 变量上。每当 EMX 界面创建时,这个函数就会被自动调用。
1. 代码实现示例
;; 定义一个设置默认值的函数
procedure( MyCustomEMXDefaults(mainForm advancedForm)
;; 1. 设置主界面(Main Form)的默认值
mainForm->Type->value = "N-port"
mainForm->Model->value = "S-parameter"
;; 2. 设置高级设置界面(Advanced Form)的默认值
advancedForm->PZ_method->value = "general"
advancedForm->Add_extention->value = t
printf("--- MyCustomEMXDefaults: Applied custom EMX form values ---\n")
)
;; 在 emxconfig.il 中注册这个钩子
EMX_form_init_proc = 'MyCustomEMXDefaults
2. 优势分析
- 双界面控制:它可以同时访问主界面 (
mainForm) 和高级界面 (advancedForm)。 - 逻辑判定:你可以根据当前的 Library/Cell/View 名称来动态设置不同的默认值。
二、 强制加载预设状态 (Form State)
如果你已经有一个保存好的界面状态(Save State),并希望每次打开 EMX 时都强制加载它,可以使用以下变量:
;; 指定保存的状态名称
EMX_form_state_name = "EMX_form"
;; 指定包含该状态的 View 名称(通常存储在相应 cell 的辅助 view 中)
EMX_form_defaults_view = "EMX_form%_c"
这种方法适合于希望保持“上次成功设置”的项目环境。
三、 使用变量 (Env Variables)
对于一些通用的环境设置,可以使用标准的 envSetVal。EMX 的工具域通常是 "vem" (Virtuoso EMX)。
;; 设置默认的处理工艺角 (Process Corner)
envSetVal("vem" "emxProcessDefaultCorner" 'string "nominal")
;; 设置 EMX 仿真器的路径
envSetVal("vem" "emxBinPath" 'string "/opt/cadence/EMX/bin/emx")
四、 关键配置文件:emxconfig.il
这些配置通常放在名为 emxconfig.il 的文件中。为了生效,你需要确保在 .cdsinit 中加载了它:
;; 在 .cdsinit 中加载 EMX 配置
unless( (fboundp 'EMX_init)
load( strcat(getShellEnvVar("EMX_HOME") "/emxskill/emxconfig.il") )
)
注意:路径可能因 PDK 或安装方式而异,请根据实际情况调整。
五、 总结与参考
通过 EMX_form_init_proc 定制界面是工程实践中的最佳选择。它不仅能提升效率,还能通过 SOP (标准作业程序) 固化仿真参数,降低新手出错的概率。
参考文献
- Cadence Support Article: Using SKILL to set EMX form fields to desired defaults
- Manual: EMX Virtuoso Interface Reference Manual - Post Form Creation Hook
- Major Variables Manual: Virtuoso EMX Environment Variables Summary
[!TIP] 如果你在设置过程中发现字段名(Field Name)不确定,可以在 CIW 窗口中使用
EMX_mainForm或EMX_advancedForm直接查看对象的属性。