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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM