LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

FlexRIO 7932 host FIFO reading

Hello, I am using FlexRIO 7932 to retrieve data through DMA FIFO from FPGA to Host. In host vi, when "Number of Elements" is set to 0 inFIFO.read Invoke Method, "Elements Remaining" return value or this value plus or minus one can be divided by 32. Since I only need the last portion of the last FIFO data after several FIFO reading, this will cause data loss. I need help to have a better understanding on how FIFO reading works in FlexRIO. Thanks!

0 Kudos
Message 1 of 4
(1,024 Views)

Is there a way to control the amount data being sent from the FPGA?  Maybe using the Streaming VIs: http://zone.ni.com/reference/en-XX/help/372614J-01/target5devicehelp/idl_streaming_vis/


Certified LabVIEW Architect, Certified Professional Instructor
ALE Consultants

Introduction to LabVIEW FPGA for RF, Radar, and Electronic Warfare Applications
0 Kudos
Message 2 of 4
(1,021 Views)

Thanks for your reply. To FIFO.Read (Invoke Method), I read the NI document about Elements Remaining: "Elements Remaining returns the number of elements remaining that are available for reading. The number of elements that this method returns is less than or equal to the actual number of elements remaining in the FIFO." This means it may not be the actual data size, then how to check the available FIFO size? 

0 Kudos
Message 3 of 4
(1,017 Views)

The only situations I can think of that would result in elements remaining returning less than the actual number of elements remaining would be:

 

  1. After you read the number of elements remaining, another element is added to the host side FIFO buffer.
  2. You have completely filled up your host side FIFO buffer but there are still elements in the FPGA FIFO buffer. Host FIFO buffers are typically much smaller than the FPGA buffers so this would almost always result in an overflow on the FPGA.
Matt J | National Instruments | CLA
0 Kudos
Message 4 of 4
(975 Views)