우리의 UVM 시뮬레이션은 흔히 연결되지 않은 분석 포트에 대한 디버깅을 끝내는 시그니처로 실패합니다.UVM 분석 포트가 연결되어 있는지 확인하는 방법은 무엇입니까?
run_phase
앞에 분석 포트가 연결되어 있는지 확인하는 방법이 있습니까?
우리의 UVM 시뮬레이션은 흔히 연결되지 않은 분석 포트에 대한 디버깅을 끝내는 시그니처로 실패합니다.UVM 분석 포트가 연결되어 있는지 확인하는 방법은 무엇입니까?
run_phase
앞에 분석 포트가 연결되어 있는지 확인하는 방법이 있습니까?
분석 포트가 연결된다는 것은 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
감사합니다. 네가 준 논리를 몰랐어. Victor가 준 예제에는 uvm_analysis_imp
선언에 약간의 문제가 있습니다. 여러 분석 구현에는 uvm_analysis_imp_decl
매크로를 사용해야합니다. 수정 된 예는 아래 링크를 참조하십시오. . http://www.edaplayground.com/x/3qx
NB : 나는 언급하지 못할 때문에 대답 :(나는이 검사가 uvm_port_base 이미 있기 때문에 :: resolve_bindings 그러나, 나는 버그가 있다는 것을 믿고이 필요해야한다고 생각
으로 게시. 버그는 imp size()가 imp에 바인드 된 포트의 수를보고하지 않기 때문에 3 개의 포트가 imp에 바인드 된 경우 포트 목록이 크기가 3 임에도 불구하고 1을보고합니다.
예,'uvm_analysis_impl_decl'을 사용해야합니다. 나는 원래 그것들을 가지고 있었지만 예제를 더 간단하게 만들기 위해 제거했습니다. 나는 그들을 다시 추가 할 것이다. –