如何在 Synopsys VCS 仿真脚本中处理多个 UPF 文件的加载
摘要:我将详细解释在 Synopsys VCS(VCS)模拟脚本中如何处理多个 UPF 文件的加载,包括原理、命令选项、示例脚本以及注意事项。这基于 VCS 的 native low power verification 支持(IEEE 1801 UPF 标准)。如果您使用的是特定 VCS 版本(如 VCS 2023 或更早),请验证兼容性;一般来说,以下方法适用于大多数版本。
一、VCS 中加载多个 UPF 文件的原理
- VCS 支持:VCS 允许在编译阶段加载多个 UPF 文件。这些文件可以描述不同的电源意图层级(如一个 UPF 用于顶层域,另一个用于子模块策略)。VCS 会按加载顺序解析它们:
- 第一个 UPF 文件作为基础。
- 后续 UPF 文件可以覆盖或扩展前面的定义(例如,更新电源域或添加隔离策略)。
- 如果有冲突(e.g., 同名电源域的不同定义),VCS 会报告错误或警告,具体取决于
-upf_mode
设置(e.g., strict 或 lenient)。
- 加载方式:
- 直接使用多个
-upf
选项:在 vcs 命令行中重复使用-upf <file>
,按顺序加载。 - 通过主 UPF 文件加载子文件:在主 UPF 文件中使用
load_upf <sub_upf_file>
命令加载其他 UPF 文件。这允许分层组织(e.g., 主文件加载模块特定的 UPF)。 - 文件列表(.f 文件)
- 直接使用多个