UVM factory是使用封装好的宏,可以直接实现很多复杂的功能。使用uvm_component_utils注册派生自uvm_component,使用uvm_object_utils注册派生自uvm_object。注册之后可以调用create方法实例化,实例化后可以使用UVM提供的很多方法。
class B extends UVM_component;
'uvm_component_utils(B)
endclass
B b;
b = B::type_id::create("b", this);
override
我们需要特定driver时可以如下:
class new_driver extends my_driver
'uvm_component_utils(new_driver)
endclass
class case extends base_test;
function void build_phase(uvm_phase);
....
set_type_override_by_type(my_driver::get_type(), new_driver::get_type());
endfunction
endclass