如何更改组件中对象的uvm详细程度

时间:2017-11-27 08:07:20

标签: system-verilog uvm

在为组件中的对象设置详细程度时遇到了问题。 我想将特定组件(uvm_test_top.env.subenv_a)的详细程度设置为UVM_HIGH,命令行参数如下:

1.+UVM_VERBOSITY=UVM_LOW

2.+uvm_set_verbosity=*subenv_a*,_ALL_,UVM_HIGH,build,0 

对象(object_a)将在组件的构建阶段进行一些配置:subenv_a.

我没有看到object_a中的UVM_HIGH信息被打印,并且将打印组件subenv_a中所有组件的UVM_HIGH信息。

似乎命令“+ uvm_set_verbosity”只对组件生效,但不对组件中的对象生效。

那么我该怎么做才能为组件中的对象打印UVM_HIGH信息。

由于 肯

1 个答案:

答案 0 :(得分:2)

只有来自uvm_component的类才知道他们的父母。通过知识我的意思是uvm_component被设置为将父项与子项链接为可以通过命名层次结构遍历的数据库。你可以:

  • object_a而不是uvm_report_object导出uvm_object。然后从您的组件中执行object_a_h.set_report_handler(get_report_handler);。现在,来自object_a的所有邮件都显示为来自您的组件并共享相同的报告设置。
  • this作为上下文传递给object_a,并使用uvm_info_context()宏代替uvm_info。这与上面的效果相同。
  • object_a中使用唯一的消息ID,并为该ID添加额外的+uvm_set_verbosity开关。
  • object_a而不是uvm_component导出uvm_object,并将您的组件设为其父级。这可能是最简单的解决方案,但如果有很多这样的对象,则会产生最大的开销。