Host에서 FIFO의 버퍼사이즈 요청(Requesting the Depth of the FIFO)과 원소의 개수 설정(Configuring the Number of Elements)간의 차이점은 무엇입니까?



주요한 소프트웨어: LabVIEW Modules>>LabVIEW FPGA Module
주요한 소프트웨어 버전: 1.0
문제가 해결된 소프트웨어 버전: N/A
부차적인 소프트웨어: LabVIEW Development Systems>>LabVIEW Full Development System, LabVIEW Development Systems>>LabVIEW Professional Development System, LabVIEW Modules>>LabVIEW Real-Time Module
하드웨어: CompactRIO

문제점:

프로젝트에서 Target to Host FPGA FIFO를 만든 뒤, 해당 마우스 우 클릭한 뒤 프로퍼티를 선택하여 얼마나 많은 원소를 가질 것인지 사이즈를 선택할 수 있습니다. (아래 그림 참조)

    

Host VI에서 FPGA VI에 레퍼런스를 열면, 인보크 노드(Invoke Node)의 FIFO.Configure에서 Requested the Depth를 통해 값을 설정할 수 있습니다. (아래 그림 참조)    

     

이 두 방법에 대한 차이 및 어떤 것이 실제 FIFO의 사이즈과 관련이 있는 것인지 궁금합니다.

 



솔루션:

Target to Host FIFO는 DMA(Direct Memory ACCESS)채널을 통해 데이터를 전달해주는 두 개의 FIFO(또는 버퍼)에 의해 만들어 집니다.

첫 번째 버퍼는 FPGA 타겟에 존재하며, 이에 대한 설정은 프로젝트에서 가능 합니다.

두 번째 버퍼는 Host에 존재하며, Host VI단의 인보크 노드(Invoke Node)에서 버퍼 사이즈를 설정가능합니다.

FPGA 버퍼에 남아있는 데이터는 DMA를 통해 Host 버퍼로 데이터를 스트리밍하기 전까지는 계속해서 FPGA에 남아있게 됩니다. DMA를 통한 데이터 스트리밍은 자동적으로 발생하며 설정이 불가능합니다.

Host 버퍼는 DMA통해 Host VI안에서 데이터를 그만받을 때까지는 계속해서 데이터를 받게 됩니다. 만약 Host 버퍼의 사이즈를 설정하지 않았다면, 10,000 데이터 또는 FPGA 버퍼안에서 열리는 최대 설정 사이즈의 두 배 설정 중 더 큰 사이즈로 강제 지정됩니다.



관련 링크: KnowledgeBase 5AJE8CL1: Why Does the DMA FIFO Invoke Node Use More Memory than the Specified Depth?
KowledgeBase 5RGLN6X0: How Many DMA Channels are on My FPGA Target?

첨부:





리포트 날짜: 05/17/2013
마지막 업데이트: 12/03/2014
문서 번호: 69G6RG00