06-25-2008 11:27 AM
06-30-2008 02:18 AM
Alexandre
NIF -AE
07-01-2008 07:35 AM
07-02-2008 03:10 AM
07-02-2008 04:44 AM
Hello,
I see that you have questions regarding FPGA DMA FIFOs and not RT FIFOs so the information above doesn't apply for you. When it comes to FPGA and DMA you have three options to implement it.
1) Blocking method - perfect when you know the input/output rate - is when you specify the amount of data you want to read from the DMA FIFO by wiring a constant to the Number of Elements input on the invoke node. The DMA Engine will then try to complete the transfer within the time specified with the Timeout input of the Invoke Node and the DMA Engine will not yield control of the CPU in order to achieve maximum throughput.
2) Polling method - add a shift register to the loop that surrounds the invoke node and wire a constant of zero to it so you initialize the register and then wire from the shift register to the the Number of Elements input of the Invoke Method node. First time you will read nothing, but you should also wire the Elements Remaining output to the shift register on the right side of the loop and then the next iteration you will read the amount of data that is available and then perform this over and over again. This method gives you control over how often polling occurs.
3) Interrupts - make use of interrupts in combination with DMA, will not be as fast as the blocking method due to overhead with handling the interrupt but should lower the CPU usage.
Hope this helps!
07-02-2008 08:46 AM
07-02-2008 10:14 AM