Why Does the DMA FIFO Invoke Node Use More Memory than the Specified Depth

Updated Feb 7, 2018

Reported In

Software

  • LabVIEW FPGA Module

Operating System

  • NI Linux Real-Time

Issue Details

When I configure the depth of an 8 bit DMA FIFO on the host code to 500K elements, the DMA FIFO will take up 2MB of memory to execute. I expected it to take up about 500KB of memory. Why is this so?

Solution

When configuring the depth of DMA FIFO on the host code, you are configuring 32 bit elements. The elements from the 8 bit DMA FIFO transfers from the FPGA to the host through a 32 bit bus of the PCI interface between the FPGA and the Real Time Controller. Therefore you can only allocate a depth of 32 bit elements.

In this case, configuring a 500K depth, you will be allocating 500k of 32 bit elements in memory. Therefore the DMA FIFO will take up 2MB of memory to execute.

WAS THIS ARTICLE HELPFUL?

Not Helpful