A
FIFO is a data structure that holds elements in the order they are received and provides access to those elements using a first-in,
first-out basis.
The following illustration demonstrates the behavior of elements moving through a FIFO.
The type of FIFO you create depends on the way you need to transfer data.
Type of Data Transfer
|
Type of FIFO
|
Considerations
|
Between Clock-Driven Loops
|
Local FIFO
|
You can access local FIFOs created through a resource collection (.grsc) across multiple documents in your project. To share the documents that reference that FIFO with another user, you must send
the resource collection and documents.
To create individual FPGA VIs within a single document that you can send to other users, use the Create FIFO node to create a local FIFO within the VI.
|
Between the host processor and the FPGA
|
Direct Memory Access (DMA) FIFO
|
Use DMA FIFOs to stream data between a host processor and the FPGA. A DMA FIFO allocates memory on both the host computer
and the FPGA target yet acts as a single FIFO to take advantage of the resources of each device.
|
Between two FPGA targets or between an FPGA and non-FPGA target
|
Peer-to-Peer FIFO
|
Peer-to-peer FIFOs write data to a peer-to-peer writer FIFO on one target and read data from a peer-to-peer reader on another
target.
To define peer-to-peer FIFOs, use a resource collection. The writer and reader FIFOs are paired in the host VI but the actual
data transfer happens directly from one target to another.
|