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 并通过 SystemVerilogbind挂载,绝不修改 RTL 源码与 VIP;使用discover_signals.py解析 RTL 获得真实信号路径。
