目录
1 UVM结构回顾
uvm_top
uvm_top是uvm_root类的唯一实例,是uvm世界的“一”。它由uvm创建和管理,所在的域是uvm_pakg。
uvm_top是所有test组件的顶层
uvm_top提供一系列方法来控制仿真,例如phase机制、objection防止仿真退出等。
uvm_test
“test”类是用户自定义类结构的顶层,所有的test都应继承于uvm_test,否则uvm_top将不予承认。
test中可以包含:环境配置config_db、工厂覆盖机制、测试序列、验证环境。其中验证环境是test中的不动产,其余可以根据需要进行相应配置。
构建环境的主要组件
主要有三大类共同组成验证环境:uvm_component uvm_env uvm_test
uvm_component:
本身是一个虚类,所有的验证组件均继承于uvm_component,可以提供统一的方式管理层次结构和组件方法。对于组件的构建函数function new(string name,uvm_component parent),它是有两个参数,其中uvm_component parent用来指示实例的上一级句柄,通常用“this”来指代,即例化在当前层次
uvm_env:继承于uvm_component,为验证环境提供一个容器
uvm_test:继承于uvm_component ,对uvm_env进行额外的配置及挂载激励。
2 环境的集成方案
方案介绍
方案一:直接复用底层验证模块环境中的组件,但同时需新建一个scoreboard。
方案二:直接复用底层模块的验证环境,只需将各个子模块的agent配置成相应的active或passive以适应顶层验证环境要求。如有必要可新建一个简单的scorebord.。
方案一验证结构及实例说明:
class mcdf_env1 extends uvm_env;
`uvm_component_utils(mcdf_env1)
reg_master_a