Jump to content


Photo
- - - - -

Fast writing into RAM on FlexRIO


  • Please log in to reply
1 reply to this topic

#1 bvrtic

bvrtic

    I've come back for more.

  • Members
  • 2 posts
  • Version:LabVIEW 2009
  • Since:2008

Posted 23 July 2010 - 08:23 AM

Hi,
I have the question about the best practices how to write the array of 32 bit values into RAM on FlexRIO card.
The arrays can be quite large up to 2 400 000 of elements. there are simple 1D array that are read from HDD. This files are prepared before.
We need to write this array to the specific address in RAM. Because there can be this array read several times we can't use FIFO's.
The problem is if I use the for loop and write into ram Address after address the time for large arrays is big, several seconds.

Do you have better solution or some proposal?

Thank you for your help.

#2 njg

njg

    Active

  • Members
  • Pip
  • 10 posts
  • Version:LabVIEW 8.6
  • Since:1998

Posted 29 July 2010 - 09:08 PM

The most efficient method, with regards to speed, for writing data from PC memory to FPGA memory is to utilize a DMA channel. On the host you would load the data from disk and then place it in the DMA buffer. This could be done in segments if the data set was huge. On the target (FPGA) you would have a loop that reads the DMA buffer and places the data in memory, one element at a time. A single cycle timed loop (SCTL) would be the prefered implementation for that loop. This implementation should handle 2,400,000 elements in well under a second.