Skip to content

3. UVM 验证环境搭建与断言构建工作流

本工作流包含 UVM 验证环境脚手架创建、信号接口连接、配置数据库注入、业务组件完善实现以及 SVA 常开断言检查层的无侵入生成与绑定。


架构流程与组件模型

在 UVM 验证环境中,基础框架构建与断言检查层的生成步骤关系如下:


Skill 详解

1. uvm-env-create:UVM 框架创建与冒烟测试

  • 功能说明:为指定 IP 生成 UVM 环境骨架目录结构(tb/, env/, agents/),并自动运行冒烟测试(Smoke Test)验证框架能够正常编译与启动。该技能不涉及 DUT 具体功能验证。
  • 输入/排除:输入 IP 名称与接口说明。

2. uvm-env-config-db:配置对象与虚接口注入

  • 功能说明:编写或修改 *_config_db.sv 文件。将仿真顶层 tb_top 中实例化的虚接口(Virtual Interface)和配置对象通过 uvm_config_db::set 注入到对应的 UVM 验证环境组件中。支持 AXI/AHB/APB/TileLink/SPI 协议,支持 IP 级与 Chip 级配置模式。

3. uvm-env-inf-connect:接口连接文件生成

  • 功能说明:根据 DUT RTL 端口列表和总线协议类型,自动生成 {ip}_inf_connect.sv 文件,实现 VIP/UVC 与 DUT 物理信号的连接逻辑。
  • 支持模式与协议:支持 IP 级(Active 激励模式)与 Chip 级(Passive 监测模式),涵盖 AXI/AHB/APB/TileLink/SPI/I2C/UART 及 Local 接口。

4. uvm-env-impl:UVM 验证环境完善实现

  • 功能说明:在 uvm-env-create 生成的骨架基础上,结合 DUT RTL、Design Spec 和已有 VIP/UVC,填充并实现接口信号、transaction 字段、driver 驱动逻辑、monitor 采样逻辑、scoreboard 比对模型与 coverage 覆盖率;修补 env/tbench/top_env 连接层使环境可编译可运行,随后自动调用 uvm-env-sva 生成 SVA 断言层。

5. uvm-env-sva:SVA 断言检查层生成与 Bind 挂载

  • 功能说明:分析 testplan.md 中的 SVA 检查意图,结合 RTL 源文件发现真实信号(输出 signal_manifest.json),生成常开的 SVA checker 模块(sim/sva/*.sv)与非侵入式的 sva_bind.sv,并将 include 自动追加至 tbench.v
  • 边界约束:仅在 sim/sva/ 下新建 SVA 并通过 SystemVerilog bind 挂载,绝不修改 RTL 源码与 VIP;使用 discover_signals.py 解析 RTL 获得真实信号路径。

基于 MIT 许可发布