LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

FPGA Memory Item vs FIFO Item

Solved!
Go to solution

What is the difference between using a FPGA Memory Item (memitem.JPG) and a FPGA FIFO Item (fifoitem.JPG)?

 

I am looking to offload data as quickly as possible between an FPGA target and a host VI application, however these two options seem to be used interchangably in the LabVIEW help documents and whitepapers.  I understand how DMA works from a Computer Science point of view, and would like to use this approach since it is the fastest (i need a very quick DAQ system).

 

Does anyone know what the specific difference between these are, and (more importantly), which will be faster for transfering U8 integer data?

 

They are both created by right clicking the FPGA Target:

 

newfifoitem.JPG

 

newfifoitem.JPG

 

Thanks in advance for any help! 🙂

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
If someone helped you out, please select their post as the solution and/or give them Kudos!
0 Kudos
Message 1 of 3
(4,502 Views)
Solution
Accepted by topic author MrHappyAsthma

For transferring data from the FPGA to the host, a DMA FIFO is your only option. Memory blocks are only for transferring data between loops within the FPGA. A memory item is not shared between the host and FPGA.

 

A DMA FIFO is implemented by allocating memory on both the FPGA and host. The DMA logic moves data between them automatically, but it remains two separate pools of memory, one on the host and the other on the FPGA.

 

For communication between loops on the FPGA (without involving the host), the most important difference is that a FIFO, as its name implies, is first-in-first-out, whereas a memory block is addressable. There are also differences in how they can be used to transfer data between loops in different clock domains, as described in the help. If you have a question about a specific section of the help, please quote or link to the part you find confusing.

Message 2 of 3
(4,477 Views)

nathand is completely correct.

 

Of the two options you list, only one will do what you want.

0 Kudos
Message 3 of 3
(4,471 Views)