2013-09-25 29 views
5

Có cách nào dễ dàng để lấy lại hàm tùy chỉnh cho UVM_ERROR macro mà không thao tác thư viện UVM không?)Piggybacking to UVM error

Trả lời

6

Chưa tự mình thử, nhưng uvm_report_catcher có vẻ như nó thực hiện những gì bạn muốn.

Đó là cuộc gọi lại mà bạn có thể triển khai bất cứ khi nào báo cáo uvm (như UVM_ERROR) sắp được phát hành và chức năng của bạn được gọi trước khi báo cáo được báo cáo.

Ví dụ có sẵn ở đây, phần 4.9.3: http://low-powerdesign.com/article_Cadence-UVM_101810.html

+0

Tôi đã cuộn lại câu trả lời như tôi không nghĩ rằng nó thích hợp để chỉ cần sao chép nội dung từng từ từ trang web khác. Nếu bạn muốn bao gồm ví dụ của riêng bạn cảm thấy tự do để làm như vậy. – Tim

0

Dựa trên những gì bạn muốn, uvm_report_catcher lớp là lựa chọn tốt nhất.

Dưới đây là ví dụ bạn có thể sử dụng,

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 

Hy vọng điều này sẽ giải quyết vấn đề của bạn ...