uvm 重要函数

发布时间 2023-09-13 10:56:37作者: 下夕阳

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)。

img