07-21-2015 03:34 PM
I am a relatively new user, so I hope this question is relevant for others and not redundant. Please reference the attached diagram.
I am processing data from a source peripherial via an AXI stream to the PS using DMA. I have this working fine, except for following case. I would like to FFT the data on-the-fly, and align it with the raw sample data. This is to establish sample-by-sample synchronicity with the raw data, and to make it really easy to do post-processing.
My attempt was this: I first expand the width of the single-precision floating point data from 32 to 64 bits, which accomodates the IM component of the data vector, which is zero, as required by the FFT. Next, the stream is split. One stream is sent to a pipeline FFT (N=256). The other stream is not processed. The FFT reports a latency of 7.6, which is the reason for the FIFOs.
I'd like to combine the data into a single stream. Each element in the frame would be a row vector 16-bytes wide (8-bytes for the RE/IM component of the raw data, plus 8 bytes for the RE/IM component of the FFT data).
I am struggling with recombining/synchronizing the two streams. I've tried numerous combinations of FIFOs, packet store-and-forwarding, logical manipulations of the TREADY/TVALID bits, and so fort. No luck. The result is either data stalls or DMA errors.
Again, I can implement one or the other just fine. With floating point data, the FFT gives the correct result. I am also using the stream combiner on a similar application which works fine. The problem is related to the attempt to recombine the two data streams.
Thank you very much for any input!
07-21-2015 04:10 PM