제퍼넷 로고

IP의 통합 디버깅 기능을 사용하여 PCI Express 링크 교육 문제 디버깅

시간

Xilinx PCI Express IP에는 다음과 같은 통합 디버깅 기능이 함께 제공됩니다.

  • JTAG 디버거
  • 시스템 내 IBERT 활성화
  • Gen3 모드의 디스크램블러

'JTAG 디버거'는 PCI Express 링크 교육 문제 디버깅을 지원하기 위해 다음 정보를 제공합니다.

  • LTSSM 상태의 그래픽 보기
  • GUI 기반 수신기는 구성된 모든 레인의 상태를 감지합니다.
  • PHY RST 상태 머신 상태

시스템 내 IBERT는 PCIe 링크 아이 다이어그램을 제공합니다. JTAG 디버거와 시스템 내 IBERT 기능은 함께 링크 트레이닝 문제의 가능한 소스에 대한 즉각적인 정보를 제공합니다. 이번 블로그에서는 이러한 기능을 사용하는 방법에 대해 설명하겠습니다. 이 블로그는 UltraScale+ 장치와 함께 제공되는 VCU118 Xilnx 개발 보드를 기반으로 합니다.

Gen3 모드 디스크램블러 옵션은 스크램블된 PIPE 데이터의 디코딩된 인터페이스를 제공합니다. 이를 통해 사용자는 PCIe 링크에서 패킷을 볼 수 있습니다. 이 기능과 패킷을 디코딩하는 방법에 대한 자세한 내용은 다음에서 확인할 수 있습니다. 블로그.

IP 구성 GUI에는 “Add. 디버그 옵션” 탭. "JTAG 디버거 활성화"를 선택합니다.

GUI에서 다른 IP 매개변수를 구성한 후 IP를 생성하고 예제 디자인을 엽니다.

아래와 같이 예제 디자인 'Design Sources' 계층 구조에 디버그 래퍼 모듈이 포함되어 있는지 확인하세요.

3.png

올바른 비트 파일과 .ltx 파일을 선택하여 비트스트림을 생성하고 장치를 프로그래밍합니다.

4.png

사용 중인 Vivado 도구 버전에 따라 다음 오류가 나타날 수 있습니다.

5.png

위의 오류 메시지가 표시되면 Vivado Tcl 콘솔에서 다음 명령을 실행하세요.

set_param xicom.use_bitstream_version_check false

6.png

장치를 다시 프로그래밍하십시오.

대상 장치를 성공적으로 프로그래밍한 후에는 AXI 코어 "hw_axi_1"이 하드웨어 창에 나타나야 합니다.

7.png

프로젝트 디렉터리의 아래 표시된 위치에 XNUMX개의 .tcl 파일이 있습니다.

test_rd.tcl' 파일은 BRAM에 저장된 디버그 데이터를 읽어서 아래와 같은 *.dat 파일을 출력합니다. 다른 Tcl 파일은 이러한 *.dat 파일을 읽어 각각 LTSSM, PHY RST 상태 머신 및 수신기 감지의 그래픽 보기를 그립니다.

8.png

9.png

draw_ltssm.tcl, draw_reset.tcl 및 draw_rxdet.tcl 스크립트는 ActiveTcl을 사용하여 실행됩니다.

Tcl 콘솔에서 스크립트를 실행하려고 하면 Vivado 도구에서 오류가 발생합니다.

아래 그림은 "draw_ltssm.tcl" 스크립트로 생성된 LTSSM 다이어그램을 보여줍니다.

10.png

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

위 다이어그램은 링크가 올바르게 학습되고 'L0' 상태로 고정되는 작업 사례 시나리오에서 나온 것입니다. 링크 훈련이 실패하면 '감지' 버블이 주황색으로 표시되어 IP가 수신기를 감지할 수 없음을 나타냅니다. 마찬가지로 화살표 중 하나 옆에 더 큰 숫자가 표시되어 링크가 불안정할 수 있음을 나타냅니다.

아래 그림은 “draw_reset.tcl” 스크립트를 사용하여 생성된 PHY RST 상태 머신을 보여줍니다.

11.png

아래 그림은 "draw_rxdet.tcl" 스크립트를 사용하여 생성된 수신기 감지 상태를 보여줍니다.

12.png

위에서 볼 수 있듯이 녹색 점은 해당 레인에서 수신기가 성공적으로 감지되었음을 나타냅니다. GUI는 협상된 링크 폭에 대한 정보도 제공합니다.

PCIe 링크 아이 다이어그램을 캡처하려면 “Add. IP 구성 GUI의 디버그 옵션” 탭.

13.png

'JTAG Debugger' 옵션과 유사하게 IP를 생성하고 예제 디자인을 엽니다.

예제 디자인의 'Design Sources' 계층 구조에서 'System IBERT' 모듈을 볼 수 있는지 확인하세요.

15.png

비트스트림을 생성하고 .ltx 파일과 함께 비트 파일을 프로그래밍합니다.

인용하다 https://www.xilinx.com/support/answers/72471.html IBERT 스캔에 필요한 필수 구성에 대한 자세한 내용을 알아보세요. 아래 그림은 'In-System IBERT' 기능으로 생성된 아이 다이어그램을 보여줍니다.

14.png

위 스캔의 눈은 작동 중인 PCIe 링크에서 나온 것입니다. 실패한 링크에서는 링크에 신호 무결성 문제가 있을 수 있음을 나타내는 매우 작은 파란색 영역이 표시될 수 있습니다.

이 블로그에 설명된 대로 Xilinx IP에서 통합 PCIe 디버그 기능을 사용하는 자세한 단계는 다음 답변 기록에서 확인할 수 있습니다.

https://www.xilinx.com/support/answers/72471.html

디버그 기능을 사용하여 생성된 그래프 및 아이 다이어그램에 문제가 있는 경우 PCIe 링크 문제를 디버그하는 방법에 대한 정보를 제공하는 다음 답변 기록을 참조하세요. 디버그 기능을 사용하여 얻은 결과는 문제의 잠재적 원인을 좁혀 디버깅을 더 쉽게 만드는 데 도움이 됩니다. 

https://www.xilinx.com/support/answers/73361.html

PrimeXBT 결제
AC Milan의 공식 CFD 파트너와 거래
암호 화폐를 거래하는 가장 쉬운 방법.
출처: https://forums.xilinx.com/t5/Design-and-Debug-Techniques-Blog/Debugging-PCI-Express-Link-Training-Issues-with-Integrated/ba-p/1097525

spot_img

최신 인텔리전스

spot_img