2013-09-25 6 views
5

C'è un modo semplice per passare una funzione personalizzata alla macro UVM_ERROR senza manipolare la libreria UVM? (Vale a dire ogni volta che un errore UVM viene richiamato in qualsiasi punto dell'ambiente, desidero richiamare la mia funzione.)Errore Piggybacking a UVM

risposta

6

Non ho ancora provato questo, ma il uvm_report_catcher sembra che fa quello che vuoi.

È una richiamata che è possibile implementare ogni volta che un rapporto uvm (come un UVM_ERROR) sta per essere rilasciato e la funzione viene chiamata prima che venga segnalata.

esempio è disponibile qui, la sezione 4.9.3: http://low-powerdesign.com/article_Cadence-UVM_101810.html

+0

ho rotolò la risposta, come non credo che sia opportuno basta copiare il contenuto parola per parola dall'altro sito web. Se vuoi includere il tuo esempio sentiti libero di farlo. – Tim

0

In base a ciò che si vuole, uvm_report_catcher di classe è l'opzione migliore.

Ecco l'esempio è possibile utilizzare,

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 

Spero che questo risolverà il vostro problema ...

Problemi correlati