DMA FIFO를 이용할 때 유실된 데이터 처리 방법

업데이트 됨 Jul 29, 2019

해당 제품

Software

  • LabVIEW FPGA Module

문의사항

DMA FIFO에서 데이터를 제거할 때 데이터가 유실 되었다는 것을 알았습니다. 어떻게 해결할 수 있습니까?

해결책

DMA FIFO에서 데이터가 누락된 것은 대개 잘못된 DMA 아키텍처 때문입니다.(참고 링크: Best Practices for DMA Applications (FPGA Module)) 아래 항목들은 개발자가 DMA FIFO를 사용할 때 발생하는 데이터 누락과 관련된 몇 가지 일반적인 문제들입니다. 
  • FPGA의 데이터 수집 코드에는 정의되지 않은 시간이 걸리는 코드 섹션이 있습니다. 지정된 루프 속도로 데이터를 수집해야 하고 FPGA가 호스트에서 값 변경 또는 인터럽트를 기다리는 경우 FPGA는 수집을 중지하게 되며 데이터가 손실됩니다. 
  • FIFO에서 데이터가 잘못 읽히고 있는 경우입니다. 이 문제는 FIFO에 데이터를 인터리빙 할 때나 채널 수의 정수 배수를 읽도록 지정하지 않았을 때 발생할 수 있습니다.
  • DMA FIFO가 오버플로우 되는 경우입니다. 이 문제는 Missing Data When Using DMA FIFO With High Sample Rates on FPGA를 참고하십시오. 추가적으로 오버플로우를 피하기 위한 몇 가지 방법들이 있습니다.

이 글이 도움이 되셨습니까?

도움 안됨