2013-09-25 14 views
5

Gibt es einen einfachen Weg, um eine benutzerdefinierte Funktion an UVM_ERROR Makro ohne Manipulation der UVM-Bibliothek huckepack (dh wann immer ein UVM-Fehler irgendwo in der Umgebung aufgerufen wird Ich möchte meine Funktion mit aufgerufen werden.)Huckepack zum UVM-Fehler

Antwort

6

Hab das noch nicht selbst probiert, aber die uvm_report_catcher sieht aus, als ob sie das macht, was du willst.

Es ist ein Rückruf, den Sie implementieren können, wenn ein uvm-Bericht (wie ein UVM_ERROR) ausgegeben wird und Ihre Funktion aufgerufen wird, bevor sie gemeldet wird.

Beispiel ist hier verfügbar, Abschnitt 4.9.3: http://low-powerdesign.com/article_Cadence-UVM_101810.html

+0

Ich habe die Antwort, wie ich es angemessen glaube nicht, dass ein Rollback kopieren Sie einfach die Inhalt Wort für Wort von der anderen Website. Wenn Sie Ihr eigenes Beispiel einbeziehen möchten, können Sie dies tun. – Tim

0

Basierend auf, was Sie wollen, ist uvm_report_catcher Klasse die beste Option.

Hier ist das Beispiel, das Sie verwenden können,

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 

Hoffnung dies Ihr Problem lösen ...