name: uvm-methodology description: 精通用于FPGA验证的通用验证方法学(IEEE 1800.2) allowed-tools:
- Read
- Write
- Edit
- Glob
- Grep
- Bash
UVM 方法学技能
概述
遵循 IEEE 1800.2 标准进行全面的 FPGA 验证的通用验证方法学开发专家技能。
能力
- 生成 UVM 代理架构(驱动器、监视器、序列器)
- 创建 UVM 环境和记分板
- 实现 uvm_sequence 和虚拟序列
- 配置 UVM 工厂和 config_db
- 使用覆盖组实现功能覆盖率
- 设计 UVM 寄存器模型(RAL)
- 正确应用 UVM 阶段和异议机制
- 有效调试 UVM 测试平台
目标流程
- uvm-testbench.js
- constrained-random-verification.js
- testbench-development.js
使用指南
代理架构
- 驱动器:将序列项转换为引脚级活动
- 监视器:观察 DUT 接口并创建事务
- 序列器:将序列项路由到驱动器
- 代理:包含驱动器、监视器、序列器;可配置为主动/被动模式
环境结构
- 顶层环境包含代理和记分板
- 记分板执行参考模型比较
- 配置对象分发配置信息
- 虚拟序列器协调多个代理
序列开发
- 从 uvm_sequence#(item_type) 扩展
- 使用
start_item()/finish_item()范式 - 为复杂场景创建分层序列
- 使用虚拟序列进行多代理协调
覆盖率策略
- 在监视器中嵌入覆盖组
- 在事务完成时采样
- 交叉功能覆盖点
- 跟踪覆盖率收敛进度
最佳实践
- 使用工厂进行所有组件创建
- 通过 config_db 配置,而非构造函数
- 正确提出/撤销异议
- 一致使用 UVM 报告宏
依赖项
- UVM 1.2 或 UVM IEEE 1800.2 库
- SystemVerilog 专业知识
- 验证方法学知识