在为组件中的对象设置详细程度时遇到了问题。 我想将特定组件(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信息。
由于 肯
答案 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
,并将您的组件设为其父级。这可能是最简单的解决方案,但如果有很多这样的对象,则会产生最大的开销。