This set of macros provides wrappers around the uvm_report_* Reporting functions. The macros serve two essential purposes:
The macros also enforce a verbosity setting of UVM_NONE for warnings, errors and fatals so that they cannot be mistakenly turned off by setting the verbosity level too low (warning and errors can still be turned off by setting the actions appropriately).
To use the macros, replace the previous call to uvm_report_* with the corresponding macro.
//Previous calls to uvm_report_* uvm_report_info("MYINFO1", $sformatf("val: %0d", val), UVM_LOW); uvm_report_warning("MYWARN1", "This is a warning"); uvm_report_error("MYERR", "This is an error"); uvm_report_fatal("MYFATAL", "A fatal error has occurred");
The above code is replaced by
//New calls to `uvm_* `uvm_info("MYINFO1", $sformatf("val: %0d", val), UVM_LOW) `uvm_warning("MYWARN1", "This is a warning") `uvm_error("MYERR", "This is an error") `uvm_fatal("MYFATAL", "A fatal error has occurred")
Macros represent text substitutions, not statements, so they should not be terminated with semi-colons.
Report Macros | |
This set of macros provides wrappers around the uvm_report_* Reporting functions. | |
Basic Messaging Macros | |
`uvm_info | Calls uvm_report_info if VERBOSITY is lower than the configured verbosity of the associated reporter. |
`uvm_warning | Calls uvm_report_warning with a verbosity of UVM_NONE. |
`uvm_error | Calls uvm_report_error with a verbosity of UVM_NONE. |
`uvm_fatal | Calls uvm_report_fatal with a verbosity of UVM_NONE. |
`uvm_info_context | |
`uvm_warning_context | |
`uvm_error_context | |
`uvm_fatal_context | |
Message Trace Macros | |
`uvm_info_begin | |
`uvm_info_end | This macro pair provides the ability to add elements to messages. |
`uvm_warning_begin | |
`uvm_warning_end | This macro pair operates identically to `uvm_info_begin/`uvm_info_end with exception that the message severity is UVM_WARNING and has no verbosity threshold. |
`uvm_error_begin | |
`uvm_error_end | This macro pair operates identically to `uvm_info_begin/`uvm_info_end with exception that the message severity is UVM_ERROR and has no verbosity threshold. |
`uvm_fatal_begin | |
`uvm_fatal_end | This macro pair operates identically to `uvm_info_begin/`uvm_info_end with exception that the message severity is UVM_FATAL and has no verbosity threshold. |
`uvm_info_context_begin | |
`uvm_info_context_end | |
`uvm_warning_context_begin | |
`uvm_warning_context_end | |
`uvm_error_context_begin | |
`uvm_error_context_end | |
`uvm_fatal_context_begin | |
`uvm_fatal_context_end | |
Message Element Macros | |
`uvm_message_add_tag | |
`uvm_message_add_int | |
`uvm_message_add_string | |
`uvm_message_add_object | These macros allow the user to provide elements that are associated with uvm_report_messages. |
Calls uvm_report_info if VERBOSITY is lower than the configured verbosity of the associated reporter. ID is given as the message tag and MSG is given as the message text. The file and line are also sent to the uvm_report_info call.
`uvm_info(ID, MSG, VERBOSITY)
Calls uvm_report_warning with a verbosity of UVM_NONE. The message cannot be turned off using the reporter’s verbosity setting, but can be turned off by setting the action for the message. ID is given as the message tag and MSG is given as the message text. The file and line are also sent to the uvm_report_warning call.
`uvm_warning(ID, MSG)
Calls uvm_report_error with a verbosity of UVM_NONE. The message cannot be turned off using the reporter’s verbosity setting, but can be turned off by setting the action for the message. ID is given as the message tag and MSG is given as the message text. The file and line are also sent to the uvm_report_error call.
`uvm_error(ID, MSG)
Calls uvm_report_fatal with a verbosity of UVM_NONE. The message cannot be turned off using the reporter’s verbosity setting, but can be turned off by setting the action for the message. ID is given as the message tag and MSG is given as the message text. The file and line are also sent to the uvm_report_fatal call.
`uvm_fatal(ID, MSG)
`uvm_info_context(ID, MSG, VERBOSITY, RO)
Operates identically to `uvm_info but requires that the context, or uvm_report_object, in which the message is printed be explicitly supplied as a macro argument.
`uvm_warning_context(ID, MSG, RO)
Operates identically to `uvm_warning but requires that the context, or uvm_report_object, in which the message is printed be explicitly supplied as a macro argument.
`uvm_error_context(ID, MSG, RO)
Operates identically to `uvm_error but requires that the context, or uvm_report_object in which the message is printed be explicitly supplied as a macro argument.
`uvm_fatal_context(ID, MSG, RO)
Operates identically to `uvm_fatal but requires that the context, or uvm_report_object, in which the message is printed be explicitly supplied as a macro argument.
`uvm_info_begin(ID, MSG, VERBOSITY, RM = __uvm_msg)
This macro pair provides the ability to add elements to messages.
`uvm_info_end
Example usage is shown here.
... task my_task(); ... `uvm_info_begin("MY_ID", "This is my message...", UVM_LOW) `uvm_message_add_tag("my_color", "red") `uvm_message_add_int(my_int, UVM_DEC) `uvm_message_add_string(my_string) `uvm_message_add_object(my_obj) `uvm_info_end ... endtask
`uvm_warning_begin(ID, MSG, RM = __uvm_msg)
This macro pair operates identically to `uvm_info_begin/`uvm_info_end with exception that the message severity is UVM_WARNING and has no verbosity threshold.
`uvm_warning_end
The usage shown in `uvm_info_end works identically for this pair.
`uvm_error_begin(ID, MSG, RM = __uvm_msg)
This macro pair operates identically to `uvm_info_begin/`uvm_info_end with exception that the message severity is UVM_ERROR and has no verbosity threshold.
`uvm_error_end
The usage shown in `uvm_info_end works identically for this pair.
`uvm_fatal_begin(ID, MSG, RM = __uvm_msg)
This macro pair operates identically to `uvm_info_begin/`uvm_info_end with exception that the message severity is UVM_FATAL and has no verbosity threshold.
`uvm_fatal_end
The usage shown in `uvm_info_end works identically for this pair.
`uvm_info_context_begin(ID, MSG, UVM_NONE, RO, RM = __uvm_msg)
`uvm_info_context_end
This macro pair operates identically to `uvm_info_begin/`uvm_info_end, but requires that the context, or uvm_report_object in which the message is printed be explicitly supplied as a macro argument.
`uvm_warning_context_begin(ID, MSG, RO, RM = __uvm_msg)
`uvm_warning_context_end
This macro pair operates identically to `uvm_warning_begin/`uvm_warning_end, but requires that the context, or uvm_report_object in which the message is printed be explicitly supplied as a macro argument.
`uvm_error_context_begin(ID, MSG, RO, RM = __uvm_msg)
`uvm_error_context_end
This macro pair operates identically to `uvm_error_begin/`uvm_error_end, but requires that the context, or uvm_report_object in which the message is printed be explicitly supplied as a macro argument.
`uvm_fatal_context_begin(ID, MSG, RO, RM = __uvm_msg)
`uvm_fatal_context_end
This macro pair operates identically to `uvm_fatal_begin/`uvm_fatal_end, but requires that the context, or uvm_report_object in which the message is printed be explicitly supplied as a macro argument.
`uvm_message_add_tag(NAME, VALUE, ACTION=(UVM_LOG|UVM_RM_RECORD))
`uvm_message_add_int(VAR, RADIX, LABEL = "", ACTION=(UVM_LOG|UVM_RM_RECORD))
`uvm_message_add_string(VAR, LABEL = "", ACTION=(UVM_LOG|UVM_RM_RECORD))
These macros allow the user to provide elements that are associated with uvm_report_messages. Separate macros are provided such that the user can supply arbitrary string/string pairs using `uvm_message_add_tag, integral types along with a radix using `uvm_message_add_int, string using `uvm_message_add_string and uvm_objects using `uvm_message_add_object.
`uvm_message_add_object(VAR, LABEL = "", ACTION=(UVM_LOG|UVM_RM_RECORD))
Example usage is shown in `uvm_info_end.
The uvm_report_message is the basic UVM object message class.
class uvm_report_message extends uvm_object
The uvm_report_object provides an interface to the UVM reporting facility.
class uvm_report_object extends uvm_object
The uvm_object class is the base class for all UVM data and hierarchical classes.
virtual class uvm_object extends uvm_void