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_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设置外,还可以在命令行中设置退出阈值
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);
编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !