Is there an easy way to piggy back a custom function to UVM_ERROR macro without manipulating the UVM library ?(i.e whenever a UVM error is invoked anywhere in the environment I want my function to be called along with it.)
            Asked
            
        
        
            Active
            
        
            Viewed 467 times
        
    5
            
            
        
        Jean
        
- 21,665
 - 24
 - 69
 - 119
 
2 Answers
6
            Haven't yet tried this myself, but the uvm_report_catcher looks like it does what you want.
It's a callback that you can implement whenever a uvm report (like a UVM_ERROR) is about to be issued, and your function gets called before it gets reported.
Example is available here, section 4.9.3: http://low-powerdesign.com/article_Cadence-UVM_101810.html
        Tim
        
- 35,413
 - 11
 - 95
 - 121
 
0
            
            
        Based on what you want , uvm_report_catcher class is the best option.
Here is the example you can use,
 class my_error_demoter extends uvm_report_catcher;
   function new(string name="my_error_demoter");
     super.new(name);
   endfunction
  function action_e catch();
    if(get_severity() == UVM_ERROR) begin
       ... your task () ; ...        
    end
    return THROW;
  endfunction
endclass
Hope this will solve your problem...
        abhay chavda
        
- 1
 - 1