禾雨

导航

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

posted on 2019-12-13 09:39  禾雨  阅读(1975)  评论(0编辑  收藏  举报