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 장치가 포함되어 있습니다.
IP 카탈로그에서 'Versal ACAP Integrated Block for PCI Express (1.0)'를 선택합니다. 내장 된 디버그 기능을 사용하려면 "PCIe-Link Debug"및 "Enable Debug AXI4 Stream Interfaces"를 아래와 같이 선택해야합니다.
링크 매개 변수는 아래와 같이 Gen3x8로 설정할 수 있습니다. 링크 교육 문제가 발생하는 경우 먼저 Gen1x1 구성을 시도하십시오.
IP가 생성되면 'Sources'창에 다음이 표시됩니다.
CIPS MIO 38을 재설정 소스로 사용하려면 아래 (PG343)의 화면 캡처에 언급 된대로 예제 디자인을 열기 전에 insert_cips를 true로 설정하십시오.
이렇게하면 MIO 핀에서 PCIe Express IP (PL PCIe) 용 Versal ACAP 통합 블록으로 재설정이 전달됩니다.
pcie_phy 및 PL PCIe에 연결된 CIPS에 mio_pl_38 핀이 있는지 확인하십시오. 이것은 아래 표시된 회로도에서 주황색으로 강조 표시되어 있습니다.
위의 화면 캡처는 IP와 함께 제공되는 예제 디자인을 생성하는 옵션을 보여줍니다.
'Open IP Example Design'을 클릭합니다. 그러면 아래와 같이 새 프로젝트의 소스 창에 파일 계층이있는 새 Vivado 프로젝트가 열립니다.
REFCLK 및 GT LOC 제약 조건이 아래와 같은지 확인하십시오. 이러한 제약은 VCK190 보드에 필요합니다. 이러한 제약은 VCK190 보드를 선택하면 자동으로 생성됩니다.
ES190 장치와 함께 VCK1 보드를 사용하는 경우 해결 방법을 적용해야합니다.
PMC MIO 37에 해당하는 매개 변수를 아래와 같이 설정합니다.
위의 변경 후에는 IP를 업데이트해야합니다.
예제 디자인을 구현 한 후 I / O 포트와 클럭이 아래 표시된 핀 위치와 QUAD에 매핑되었는지 확인합니다.
아래 표시된 핀 위치는 VCK190 보드에 필요합니다.
장치 이미지를 생성 한 후 생성 된 PDI 및 LTX 파일을 다운로드합니다. 이미지를 다운로드 한 직후 아래와 같이 LTSSM 다이어그램이 표시됩니다.
이것은 Versal 장치에 추가 된 새로운 디버그 기능입니다. 이 기능은 현재 UltraScale 및 UltraScale +와 같은 이전 장치 제품군에 대해 지원되지 않습니다. UltraScale 및 UltraScale + 장치에서 사용할 수있는 유사한 디버그 기능을 사용하려면 별도의 Tcl 파일을 실행하여 LTSSM 다이어그램을 생성해야합니다.
• 녹색 – 캡처 기간 동안 전환 된 상태
• 주황색 – 마지막 상태
• 빨간색 화살표 – 마지막 전환 상태
• 화살표 옆의 숫자 – 두 상태간에 전환이 발생한 횟수를 나타냅니다.
디버그 조종석에서 추출 할 수있는 추가 디버그 기능이 있습니다. PCIe Debug Core Properties를 확인하면 레인 상태와 PCIe Lane-0이있는 쿼드 번호를 제공합니다.
마찬가지로 GT 상태는 해당 GT 속성 창에서 읽을 수 있습니다.
Tcl 창에서 다음을 실행할 수 있습니다. 보고_hw_pcie 아래와 같이 명령.
그러면 일반 PCIe 상태가 출력되고 ltssm 상태 목록과 링크 학습 프로세스 중에 이러한 상태가 방문되었는지 여부도 제공됩니다.
report_hw_pcie 명령으로 적용 할 수있는 몇 가지 옵션이 있습니다. 다음과 같이 도움말에서 세부 정보를 찾을 수 있습니다.
PCIe에 사용할 수있는 다른 명령은 다음과 같습니다.
- get_hw_pcies
- 재설정_hw_pcie
- 새로고침_hw_pcie
PCIe 디버거 창에서 LTSSM 상태를 선택하면 해당 ltssm 비트 디코딩이 PCIe 상태 속성 창에 표시됩니다.
ltssm 비트 디코딩의 전체 목록은 제품 가이드에서 찾을 수 있으며 아래 표시된대로 report_hw_pcie 명령을 실행하면 목록을 볼 수 있습니다.
디버그 콕핏에서 아이 다이어그램을 쉽게 생성 할 수 있습니다. 먼저 링크를 만들어야합니다. 모든 단계가 아래에 나와 있으며 설명이 필요하지 않습니다.