09-18-2007 09:50 AM
09-19-2007 05:10 AM
09-19-2007 07:09 AM
tartan5
I believe that you should be fine with a single DMA channel.
I have streamed 1,500,000 U32s from the host to the FPGA, output these @ 1MHz while simultaneous reading 187,500 result U32s. The results where then DMAed to the host on a second DMA channel. I have also interleaved data onto a DMA channel then decimated the data at the host / FPGA.
09-19-2007 10:55 AM
09-19-2007 11:10 AM
09-21-2007 08:10 AM
09-21-2007 08:39 AM
wiebe@CARYA wrote:
It is definitatelly not fine to do this. In a lot of situations it might be
ok though.
In my situation, I had 5 processes that are triggered at will. If two of
them are triggered more or less at the same time, their data can't be
decimated on the host, because the data is mixed at random.
Regards,
Wiebe.
Hi Wiebe,
Can you clarify? It is not fine to do what? Stream the data to another parrallel loop in the FPGA? or run 3 DMA channels?
Thanks!
Howard
09-21-2007 10:10 AM
09-21-2007 10:35 AM
Hi Wiebe,
Thanks for the clarification. I don't think I would have that problem. I am acquiring 96 bits at once (3 U32s) inside a single cycle timed loop. I would pipeline the data, then during the setup of my next acquisition (ACQ1 thru ACQ4) I would do my FIFO writes (ACQ1 write first U32, ACQ2 write second U32, etc). I'm assuming that since my states are hard-coded in this order the FIFO must contain the data in the correct order, or am I horribly mistaken?
Perhaps you mean if I had three independant loops acquiring data, and each one did it's own FIFO write? I could see how this might cause a problem.....
09-21-2007 03:09 PM - edited 09-21-2007 03:09 PM
Hi,
I'm new at using Labview (coming from the FPGA design world) so please bear with me.
My problem may relate to the original posting, so I thought I should add it to this thread.
I have three channels of data. All are being written at different times, so I assigned each to a unique FPGA to HOST FIFO (using a 7833R FPGA board), call them FIFO1, FIFO2 and FIFO3.
Everything seems OK at the general level, but I find that FIFO3 returns every other word to the Host. The data rate for FIFO3 is 2X the data write for FIFOs 1 and 2. I'm now wondering if all the FIFOs are written to by the FIFO1 write pulse instead their own.
In order to write to the LabView FPGA FIFOs, I put each FIFO into its own single-cycle timed loop. The write strobe, one clock cycle in duration, triggers the single-cycle timed loop. The loop is exited upon deassertion of the write strobe. If there's a better way to do this, please let me know.
I know the write-strobe frequency for each channel is correct because I fed them to I/O and have monitored them with the logic analyzer.
Shouldn't there be three free-running FIFOs written to at their own cadence? Am I missing something fundamental?
Thanks for reading this. Any comments would be most appreciated.
Jayde
Message Edited by jayde on 09-21-2007 03:10 PM