alias - 用于 UVM 报告的使用定义的详细级别(别名)(使用 uvm_info)
问题描述
在 UVM 中,有预定义的详细级别:
- UVM_DEBUG
- UVM_FULL
- UVM_HIGH
- UVM_MEDIUM
- UVM_LOW
- UVM_NONE
可以使用命令行参数控制实际报告,例如 +UVM_VERBOSITY=UVM_LOW
(1) 有没有办法拥有用户定义的详细级别(或至少是别名)?
- 例如,与 UVM_NONE 具有相同优先级的“UVM_INFO”
(2) 是否可以创建具有不同优先级的完全用户定义的详细级别?
在UVM_NONE 和 UVM_LOW之间说点什么
而且,如何从 CLI 控制这样的事情?
这样做的原因是,即使使用 UVM_LOW,一些商业 VIP 仍然相当冗长。如果可能的话,我想对一些测试平台元素有一个“我自己的水平”......
解决方案
我对 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 的定义,它会给你一个想法。
我希望这在一定程度上回答了你的问题。
推荐阅读
- java - 当我尝试在 cmd 窗口中使用“java”命令运行我的代码时,出现错误
- bash - 从bash中的while循环返回变量
- c - double pointer output explanation
- servicestack - 在 ORMLite 中禁用 SQL 日志记录
- java - 如何使用 Jackson 指定要序列化为 JSON 的某些字段?
- google-cloud-platform - 如何允许公共 Google Run 实例与 *private* Google Run 实例通信?
- ios - 将 Self ViewController 作为参数传递?
- python - 如何从具有一些不同和相似键的字典中的字典中创建单个字典
- python - 同时使用组和个人权限
- php - 如何使用 Docker-compose 和连接 PHP:Apache Container 和 MSSQL Container