如何在一定条件后更改UVM组件的冗长

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

我想满足一定条件后更改模拟的UVM冗长。不同的部件的详细程度选项通过命令行+ uvm_set_verbosity。一旦条件满足,则仿真应该用命令行+ uvm_set_verbosity选项来运行。至今,然后模拟低冗长所有组件的运行。

通过UVM库中的代码看,它似乎有一个函数调用m_set_cl_msg_args()。这个函数调用显示消耗的命令行参数,像其他三个功能:+ uvm_set_verbosity,+ uvm_set_action,+ uvm_set_severity。

所以我所做的是得到从uvm_coreservice单的uvm_root实例,然后使用get_children()函数uvm_component类递归得到所有的模拟uvm_components的队列。然后调用m_set_cl_msg_args上的所有组件()函数。

我的代码如下所示:

    begin
     uvm_root r;
     uvm_coreservice_t cs_t;
     uvm_component array_uvm[$];
     cs_t = uvm_coreservice_t::get();
     r = cs_t.get_root();

     r.get_children(array_uvm);
     foreach(array_uvm[i])
       array_uvm[i].m_set_cl_msg_args();
    end

尽管这段代码编译正确,但是,这并没有改变冗长。任何想法 ?而且我能够打印所有组件array_uvm。所以我猜测array_uvm [I] .m_set_cl_msg_args();这是一个打错的电话。

任何人有任何其他建议在运行时改变冗长。

system-verilog uvm
1个回答
1
投票

你不应该在未在语言参考手册中介绍的UVM使用的功能。他们可以(做)在任何版本的变化。我猜+ uvm_set_verbosity默认情况下只在工作时间0。

已经有一个function做你想要什么

umm_top.set_report_verbosity_level_hier()

我建议使用+UVM_VERBOSITY=UVM_LOW开始测试,然后定义自己的开关激活条件设置。

如果你想要一个特定的组件,使用component_h.set_report_verbosity_level()(添加_hier设置其所有的孩子)

您可以使用UVM的命令行处理器get_arg_values()方法来指定要设置成分(S)的名称,然后用umm_top.find()来得到一个处理组件。

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