run_test()


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();


免責聲明!

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



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