是有可能覆盖由同样具有+ uvm_set_type_override = TEST1,TEST2经由+ UVM_TESTNAME = TEST1指定UVM测试?

问题描述 投票:3回答:1

我想知道是否有可能通过+ uvm_set_type_override经由+ UVM_TESTNAME重写命令行指定的测试。

I have tried it and this is what i see in prints in log. 
UVM_INFO @ 0: reporter [RNTST] Running test Test1...
UVM_INFO @ 0: reporter [UVM_CMDLINE_PROC] Applying type override from the command line: +uvm_set_type_override=Test1,Test2

所以,在我看来,测试组件被创建,然后再覆盖工厂应用?

我看到uvm_root.svh代码以下几部分

 // if test now defined, create it using common factory
 if (test_name != "") begin
   if(m_children.exists("uvm_test_top")) begin
     uvm_report_fatal("TTINST",
         "An uvm_test_top already exists via a previous call to run_test", UVM_NONE);
     #0; // forces shutdown because $finish is forked
  end
   $cast(uvm_test_top, factory.create_component_by_name(test_name,
         "", "uvm_test_top", null));

它使用的是工厂,但我不知道是否actully覆盖放入。我也看到在下面的代码。

 begin
  if(test_name=="") 
     uvm_report_info("RNTST", "Running test ...", UVM_LOW); 
  else if (test_name == uvm_test_top.get_type_name())
     uvm_report_info("RNTST", {"Running test ",test_name,"..."}, UVM_LOW); 
  else
     uvm_report_info("RNTST", {"Running test ",uvm_test_top.get_type_name()," (via factory override for test \"",test_name,"\")..."}, UVM_LOW);
 end

如果在上面的“其他”部分执行过我想知道?或者在什么样的条件呢执行?

system-verilog uvm
1个回答
0
投票

它似乎有与在UVM-UVM_TESTNAME命令行处理排序的问题所有其他选项之前得到处理分开。

这是可能调用RUN_TEST()在初始块之前设定覆写。

但是,什么是设置测试的名称,然后重写它的同一命令行上的点?为什么不使用重写的测试名称作为测试?

© www.soinside.com 2019 - 2024. All rights reserved.