제퍼넷 로고

내장 된 "PCIe Link Debug"기능을 사용하여 Versal ACAP Integrated Block for PCIe Express 링크 문제 디버깅

시간

Versal ™ ACAP 통합 블록 for PCI Express® 사용자 정의는 PCIe® 링크 디버그를 활성화하는 옵션을 제공합니다.

이 옵션을 활성화하면 Vivado 하드웨어 관리자가 인식하고 PCIe 특정 디버그 정보 및보기를 제공 할 IP 코어 내부에 디버그 코어가 삽입됩니다.

디버그보기는 PCIe 링크 관련 문제의 디버그를 용이하게 할 수있는 현재 링크 속도, 현재 링크 폭 및 LTSSM 상태 전환과 관련된 정보를 제공합니다.

이것은 Versal 장치에 도입 된 새로운 기능입니다. 사용자가 추가 단계를 거쳐야하는 UltraScale 및 UltraScale + 장치에서 유사한 기능을 사용할 수 있습니다. 이러한 기능은 이전 블로그 항목에 설명되어 있습니다. 여기를 클릭해 문의해주세요.

Versal 장치의 경우 Vivado에는 LTSSM 다이어그램 및 기타 디버그 관련 정보가 Vivado GUI 프레임 워크 내에 표시되는 내장 디버그 조종석이 있습니다.

이 블로그는에 제공된 "PCIe Link Debug Enablement"부록에 대한 추가 정보입니다. (PG343). 이 블로그는보다 명확하고 개념적인 사용법을 위해 각각의 스크린 샷과 함께 자세한 단계를 제공합니다.

VCK190 보드를 선택합니다. 이 블로그에 설명 된 디자인은 Vivado 2020.2 용입니다.

Vivado에서 선택한 보드 장치가 보드의 장치와 일치하는지 확인합니다. 이전 버전의 VCK190 보드에는 ES1 장치가 포함되어 있습니다. 

deepeshm_0-1612450822225.png

IP 카탈로그에서 'Versal ACAP Integrated Block for PCI Express (1.0)'를 선택합니다. 내장 된 디버그 기능을 사용하려면 "PCIe-Link Debug"및 "Enable Debug AXI4 Stream Interfaces"를 아래와 같이 선택해야합니다.

링크 매개 변수는 아래와 같이 Gen3x8로 설정할 수 있습니다. 링크 교육 문제가 발생하는 경우 먼저 Gen1x1 구성을 시도하십시오.

deepeshm_2-1612450891605.png

IP가 생성되면 'Sources'창에 다음이 표시됩니다. 

deepeshm_3-1612450924328.png

CIPS MIO 38을 재설정 소스로 사용하려면 아래 (PG343)의 화면 캡처에 언급 된대로 예제 디자인을 열기 전에 insert_cips를 true로 설정하십시오.

이렇게하면 MIO 핀에서 PCIe Express IP (PL PCIe) 용 Versal ACAP 통합 블록으로 재설정이 전달됩니다.

pcie_phy 및 PL PCIe에 연결된 CIPS에 mio_pl_38 핀이 있는지 확인하십시오. 이것은 아래 표시된 회로도에서 주황색으로 강조 표시되어 있습니다.

deepeshm_4-1612450950578.png

deepeshm_0-1612451015453.png 마우스 오른쪽 버튼을 클릭 한 다음 'IP 예제 디자인 열기'를 클릭하여 IP와 함께 제공되는 예제 디자인을 엽니 다.마우스 오른쪽 버튼을 클릭 한 다음 'IP 예제 디자인 열기'를 클릭하여 IP와 함께 제공되는 예제 디자인을 엽니 다.

위의 화면 캡처는 IP와 함께 제공되는 예제 디자인을 생성하는 옵션을 보여줍니다.
'Open IP Example Design'을 클릭합니다. 그러면 아래와 같이 새 프로젝트의 소스 창에 파일 계층이있는 새 Vivado 프로젝트가 열립니다.

deepeshm_3-1612451296446.png

deepeshm_4-1612451311307.png

deepeshm_5-1612451327849.png

deepeshm_6-1612451344591.png

