나는 개발 보드에 spartan6 fpga를위한 자일링스 코어 생성기 툴을 사용하여 PCIe 생성 코어/엔드 포인트를 만들었는데,이 보드는 MSI를 활성화하고 이들을 몇 초마다 보냈다.어떻게하면 PCIe Verilog 코어에서 DMA를 얻을 수 있습니까?
또한 개발 보드를 꽂은 내 리눅스 데스크탑에서 간단한 C 커널 모듈을 만들었습니다. 이것은 디바이스를 등록하고, 메모리를 할당하고, 디바이스에 대한 버스 마스터쉽을 가능하게하고, 인터럽트 등을 처리합니다.
이제 보드에서 PC 로의 일부 DMA 전송이 끝나면 인터럽트를 보냅니다. cpu가 가서 읽을 수 있습니다. 저는 Verilog 전문가가 아니며, 제가 가지고있는 코드는 DMA 기능을 수행 할 수없는 것 같습니다.
온라인에서 관련 정보를 찾을 수 없으므로 이것은 저의 마지막 희망입니다.
생성 된 PCIe 코어 위에 트랜잭션 계층을 구현 했습니까? HDL 기술이 그렇게 높지 않은 경우 무료 PCIe 코어를 사용하지 않는 이유는 무엇입니까? PCIe는 매우 큰 일입니다 .... – Paebbels
Tx/Rx 엔진이 있기 때문에 PIO에서 이미 완료되었다고 생각합니다.언급 된 무료 PCIe 코어를 인식하지 못했습니다. 이 버전이 내가 액세스 할 수있는 유일한 무료 사용자이기 때문에 TLP가 구현 된 TLP를 가르쳐 주시면 좋을 것입니다. – v1ctor23