1.my_env如下:
`ifndef MY_ENV__SV
`define MY_ENV__SV
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
`endif
1)line 14:只有使用factory 注册过的类(uvm_component_utils),才能使用这种方式例化;才能使用重载。 new也能例化,但不能重载,不知道为什么,看源代码应该知道。上周有人问我,为什么不用new,现在知道了,嘻嘻!!
2)验证平台的组件都应该使用:type_name::type_id::create的方式例化。
3)type_id不是什么数字之类的id,就是个类型,看源码就知道了,以后再写。
4)create传了两个参数,自己的名字和parent。和 new 是一样的,是