01signal.com

Microsoft Windows에서 Xillybus 로 "Hello, world" 테스트

Xillybus의 "Hello, world" 테스트

이것은 Xillybus를 시작하기 위한 세 번째 단계입니다. Xillybus를 포함하는 bitstream은 이미 FPGA에 로드되어 있고 driver는 host에 설치되어 있습니다. 이제 간단한 테스트를 할 차례입니다. 이 테스트의 목적은 device files가 생성되었고 작동하는지 확인하는 것입니다.

이 페이지에서는 Windows host의 Xillybus 에 대해 설명합니다. Linux에 대한 유사한 페이지가 있습니다.

여기서는 PCIe 와 함께 Xillybus 에 초점을 맞추겠지만 모든 것이 XillyUSB와 거의 동일합니다. 차이점은 이 페이지 하단에 나열되어 있습니다.

이 항목에 대한 자세한 내용은 Getting started with Xillybus on a Windows를 참조하십시오.

PCIe device가 감지됩니까?

Device Manager는 감지된 PCIe devices를 보여줍니다. 이것은 이전에 driver설치와 관련하여 설명되었습니다 .

driver가 설치되기 전에 Xillybus의 device가 "Other Devices" 목록에 나타났습니다. 설치 후 이 device는 "Xillybus"라는 그룹에 나타납니다. Device Manager이 다음 두 옵션 중 하나를 표시하지 않으면 FPGA가 PCIe device로 감지되지 않습니다. FPGA에 문제가 있는 것 같습니다. 종종 그 이유는 어떤 bitstream이 FPGA에 로드되는지에 대한 혼란 때문입니다.

screenshots가 있으며 이 주제에 대한 자세한 설명은 Getting Started guide for Windows 에 있습니다.

driver가 제대로 시작되었습니까?

다음 단계는 driver의 상태를 확인하는 것입니다. 이것은 Device Manager에서 수행됩니다. Xillybus 그룹에서 icon을 마우스 오른쪽 버튼으로 클릭합니다( device 의 이름은 "Xillybus driver for generic FPGA interface"임). "Properties"를 선택합니다. pop-up window가 나타납니다. 제목이 "Device status"인 text window를 살펴보십시오. 텍스트는 "The device is working properly"여야 합니다. 이는 driver가 Xillybus를 성공적으로 초기화하고 필요한 device files를 생성했음을 의미합니다.

텍스트에 다른 내용이 있으면 driver초기화 중에 문제가 발생한 것입니다. 이것은 일반적으로 FPGA의 logic에서 발생하는 문제입니다. 특히 FPGA 에서 PCIe block이 잘못 구성되었을 때 이런 일이 발생하는 경향이 있습니다. 예를 들어 demo bundle에서 PCIe block 의 매개변수를 변경하면 이런 종류의 오류가 발생할 수 있습니다.

문제에 대한 자세한 내용은 Windows의 Event Viewer에서 확인할 수 있습니다. Xillybus의 driver 에서 보낸 메시지를 필터링할 수 있습니다. "Xillybus"라는 소스에서 메시지를 표시하는 custom view를 만듭니다. 이를 수행하는 방법은 Getting Started guide for Windows에 자세히 설명되어 있습니다.

"Hello, world"

driver는 5개의 device files를 생성합니다. \\.\xillybus_read_8, \\.\xillybus_read_32, \\.\xillybus_write_8, \\.\xillybus_write_32 및 \\.\xillybus_mem_8. IP Core Factory에서 custom IP core를 생성하는 경우 생성되는 device files 의 수와 이름 및 속성을 선택할 수 있습니다.

그러나 현재 FPGA 에는 demo bundle이 포함되어 있습니다. device files두 대를 사용해 봅시다. 이러한 device files는 사실 operating system objects가 지만 일반 파일처럼 액세스할 수 있습니다. "\\.\" 부분은 Windows의 저수준 프로그래밍에 익숙하지 않은 사람들에게는 특이하게 보일 수 있습니다. 그러나 이것은 user-space software (종종 DLLs)가 일반적으로 하드웨어에 액세스하는 방법입니다.

read_8 와 write_8사이에 demo bundle 에 loopback이 있습니다. 이것은 컴퓨터가 data를 write_8에 기록할 때 FPGA가 read_8을 통해 정확히 동일한 data를 반환한다는 것을 의미합니다. 이것은 데모용일 뿐입니다. 이 loopback에는 다른 실용적인 용도가 없습니다.

테스트는 다음과 같습니다. 컴퓨터에서 두 개의 Command Prompt windows를 엽니다. 두 Command Prompt windows에서 directory를 "precompiled-demoapps"로 변경합니다. 이 directory는 "xillybus-windowspack" directory안에 있습니다. demo bundle와 함께 xillybus-windowspack.zip을 다운로드할 것을 제안했던 것을 기억하십시오.

첫 번째 Command Prompt window에 다음을 입력하십시오.

$ streamread \\.\xillybus_read_8

그런 다음 두 번째 Command Prompt window에 다음을 입력합니다.

$ streamwrite \\.\xillybus_write_8

이제 두 번째 Command Prompt window 에 아무 내용이나 입력하고 ENTER를 누릅니다. 동일한 텍스트가 첫 번째 terminal에 나타납니다. 이것은 텍스트가 첫 번째 device file에 쓰여진 다음 FPGA에 도달하고 마지막으로 컴퓨터로 다시 반환되는 방법을 보여줍니다.

CTRL-C를 사용하여 이 두 프로그램을 중지할 수 있습니다.

이러한 프로그램의 source code는 demoapps subdirectory 에서 찾을 수 있습니다(동일한 zip 파일에서). 프로그램은 C로 작성되었으며 표준 I/O API로 Xillybus의 device files에 액세스하는 방법을 보여줍니다. Getting Started guide for Windows는 이러한 프로그램의 compilation을 수행하는 방법을 제안합니다.

이 예제는 간단하지만 작동 방식을 이해하는 것이 중요합니다. 특히 FPGA 의 logic이 어떻게 이런 일이 일어났는지 이해하는 것이 중요합니다. 이것은 자신의 logic을 통합하기 위한 출발점입니다.

XillyUSB

XillyUSB를 사용하는 경우 위에 언급된 모든 사항이 적용되지만 몇 가지 차이점이 있습니다.

XillyUSB 에는 FPGA와의 물리적 연결 품질을 검사하기 위한 showdiagnostics 라는 도구가 있습니다. raw data link 에 오류가 없는지 확인하려면 이 도구를 사용하는 것이 좋습니다. XillyUSB가 완벽하게 작동하는 것처럼 보이더라도 이를 확인하는 것이 중요합니다. 그 이유는 USB 3.0 protocol이 raw data link에서 오류를 숨기지만 이러한 오류는 여전히 버그처럼 보이는 드문 문제를 일으킬 수 있기 때문입니다.

이런 종류의 오류를 용인할 이유가 없습니다. 솔루션은 종종 간단합니다. 예를 들어 컴퓨터의 다른 USB plug를 사용하는 것입니다.

기타 차이점:

이 페이지는 영어에서 자동으로 번역됩니다. 불분명한 사항이 있으면 원본 페이지를 참조하십시오.
Copyright © 2021-2024. All rights reserved. (b4b9813f)