UVM provides all the classes and functions to generate the message.
Ø Messages are mainly info, warning, error and fatal.
Ø In SV, we have $display and we don’t have control on which message t be printed. (Log file is huge and hard to analyse to debug but UVM provides filtering mechanism).
Ø Each reporting command used any of the following arguments:
uvm_severity, uvm_action and uvm_verbosity.
Ø For displaying information messages, we have,
§ `uvm_info(ID, MSG, VERBOSITY)
Ø ID: identifier of the message, from where the msg has to printed
Ex: “TEST” / “ENV”
Or we can use few inbuild methods,
§ get_full_name() : provides full hierarchy
§ get_type_name(): provides name of the class
§ get_name(): provides the name of the class
Verbosity: Indicates how important the message is
Ø uvm_verbosity would filter out the debugging messaging according to priority set.
Ø By default, verbosity is set to UVM_MEDIUM.
§ Verbosity levels: UVM_NONE -> 0 (weight)
UVM_LOW -> 100 (weight)
UVM_MEDIUM -> 200 (weight)
UVM_HIGH -> 300 (weight)
UVM_FULL -> 400 (weight)
UVM_DEBUG -> 500 (weight)
o Ex: `uvm_info(“ENV”, “We are inside ENV”, UVM_LOW)
o It will print messages with verbosity NONE and LOW
SEVERITY: Filter the messages based on severity level.
Ø uvm_severity indicates the importance of the message to be displayed.
o UVM_INFO -> DISPLAY
o UVM_WARNING -> DISPLAY
o UVM_ERROR -> DISPLAY | COUNT : It will display and count the errors
o UVM_FATAL -> DISPLAY | EXIT : It will display and exit the simulation
Ø MESSAGE ACTION:
o UVM_DISPLAY: It will display the message.
o UVM_LOG: It will send the message to the file.