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 (标准作业程序) 固化仿真参数,降低新手出错的概率。

参考文献


[!TIP] 如果你在设置过程中发现字段名(Field Name)不确定,可以在 CIW 窗口中使用 EMX_mainFormEMX_advancedForm 直接查看对象的属性。