07-21-2011 04:20 AM
I need a fast method to acquire digital data from a FPGA by DMA FIFO at very high speed rates.
One simple way to save data on host side is using "write to measurement file" vi, which can be executed by around 80ms for each loop iteration like below diagram.
But it is very slow for my situation, because I need it to run for up to 5ms, How can I improve this?
07-21-2011 05:37 AM
I can suggest using a queue to store the data; in the while loop you can read the data from the DMA and suddenly you can enqueue the data into the "save data" queue, in a parallel loop you will handle the data getting them from the queue and stored them into the HD. I can also suggest you to do not use the write to measuments file express VI to store the data, if you build an algorithm using the file low level function you will improve the performances.
07-22-2011 03:31 AM
Hi,
If you are working with an cRIO you should use RT FIFO's instead of Queues at the RT side.
And I agree with Ricky that using the Low-Level File I/O functions, espacially when you write binary data, will increase your performance.
Christian
08-04-2011 04:32 PM
Thanks for the suggestions, I tried both suggestions, and got the iteration time down to 9ms.