set_report_severity_action函数以及set_report_severity_action_hier函数的第一个参数除了可以是UVM_WARNING外,还可以是UVM_INFO和UVM_ERROR。不过在默认情况下,UVM_ERROR就已经加入了计数。如果不需要,我们也可以把其从统计计数目标中移除,例如: set_report_severity_action(UVM_ERROR,UVM_DISPLAY); 这种或关系很类...
例如配置下面这个命令行参数,就可以无视uvm_test_top.env0下面所有子子孙孙组件中严重程度为UVM_ERROR的所有调试语句; 也就是说,既不会打印信息到屏幕,也不会计入错误个数。 相比之前提到的uvm_set_verbosity,uvm_set_action简直是大杀器啊! 完全可以通过修改调试行为,更直接的屏蔽调试信息,不必再管什么啰嗦程度...
重载是深入到UVM骨子里的一个特性。UVM默认有四种信息严重性:UVM_INFO、UVM_WARNING、UVM_ERROR、UVM_FATAL。这四种严重性可以互相重载。如果要把driver中所有的UVM_WARNING显示为UVM_ERROR,可以使用如下的函数: //base_test.sv 16virtualfunctionvoidconnect_phase(uvm_phase phase); 17env.i_agt.drv.set_report...
(如果在 configure_phase 调用这个函数,将不会生效) 方法2:使用 UVM 的方法,重载打印信息的严重性,将报错降级处理 使用方法如下:将 UVM_ERROR 降级为 UVM_WARNING 注意: (1)这个必须在 start_of_simulation_phase 中或者其之前(end_of_elaboration_phase)才有效,如果在 configure_phase 中设置将不会生效。 (2...
uvm的打印分级策略如下图所示: 其中,`uvm_fatal宏的严重等级最高,发生uvm_fatal,仿真会直接停止;其次是`uvm_error,发生uvm_error,不会导致仿真直接停止,仿真会运行完成,只不过运行到最后,用例会fail,指明有bug,可能是环境问题,也可能是dut问题。然后是uvm_warning,起到提醒作用,说明当前点可能会发生错误,有的地方...
UVM:3.4.2 重载打印信息的严重性 1.所有warning 替换成error: 2.只对某个特定id 起作用: 3.重载严重性是没有递归函数的。 4.可以在命令行中实现: <sim command> +uvm_set_severity=<comp>, <id>, <current severity>,<new_severity> <sim command> +uvm_set_severity="uvm_test_top.env.i_agt....
VCS运行成功,并结束了仿真,UVM没有报错,打印的UVM_ERROR个数是0 但是我的scoreboard里是写了打印语句的,把MATLAB模型输出的滤波器理想数据和Verilog模型输出的实际数据打印出来的。 经过查找问题发现Driver根本没有跑起来,即objection根本没有被raise,没有objection被raise那么UVM就会自动撤销objection即结束仿真,Driver都...
UVM_ERROR代表出现严重错误,需要立即暂停仿真并进行处理。而UVM_FATAL则表示仿真已经无法继续进行,需要立即终止。这四个信息严重性等级可以通过`uvm_info`语句重载,并可以使用`$sformatf()`系统函数打印带参数的字符串。不同的等级可以在仿真过程中设置不同的冗余度级别,当达到一定数量时,仿真会结束。
实际打印结果格式如下:查看UVM源代码,我们首先定位`uvm_info宏定义的位置:这段代码对uvm_info/uvm_warning/uvm_error/uvm_fatal等宏进行了描述,实际上是对uvm_report_*函数的封装。以`uvm_info为例,分析其执行过程,其中使用了全局函数uvm_report_enabled。这里又调用了uvm_root中定义的uvm_report...
1.使用消息打印:UVM提供了消息级别来打印信息,可以使用`uvm_info`、`uvm_warning`、`uvm_error`等函数打印消息。在UVM环境中适当地使用这些函数可以快速了解测试运行的情况。 2.使用波形调试:通过在仿真工具中启用波形调试功能,可以查看信号和寄存器的状态,以及事务的时序关系。这对于定位问题非常有帮助。 3.时间推移...