Table Of Contents

Data Transfer Using FIFOs

Last Modified: August 9, 2019

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.

Recently Viewed Topics