首页 > 解决方案 > 用于 UVM 报告的使用定义的详细级别(别名)(使用 uvm_info)

问题描述

在 UVM 中,有预定义的详细级别:

可以使用命令行参数控制实际报告,例如 +UVM_VERBOSITY=UVM_LOW

(1) 有没有办法拥有用户定义的详细级别(或至少是别名)?

(2) 是否可以创建具有不同优先级的完全用户定义的详细级别?

这样做的原因是,即使使用 UVM_LOW,一些商业 VIP 仍然相当冗长。如果可能的话,我想对一些测试平台元素有一个“我自己的水平”......

标签: aliasuvmuser-definedverbosity

解决方案


我对 uvm-1.2 版本有一个想法,所以我可以在这种情况下说出来。是的,您可以设置自定义详细程度。您可以创建一个 uvm_report_object 对象并调用 set_report_verbosity_level 来设置您选择的详细程度。例如,一个小测试用例看起来像 -

module top;
     import uvm_pkg::*;
     uvm_report_object rep_obj;
     initial begin;
         rep_obj = new("");
         rep_obj.set_report_verbosity_level(350);
         rep_obj.uvm_report_info("", "", 350);
     end
endmodule

“set_report_verbosity_level”将为特定的 uvm_report_object 设置 uvm_report_handler 类的 verbosity_level 为 350。“set_report_info”现在以 350 的详细程度调用,否则将 UVM_MEDIUM 作为默认详细程度。在此示例中,您不必使用运行命令行添加任何其他命令。

如果您想使用自定义详细程度来打印新的错误消息,在这种情况下,您将必须创建一个派生自 uvm_report_object 的类并为该自定义消息创建您自己的函数定义(例如:- uvm_custom_report_info)。如果你在你的 uvm_report_object 类中看到 uvm_report_info/uvm_report_warning 的定义,它会给你一个想法。

我希望这在一定程度上回答了你的问题。


推荐阅读