We have detected your current browser version is not the latest one. Xilinx.com uses the latest web technologies to bring you the best online experience possible. Please upgrade to a Xilinx.com supported browser:Chrome, Firefox, Internet Explorer 11, Safari. Thank you!

Showing results for 
Search instead for 
Did you mean: 
Visitor trexmsuee
Registered: ‎07-21-2015

Synchronizing Multiple AXI Data Streams thru Combiner with FIFOs



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!



AXI Stream Question.jpg
0 Kudos
2 Replies
Teacher muzaffer
Registered: ‎03-31-2012

Re: Synchronizing Multiple AXI Data Streams thru Combiner with FIFOs

I don't think you need two fifos. Just one fifo after the stream duplicator no fft path. Design a small block which waits for fft output to be valid and generate the same ready signal to both fft & fifo. I think you should be able to drain both fft & the fifo in lock step and write the results to a wider axi-stream for ps to read.
- Please mark the Answer as "Accept as solution" if information provided is helpful.
Give Kudos to a post which you think is helpful and reply oriented.
0 Kudos
Visitor trexmsuee
Registered: ‎07-21-2015

Re: Synchronizing Multiple AXI Data Streams thru Combiner with FIFOs

Thank you muzaffer for your prompt response! I will try this tonight/tomorrow and post the results. -Best Regards,
0 Kudos