Real-Time Measurement and Control

cancel
Showing results for 
Search instead for 
Did you mean: 

FIFO size DMA

Hi :
 
   I just read about the "Using DMA FIFO to Develop High-Speed Data Acquistion Applications for Reconfigurable I/O Devices"
 
 It said "This allows the FPGA to use the host RAM as if it were its own".
 
  I am using Labview for windows and PXI 7833R card. The 7833R card has a 190k RAM. Since my host has 512M memory.
 
 So can I creat a memory block or FIFO with size of 10M ? And can I read the FIFO at a fixed rate like 8M?
 
I wanna send the data from FIFO to a device at fixed frequency (4M or 8M Hz), is it possible?
 
 
Thanks.
0 Kudos
Message 1 of 3
(3,733 Views)
Please take also a closer look at this document:

DMA Improves LabVIEW FPGA 8.0 Throughput by 20X
http://zone.ni.com/devzone/conceptd.nsf/webmain/c1013cb24fc508ef8625708b0071b3fb

"
The new DMA capabilities in the LabVIEW FPGA 8.0 Module eliminate prior throughput limitations. While FPGAs on RIO devices can run at rates of 40 MHz, the fastest data-streaming rate was previously 1 MB/s. The LabVIEW FPGA 8.0 Module implements DMA on all National Instruments R Series and CompactRIO devices for at least a 20 times increase in data-streaming rates from the FPGA to a host application.

To use DMA, simply create two memory buffers – one in memory on the FPGA device and one in memory on the host processor – and LabVIEW efficiently and transparently transfers data over the PCI bus from the FPGA VI to a host VI. The LabVIEW FPGA 8.0 Module uses FPGA FIFOs configured for DMA to write to DMA memory (Figure 1) and uses FPGA Invoke Methods on the host side to create and read from host memory"

Let me know if you need further clarification.

Regards

Stephan A.
NI
0 Kudos
Message 2 of 3
(3,725 Views)

I am working on the DMA FIFO with my compact RIO and encounter a some problem. I am trying to record 1 sec of data from the NI 9205 Analog input after the DO turned on the relay. However, when i try to get the data from the FIFO, I just can't seem to get it right. I tried to changed the "Number of Elements" in the FIFO read. From what i understand, it is the number that the reading will wait until that amount of data is read from FPGA. So if i put 0, i got 0 in my TDMS file. If i put 6, i only get 1 line of data in my TDMS. If i put 6000, it will said it have a evoke error. Can someone help me with this??? Is it i can't read a bulk amount of data from the FIFO?? do i need a loop for the FIFO read??

 

Here is some screen shot of the vi.

 

 

Download All
0 Kudos
Message 3 of 3
(2,956 Views)