uvm 重要函数
UVM重要函数
1、get_full_name()
获取这个节点的完整层次,这函数在object中就有定义,但是在component类中进行了重载,实现输出从uvm_test_top到当前节点的路径(是通过执行m_set_full_name是保存路径在m_name中)。返回值如:env.agt.drv(这些名字不是类名,是实例名字)
2、get()
这个函数在很多类中都有,比如uvm_object_register #(T,Tname)和uvm_factory都要这个get()函数,这个函数都是通过单例模式返回这个类的唯一对象。
// uvm_factory中的源码
static local uvm_factory m_inst;
function uvm_factory uvm_factory::get();
if(m_inst == null) begin
m_inst = new();
end
return m_inst;
endfunction
3、get_name()
获取当前节点的实例名字,(不是类名)
4、get_type_name()
获取类的名字,以string形式返回,这个string是在注册的时候产生的。
5、get_type()
这个函数是类在注册的时候产生的静态函数,通过这个函数获取的是一个uvm_object_registry或者uvm_component_registry的单例对象,通过这个对象,其实跟调用get()函数功能差不多,只是调用get()函数得到的是uvm_object_wrapper对象,而调用get_type则将uvm_object_wrapper转换成了子类类型,uvm_object_registry #(T,Tname)。