REFCLK 및 GT LOC 제약 조건이 아래와 같은지 확인하십시오. 이러한 제약은 VCK190 보드에 필요합니다. 이러한 제약은 VCK190 보드를 선택하면 자동으로 생성됩니다.

deepeshm_7-1612451367941.png

ES190 장치와 함께 VCK1 보드를 사용하는 경우 해결 방법을 적용해야합니다.

PMC MIO 37에 해당하는 매개 변수를 아래와 같이 설정합니다.

deepeshm_8-1612451422257.png

위의 변경 후에는 IP를 업데이트해야합니다. 

deepeshm_9-1612451438164.png

예제 디자인을 구현 한 후 I / O 포트와 클럭이 아래 표시된 핀 위치와 QUAD에 매핑되었는지 확인합니다.

아래 표시된 핀 위치는 VCK190 보드에 필요합니다. 

deepeshm_10-1612451472614.png

장치 이미지를 생성 한 후 생성 된 PDI 및 LTX 파일을 다운로드합니다. 이미지를 다운로드 한 직후 아래와 같이 LTSSM 다이어그램이 표시됩니다.

이것은 Versal 장치에 추가 된 새로운 디버그 기능입니다. 이 기능은 현재 UltraScale 및 UltraScale +와 같은 이전 장치 제품군에 대해 지원되지 않습니다. UltraScale 및 UltraScale + 장치에서 사용할 수있는 유사한 디버그 기능을 사용하려면 별도의 Tcl 파일을 실행하여 LTSSM 다이어그램을 생성해야합니다. 

deepeshm_11-1612451493547.png

• 녹색 – 캡처 기간 동안 전환 된 상태
• 주황색 – 마지막 상태
• 빨간색 화살표 – 마지막 전환 상태
• 화살표 옆의 숫자 – 두 상태간에 전환이 발생한 횟수를 나타냅니다.

디버그 조종석에서 추출 할 수있는 추가 디버그 기능이 있습니다. PCIe Debug Core Properties를 확인하면 레인 상태와 PCIe Lane-0이있는 쿼드 번호를 제공합니다.

deepeshm_12-1612451524095.png

마찬가지로 GT 상태는 해당 GT 속성 창에서 읽을 수 있습니다. 

deepeshm_13-1612451557142.png

deepeshm_14-1612451571383.png

Tcl 창에서 다음을 실행할 수 있습니다. 보고_hw_pcie 아래와 같이 명령.

그러면 일반 PCIe 상태가 출력되고 ltssm 상태 목록과 링크 학습 프로세스 중에 이러한 상태가 방문되었는지 여부도 제공됩니다.

deepeshm_15-1612451610787.png

report_hw_pcie 명령으로 적용 할 수있는 몇 가지 옵션이 있습니다. 다음과 같이 도움말에서 세부 정보를 찾을 수 있습니다.

deepeshm_16-1612451637591.png

PCIe에 사용할 수있는 다른 명령은 다음과 같습니다.

  • get_hw_pcies
  • 재설정_hw_pcie
  • 새로고침_hw_pcie

PCIe 디버거 창에서 LTSSM 상태를 선택하면 해당 ltssm 비트 디코딩이 PCIe 상태 속성 창에 표시됩니다.

deepeshm_19-1612451706006.png

ltssm 비트 디코딩의 전체 목록은 제품 가이드에서 찾을 수 있으며 아래 표시된대로 report_hw_pcie 명령을 실행하면 목록을 볼 수 있습니다.

deepeshm_20-1612451717396.png

디버그 콕핏에서 아이 다이어그램을 쉽게 생성 할 수 있습니다. 먼저 링크를 만들어야합니다. 모든 단계가 아래에 나와 있으며 설명이 필요하지 않습니다.

deepeshm_21-1612451742641.png

deepeshm_22-1612451765147.png

deepeshm_23-1612451781464.png

deepeshm_24-1612451805871.png

deepeshm_25-1612451817118.png

deepeshm_26-1612451827742.png

deepeshm_27-1612451838990.png

출처 : https://forums.xilinx.com/t5/Design-and-Debug-Techniques-Blog/Debugging-Versal-ACAP-Integrated-Block-for-PCIe-Express-link/ba-p/1203707

spot_img

최신 인텔리전스

spot_img

우리와 함께 채팅

안녕하세요! 어떻게 도와 드릴까요?