UPF基本语法及其在 native low power verification中的典型流程
摘要:本文首先简要介绍 UPF(Unified Power Format),然后解释其在 native low power verification(原生低功耗验证)中的典型流程。最后,我将使用50个具体例子来完整展示 UPF 的关键语法。这些例子基于 IEEE 1801 标准(UPF 3.0 或更早版本),涵盖了 UPF 的核心命令、选项和使用场景。每个例子包括 UPF 代码片段、简要解释,以及在低功耗设计中的应用点。
请注意:UPF 是一种用于描述芯片低功耗意图的格式,常用于 RTL(Register-Transfer Level)设计验证中。我会尽量覆盖 UPF 的主要语法元素,包括电源域创建、供电网络、隔离、保持、水平转换、电源状态表(PST)等。如果您需要更多细节或特定工具(如 Synopsys VCS 或 Cadence Xcelium)的集成,请进一步说明。
一、UPF 简介
UPF(Unified Power Format)是 IEEE 标准,用于在芯片设计中指定低功耗结构,如电源域(Power Domain)、供电网络(Supply Net)、隔离单元(Isolation Cells)、保持寄存器(Retention Registers)和水平转换器(Level Shifters)。它允许设计师描述电源管理策略,并在验证阶段检查功耗相关问题,如电源切换、数据丢失或电压不匹配。
二、Native Low Power Verification 中的流程
Native low power verification 指的是在模拟器(如 VCS、Questa 或 Xcelium)中直接使用 UPF 文件进行低功耗验证,而不依赖于额外的电源感知工具或后端合成。这是一种“原生”流程,强调在 RTL 级别验证电源意图的正确性。典型流程如下(以 VCS 为例,其他工具类似):
-
设计准备:
- 编写 RTL 代码(Verilog/VHDL/SystemVerilog)。
- 创建 UPF 文件(.upf),描述电源域、供电网络、隔离/保持/水平转换策略,以及电源状态表(PST)。
-
UPF 加载和编译:
- 在模拟器中加载 UPF:例如,使用命令如
vcs -upf my_design.upf -f filelist.f
来编译设计。 - UPF 被解析为电源意图模型,模拟器会插入虚拟的电源控制逻辑(如电源开关、隔离信号)。
- 在模拟器中加载 UPF:例如,使用命令如
-
模拟设置:
- 定义测试bench,包括电源控制序列(e.g., 通过 UVM 测试序列驱动电源切换)。
- 配置模拟器选项:如启用低功耗检查(
-lowpower
或类似标志),并指定 UPF 版本(e.g., UPF 2.1 或 3.0)。
-
运行模拟和验证:
- 执行模拟:模拟器会根据 UPF 模拟电源域的开关、电压变化,并检查违规(如未隔离的信号穿越电源域、数据丢失)。
- 使用波形查看器(e.g., Verdi)检查电源状态、供电网络电压、隔离启用等。
- 运行检查:模拟器内置 checker 会报告问题,如电源域泄漏、保持失败或水平转换错误。
-
调试和迭代:
- 分析日志/报告:检查 UPF 命令的执行结果(e.g., 电源状态转换是否符合 PST)。
- 如果发现问题,修改 UPF 或 RTL,并重新运行。
- 覆盖率收集:验证电源状态覆盖率(e.g., 所有 PST 状态是否被触发)。
-
优势与注意事项:
- 优势:快速迭代,早发现低功耗 bug;无需门级网表。
- 注意:模拟性能可能受影响(由于虚拟电源建模);确保 UPF 与 RTL 一致性。
此流程确保低功耗设计在早期验证阶段就符合意图,减少后期物理实现中的问题。
三、UPF 关键语法的50个例子
以下是50个 UPF 语法例子,按类别组织(电源域、供电网络、PST、隔离、保持、水平转换等)。每个例子包括:
- UPF 代码片段:完整的、可复制的语法。
- 解释:命令的作用和关键选项。
- 在 native low power verification 中的应用:如何在上述流程中使用。
&nb