UVM里的6个常见参数介绍分析

描述

1、指定测试用例(一般一个用例就是一个类派生于uvm_test_base)

 +UVM_TESTNAME=
例如 +UVM_TESTNAME=my_case0

2、设置打印(`uvm_info)在命令行中设置冗余度阈值

 +UVM_VERBOSITY=
例如:
 +UVM_VERBOSITY=UVM_HIGH

UVM预先定义了六个详细程度; UVM_NONE到UVM_DEBUG。这些级别只不过是整数枚举值

UVM

如果我们不指定任何冗余度阈值,则UVM将默认使用UVM_MEDIUM。这意味着将打印所有带有UVM_NONE,UVM_LOW和UVM_MEDIUM的消息,但是带有UVM_HIGH,UVM_FULL和UVM_DEBUG的消息不会。

set_report_verbosity_level会对某个component内所有的uvm_info宏显示的信息产生影响。

env.i_agt.set_report_verbosity_level_hier(UVM_HIGH);

UVM_ERROR到达一定数量结束仿真

当uvm_fatal出现时,表示出现了致命错误,仿真会马上停止。UVM同样支持UVM_ ERROR达到一定数量时结束仿真。例,如果出现了大量的UVM_ERROR,根据这些错误已经可以确定bug所在了,再继续仿真下去意义已经不大,此时就可以结束仿真,而不必等到所有的objection被撤销。(在base_test里设置error数量)

文件:src/ch3/section3.4/3.4.3/base_test.sv
21 function void base_test::build_phase(uvm_phase phase);
22   super.build_phase(phase);
23   env  =  my_env::type_id::create("env", this);
24   set_report_max_quit_count(5);
25 endfunction

3、除了在代码中使用set_max_quit_count设置外,还可以在命令行中设置退出阈值

+UVM_MAX_QUIT_COUNT=6,NO

4、设置全局的超时时间

 +UVM_TIMEOUT=,~
例如
 +UVM_TIMEOUT="300ns, YES"

5、根据严重性设置不同的日志文件

env.i_agt.set_report_severity_file_hier(UVM_INFO,    info_log);
env.i_agt.set_report_severity_file_hier(UVM_WARNING, warning_log);
env.i_agt.set_report_severity_file_hier(UVM_ERROR,   error_log);
env.i_agt.set_report_severity_file_hier(UVM_FATAL,   fatal_log);
env.i_agt.set_report_severity_action_hier(UVM_INFO, UVM_DISPLAY| UVM_LOG);
env.i_agt.set_report_severity_action_hier(UVM_WARNING, UVM_DISPLAY| UVM_LOG);
env.i_agt.set_report_severity_action_hier(UVM_ERROR, UVM_DISPLAY| UVM_COUNT|UVM_LOG);
env.i_agt.set_report_severity_action_hier(UVM_FATAL, UVM_DISPLAY| UVM_EXIT | UVM_LOG);

编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • UVM

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分