A previous post went into the UVM Reporting implementation, But i thought UVM reporting is important enough topic to have overview.
UVM Reporting Link to heading
UVM Reporting Macros provide 4 severity level Info
, Warning
, Error
,Fatal
`uvm_info
`uvm_warning
`uvm_error
`uvm_fatal
`uvm_info_context
`uvm_warning_context
`uvm_error_context
`uvm_fatal_context
starting with uvm_info
,
`uvm_info(ID,MSG,VERBOSITY)
ID: Unique string for the message. MSG: message string VERBOSITY:
Hello world Link to heading
`include "uvm_macros.svh"
import uvm_pkg::*;
class test extends uvm_test;
`uvm_component_utils(test)
function new(string name="", uvm_component parent);
super.new(name,parent);
endfunction
task run_phase(uvm_phase phase);
super.run_phase(phase);
`uvm_info("TEST/RUN", "hello",UVM_LOW)
endtask
endclass
module top;
initial
run_test("test");
endmodule
output
UVM_INFO /home/runner/testbench.sv(15) @ 0: uvm_test_top [TEST/RUN] hello
message summary
UVM_INFO : 2
UVM_WARNING : 0
UVM_ERROR : 0
UVM_FATAL : 0
Setting Verbosity on command line Link to heading
verbosity can be controlled by command plus args.
+UVM_VERBOSITY=<LEVEL>
LEVEL is one of the following: UVM_NONE, UVM_LOW, UVM_MEDIUM, UVM_HIGH, UVM_FULL, UVM_DEBUG.