在使用 Cadence Quantus QRC 进行寄生参数提取时,即使 Extraction Tab 中已正确设置了 RCCoupled 模式,Filtering Tab 中的 Exclude Self Capacitance 下拉框和 MinC 输入窗口仍会在 Form 初次打开时呈灰色(不可编辑)。本文记录该问题的完整现象、根因,以及通过 SKILL 修复的方法。


问题现象

初始状态(Run Form 刚打开):

  • Extraction Tab → Extraction Type: RC,Cap Coupling Mode: Coupled
  • Filtering Tab → Exclude Self Capacitance灰色,固定显示 Yes
  • Filtering Tab → MinC (绝对值 fF / 相对值 %):灰色,不可编辑

触发操作(绕过灰色的临时方法):

在 Extraction Tab 将 Extraction Type 从 RC 切换为 C Only,再切换回 RC

切换后状态

  • MinC 两个输入框亮起,默认填充 0.01 fF0.1 %
  • Exclude Self Capacitance 变为可编辑下拉框(选项:No / Yes / Extended

生成的命令对比

设置 Exclude Self Capacitance = No 时,View Command 新增:

1
2
3
filter_coupling_cap \
     -coupling_cap_threshold_absolute 0.01 \
     -coupling_cap_threshold_relative 0.001

设置 Exclude Self Capacitance = Yes 时,View Command 新增:

1
2
3
4
5
filter_cap \
     -exclude_self_cap true
filter_coupling_cap \
     -coupling_cap_threshold_absolute 0.01 \
     -coupling_cap_threshold_relative 0.001

[!NOTE] MinC 的相对值 0.1% 对应命令参数 -coupling_cap_threshold_relative 0.001(即 0.1% = 0.001 ratio)。


各选项含义

Exclude Self Capacitance

控制输出网表(DSPF/SPEF)中是否包含自电容(net-to-ground 电容):

设置值 行为 生成命令
No 不排除自电容。这是默认设置 filter_cap
Yes 从提取输出中排除自电容(仅在耦合寄生电容提取时生效) filter_cap -exclude_self_cap true
Extended 移除两个 LVS net 之间跨越电阻器件的耦合电容。若同时启用 Ext. Self Cap Recursive,则递归处理通过一串电阻连接的所有 net filter_cap -exclude_self_cap extended

[!NOTE] Extended 的关键区别Yes 排除的是自电容(寄生电容提取意义上的 net-to-ground 分量);Extended 进一步将跨电阻器连接的两个 LVS net 之间的耦合电容也视为需要移除的对象。这在含大量串联电阻的 RC 网络(如 ESD 保护结构、金属电阻)中可显著缩减网表规模,但也会丢失这些节点间的耦合信息,需要权衡精度。

MinC(Minimum Capacitance Threshold)

设置耦合电容的过滤下限,低于阈值的耦合电容将被解耦并并入自电容,从而精简网表:

参数 含义 命令参数
绝对值(fF) 绝对电容量阈值 -coupling_cap_threshold_absolute
相对值(%) 相对于自电容的比例阈值(0.1%0.001 -coupling_cap_threshold_relative

两个阈值取 OR 关系:满足任一条件的耦合电容均被过滤。


深入分析:为什么文档说 Boolean,实际却是三选项?

观察到的真实行为

用户实测三种选项生成的命令如下,这是最权威的事实:

GUI 选项 生成的命令 含义
No (无 filter_cap 行) 保留全部电容,不过滤
Yes filter_cap \ -exclude_self_cap true 排除同 net 内分布式子节点间的自电容
Extended filter_cap \ -exclude_self_cap extended Yes 基础上,额外移除跨电阻器件的耦合电容

官方文档记录的类型

根据 Quantus Extraction Users Manual(21.x / 22.x / 25.x 各版本一致):

Text Prompts Symbol Names Type
Exclude Self Capacitance vuiRCXexcludeSelfCaps Boolean

矛盾的根本原因:文档描述的是”概念类型”,不是 SKILL 控件类型

Cadence 在该字段类型表中的 “Boolean” 描述,指的是底层 CCL 命令参数的逻辑类型(开/关的布尔概念),而不是 SKILL HI Form 控件的实际实现类型。

实际运行时,该字段在 GUI 中是一个 Cyclic(下拉)控件,通过 .choices 属性支持三个离散字符串值:"No" / "Yes" / "Extended"

这套命名约定在 Cadence 文档中普遍存在:只要某功能的核心语义是”开/关”,文档就把它归为 Boolean,即使其 GUI 实现扩展了第三个非 false/true 的值。

SKILL 回调中的正确写法

基于以上分析,在 vuiUserDefinedRCXFormSetupCB 回调中,该字段必须按 Cyclic 控件处理

;; ❌ 错误:对字符串型 cyclic 字段赋布尔值
page3->vuiRCXexcludeSelfCaps->value = t

;; ❌ 错误:注释掉 choices 后,cyclic 控件失去选项集合,变灰
;;page3->vuiRCXexcludeSelfCaps->choices = list("No" "Yes" "Extended")
page3->vuiRCXexcludeSelfCaps->value = "Yes"   ; 同样有问题

;; ✅ 正确:先设置 choices 激活控件,再赋字符串值
page3->vuiRCXexcludeSelfCaps->choices = list("No" "Yes" "Extended")
page3->vuiRCXexcludeSelfCaps->value = "Yes"      ; 或 "No" / "Extended"

[!IMPORTANT] 灰色的真正原因choices 被注释掉后,Cyclic 控件没有合法选项集合,GUI 将其渲染为灰色(disabled)。.value = "Yes" 赋的是字符串,但若 .choices 未初始化,该赋值无法激活控件。因此正确修复是恢复 .choices 赋值,而非改为布尔 t

这也解释了为什么切换 Extraction Type 能临时解锁:切换触发 GUI 内部的 form-refresh,Quantus 自身重新为 vuiRCXexcludeSelfCaps 赋了 choices,使控件变为可交互状态。

结论

层面 类型 正确赋值
官方文档描述 Boolean(概念层) 描述 on/off 语义
GUI 控件实现 Cyclic(三选项) "No" / "Yes" / "Extended"
SKILL 回调写法 按 Cyclic 处理 choices = list(...)value = "Yes"

修复方法

quantus_init.ilvuiUserDefinedRCXFormSetupCB 回调中,保留并且先执行 .choices 赋值

;; ✅ 正确修复:choices 必须在 value 之前设置
page3->vuiRCXexcludeSelfCaps->choices = list("No" "Yes" "Extended")
page3->vuiRCXexcludeSelfCaps->value = "Yes"      ; 排除自电容

;; 若需设置 Extended(跨电阻器模式):
;; page3->vuiRCXexcludeSelfCaps->value = "Extended"

同理,MinC 字段也应确认其 choices / editable 初始化正确。


参考资料

以下链接均需 Cadence 账号登录访问。

文档 链接 说明
Quantus Users Manual 25.10 — Using SKILL to Preset 链接 vuiRCXexcludeSelfCaps 字段类型(Boolean)的官方说明及 Sample Program
Quantus Users Manual 22.10 — Using SKILL to Preset 链接 22 版本同样记录为 Boolean,跨版本一致
Quantus Users Manual — filter_cap 命令说明 链接 filter_cap -exclude_self_cap true/extended 参数定义
Article: Quantus QRC UI 003 — Working with the Filtering Tab a1O0V000006AleeUAC Filtering Tab 各选项行为与 Extraction Tab 依赖关系说明
Article: PVS-Quantus and QCI setup in vuiUserDefinedRCXFormSetupCB a1Od0000003rWvSEAU vuiUserDefinedRCXFormSetupCB 回调的官方使用指南,含字段名示例
Article: How to determine field name for presetting Quantus run form a1OPP000000ALzF2AW 如何查找 Run Form 各字段的 SKILL Symbol Name