Czy istnieje prosty sposób na przywrócenie niestandardowej funkcji do makra UVM_ERROR
bez manipulowania biblioteką UVM? (Tj. Zawsze, gdy błąd UVM wywoływany jest w dowolnym miejscu w otoczeniu, chcę, aby moja funkcja była wywoływana wraz z nim.)Piggybacking do błędu UVM
5
A
Odpowiedz
6
Jeszcze nie próbowałem tego, ale uvm_report_catcher
wygląda tak, jak robi to, co chcesz.
Jest to wywołanie zwrotne, które można wdrożyć za każdym razem, gdy zostanie wysłany raport uvm (np. UVM_ERROR), a funkcja zostanie wywołana, zanim zostanie zgłoszona.
Przykład dostępna jest tutaj, sekcja 4.9.3: http://low-powerdesign.com/article_Cadence-UVM_101810.html
0
W oparciu o to, co chcesz, uvm_report_catcher klasa jest najlepszym rozwiązaniem.
Oto przykład można użyć,
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
nadzieję, że to rozwiąże problem ...
Mam wycofana odpowiedź, bo nie sądzę, że należy po prostu skopiować treść słowo w słowo z drugiej strony. Jeśli chcesz dołączyć własny przykład, możesz to zrobić. – Tim