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