1、定义
在这个容器类中实例化
driver
、
monitor
、
reference model
和
scoreboard等,在UVM中,这个容器类称为uvm_env
;
2、举例:
class my_env extends uvm_env;
my_driver drv;
function new(string name = "my_env", uvm_component parent);
super.new(name, parent);
endfunction
virtual function void build_phase(uvm_phase phase);
super.build_phase(phase);
drv = my_driver::type_id::create("drv", this);
endfunction
`uvm_component_utils(my_env)
endclass
3、说明
所有的
env
应该派生自
uvm_env
,且与
my_driver
一样,容器类在仿真中也是一直存在的,使用
uvm_component_utils宏来实现factory
的注册。
只有使用
factory机制注册过的类才能使用这种方式实例化;只有使 用这种方式实例化的实例,才能使用后文要讲述的
factory机制中最为强大的重载功能。验证平台中的组件在实例化时都应该使用 type_name
::
type_id
::
create
的方式。