Error Demotion in OVM?

Well, there is a way, if you want to dig a little deeper into the reporting system.

The ovm_report_* functions delegate to a function called report() in the report handler. The severity level is an argument to report(). So, you could write your own delegation function where severity is a variable and change the value of that variable depending on your application.

For example

class my_report_component extends ovm_component;
 
  function new(string name, ovm_component parent);
    super.new(name, parent);
  endfunction
 
  virtual function void report(ovm_severity severity, string id, string msg, 
                               int verbosity=OVM_MEDIUM,
                               string filename="", int lineno=0);
    m_rh.report(severity, get_full_name(), id, msg, verbosity, 
                filename, lineno, this);
  endfunction
 
endclass

Now when you derive your components from my_report_component you can call report() and pass in the severity level as an argument. I’ve shown a default value for the verbosity argument, when you call report() you may want to supply an explicit verbosity argument that is consistent with the severity level argument.

– Mark