2014-01-30 3 views

답변

5

분석 포트가 연결된다는 것은 UVM 요구 사항이 아닙니다. 그러나 일부 UVM 구성 요소는 분석 포트가 연결되지 않은 경우 올바르게 작동하지 않습니다. 이러한 경우에 대한

, 나는 end_of_elaboration_phase 동안 분석 가져 오기 연결을 확인하는 것이 좋습니다 : 위의 매크로를 다음과 같이 정의된다

`CHECK_PORT_CONNECTION(my_analysis_imp) 

:

`define CHECK_PORT_CONNECTION(PORT) \ 
    begin \ 
    uvm_port_list list; \ 
    PORT.get_provided_to(list); \ 
    if (!list.size()) begin \ 
     `uvm_fatal("AP_CONNECT", \ 
     $sformatf("Analysis port %s not connected.", PORT.get_full_name())); \ 
    end \ 
    end 

하나 개의 연결 포트와 하나의 완전한 작동 예 연결되지 않음 : http://www.edaplayground.com/x/2YG

1

감사합니다. 네가 준 논리를 몰랐어. Victor가 준 예제에는 uvm_analysis_imp 선언에 약간의 문제가 있습니다. 여러 분석 구현에는 uvm_analysis_imp_decl 매크로를 사용해야합니다. 수정 된 예는 아래 링크를 참조하십시오. . http://www.edaplayground.com/x/3qx

NB : 나는 언급하지 못할 때문에 대답 :(나는이 검사가 uvm_port_base 이미 있기 때문에 :: resolve_bindings 그러나, 나는 버그가 있다는 것을 믿고이 필요해야한다고 생각

+1

예,'uvm_analysis_impl_decl'을 사용해야합니다. 나는 원래 그것들을 가지고 있었지만 예제를 더 간단하게 만들기 위해 제거했습니다. 나는 그들을 다시 추가 할 것이다. –

1

으로 게시. 버그는 imp size()가 imp에 바인드 된 포트의 수를보고하지 않기 때문에 3 개의 포트가 imp에 바인드 된 경우 포트 목록이 크기가 3 임에도 불구하고 1을보고합니다.

관련 문제