UVM提供對不加參數的run_test的支持:
摘自top_tb.sv:
initial begin
run_test();
end
在這種情況下,UVM會利用UVM_TESTNAME從命令行尋找測試用例的名字,創建它的實例並運行。
run_test()例化的是什么?
實際上UVM真正的樹根是uvm_top。uvm_top是一個全局變量,它是uvm_root的一個實例(而且是唯一一個實例),
uvm_root派生自uvm_component,所以uvm_top本質上是一個uvm_component。
uvm_test_top的parent是uvm_top,而uvm_top的parent是null。
UVM為什么不以uvm_test派生出來的測試用例uvm_test_top作為樹根,而搞了這么一個奇怪的東西作為樹根呢?
所有的component在實例化時將this指針傳遞給parent參數,如my_env在base_test中的實例化:
env=my_env::type_id::create("env",this);
但是,假如不按照上面的寫法,向parent參數傳遞一個null會怎樣呢?
env=my_env::type_id::create("env",null);
如果一個component在實例化時,其parent被設置為null,那么這個component的parent將會被系統設置為系統中唯一的uvm_root的實例uvm_top。
可以用以下方式得到uvm_top的指針:
uvm_root top;
top=uvm_root::get();
