2017-11-10 13 views
0

저는 Zedboard Zynq 평가 보드에서 FPGA를 사용하여 이미지 프로세싱 프로젝트를 진행하고 있습니다. HLS를 사용하여 이미지 처리 블록을 작성하고 너비가 8 인 AXI4 스트림으로 IP를 입력 및 출력으로 생성했습니다.JPEG 이미지를 AXI4 스트림으로 보내고 다시 읽으십니까?

내 PC에서 JPEG 이미지를 읽고 AXI4 스트림으로이 IP 블록으로 보내려면 어떻게해야합니까? , 출력하여 내 PC 화면에 다시 표시 할 수 있습니까?

이 작업을 수행하는 기존 IP가 있습니까?

P. JTAG 케이블을 통해 FPGA 보드가 내 PC에 연결됩니다.

답변

2

다이렉트 메모리 액세스 (DMA)/비디오 직접 메모리 액세스 (VDMA)를 사용하여 Zynq의 프로그래밍 가능 로직 (PL)과 프로세싱 시스템 (PS) 간의 이미지 데이터 교환을 설정할 수 있습니다.

이 기능은 자일링스가 IP 코어로 제공하는 기능입니다. 이 IP 코어는 PL 측에서 AXI 스트림으로 이미지 데이터를 송수신합니다. PS 측에서 DMA는 Linux UIO를 사용하여 액세스 가능하게 만들 수 있습니다. 이를 위해 ARM 코어의 장치 트리에서 DMA IP 코어의 장치 트리 노드를 수정해야합니다. 이 작업이 완료되면, 리눅스 시스템에서/dev /에 DMA를 사용할 수 있습니다. 이제 mmap()을 사용하여 사용자 공간에 매핑 할 수 있습니다. DMA를 구성함으로써, PS의 RAM에있는 메모리 영역이 그것에 할당되어야한다. 이 메모리 영역은 소위 스트림 버퍼를 구현하는 데 사용됩니다. DMA 코어는이 스트림 버퍼를 사용하여 이미지 데이터를 읽거나 씁니다. 동시에 리눅스 응용 프로그램은이 메모리 영역에 액세스 할 수 있습니다. 이것은 PS와 PL 간의 데이터 교환을 허용합니다. 개별 레지스터와 구성 절차에 대한 자세한 설명은 자일링스의 AXI DMA/VDMA 제품 가이드에서 찾을 수있다. 사용자 공간에서 이미지 데이터를 사용할 수있는 한 이더넷 연결을 사용하여 이미지를 호스트 PC로 보낼 수 있습니다. JTAG 연결은 호스트 PC와 Zed 보드간에 이미지 데이터를 교환하는 적절한 방법이 아닙니다.