Hi:
I use the code snippet shown below in 5-6 test cases.
What changes every time, is the following:-
- Name of the “counter” variable.
- The “error string”, which is an argument for uvm_is_match.
- Name of “some_monitor”.
How do I parameterize derived_catcher_c to re-use it in my test cases?
Please explain.
Thank You!
class derived_catcher_c extends base_catcher_c;
int counter;
`name_constructor ( "derived_catcher_c" )
`uvm_object_utils_begin ( derived_catcher_c )
`uvm_field_int ( counter, UVM_DEFAULT )
`uvm_object_utils_end
function action_e catch();
bit ok;
string error_message;
error_message = get_message();
ok = uvm_is_match ("*Look for this error string*", error_message);
if (
get_severity() == UVM_ERROR &&
get_id() == "some_monitor" &&
ok == 1
)
begin
this.counter++;
set_severity (UVM_WARNING);
end
return THROW;
endfunction: catch
endclass: derived_catcher_c