2015-02-01 6 views
4

나는 개발 보드에 spartan6 fpga를위한 자일링스 코어 생성기 툴을 사용하여 PCIe 생성 코어/엔드 포인트를 만들었는데,이 보드는 MSI를 활성화하고 이들을 몇 초마다 보냈다.어떻게하면 PCIe Verilog 코어에서 DMA를 얻을 수 있습니까?

또한 개발 보드를 꽂은 내 리눅스 데스크탑에서 간단한 C 커널 모듈을 만들었습니다. 이것은 디바이스를 등록하고, 메모리를 할당하고, 디바이스에 대한 버스 마스터쉽을 가능하게하고, 인터럽트 등을 처리합니다.

이제 보드에서 PC 로의 일부 DMA 전송이 끝나면 인터럽트를 보냅니다. cpu가 가서 읽을 수 있습니다. 저는 Verilog 전문가가 아니며, 제가 가지고있는 코드는 DMA 기능을 수행 할 수없는 것 같습니다.

온라인에서 관련 정보를 찾을 수 없으므로 이것은 저의 마지막 희망입니다.

+1

생성 된 PCIe 코어 위에 트랜잭션 계층을 구현 했습니까? HDL 기술이 그렇게 높지 않은 경우 무료 PCIe 코어를 사용하지 않는 이유는 무엇입니까? PCIe는 매우 큰 일입니다 .... – Paebbels

+0

Tx/Rx 엔진이 있기 때문에 PIO에서 이미 완료되었다고 생각합니다.언급 된 무료 PCIe 코어를 인식하지 못했습니다. 이 버전이 내가 액세스 할 수있는 유일한 무료 사용자이기 때문에 TLP가 구현 된 TLP를 가르쳐 주시면 좋을 것입니다. – v1ctor23

답변

2

위 코멘트의 원문 :
생성 된 PCIe 코어 위에 트랜잭션 레이어를 구현 했습니까? HDL 기술이 그렇게 높지 않은 경우 무료 PCIe 코어를 사용하지 않는 이유는 무엇입니까? PCIe는 매우 큰 것입니다 ....

예, 자일링스 IP 코어 생성기는 간단한 PIO 트랜잭션을 처리 할 수있는 매우 간단한 PIO 인터페이스 ontop을 링크 계층에 추가합니다. 참고 : PIO 거래가 오래되어 새 기기에는 허용되지 않습니다. 온라인 FPGA 장치에 대한 IPCore을 만들고 네트리스트

  • 무료 리눅스를 다운로드

    1. XILLYBUS

      • 무료 교육 라이센스
      • 과 : 현재

        나는이 오히려 좋은 IPCores을 알고 windows 드라이버 (리눅스 드라이버는 표준 커널에 포함될 것입니다)

      • 8 비트 및 32 비트 FIFO 인터페이스와 /dev/xillybus_read/dev/xillybus_write 장치
      • RIFFA

        이 핵심하면 계속 잘 모르겠어요에
      • 리눅스 드라이버는 FPGA를 MAPPS 메모리 인터페이스 유지 관리
      • 무료 드라이버
      • 12 개의 FIFO 채널과 이상한 인터페이스가 있습니다.
      • 무료 HDL 소스

    이러한 모든 코어는 장치/기판 용의 PCIe 코어를 생성하기 위해 자일링스 코어 제너레이터를 필요로한다. 코어 자체가 트랜잭션 처리를 제공합니다 ...

  • +0

    감사합니다. 현재 설정과 통합하려고합니다. – v1ctor23