DSP HDL Toolbox FFT Throughput
3 views (last 30 days)
Show older comments
Kevin
on 27 Sep 2023
Commented: Bharath Venkataraman
on 6 Oct 2023
I am trying to determine the throughput of the DSP HDL Toolbox FFT that uses Streaming Radix-2^2 architecture.
My FFT is 1024 point and the input vector size is 64 (max value). The latency on the block says its 84 and my clock is running at 333 MHz.
How does the FFT deal with the number of samples (requires 1024 for 1024 pt fft?) and what would the overall throughput of my system be?
0 Comments
Accepted Answer
Bharath Venkataraman
on 27 Sep 2023
Edited: Bharath Venkataraman
on 2 Oct 2023
I would recommend synthesizing the design to make sure that your constraints of 333MHz are met. Assuming that is the case, you are able to process 64 samples at 333MHz, so your throughput is 333MHz*64 samples/clock = 21.312Gsps. If this throughput is higher than what you need, I would suggest reducing the input vector size to reduce the area of the design (as well as its power).
While there is a latency of 84 clocks, the FFT itself accepts data every clock cycle. The blocks assumes that frame is formed by samples fed in over 16 clock cycles since you are feeding in 64 samples at a time (64*16=1024).
2 Comments
Bharath Venkataraman
on 6 Oct 2023
You are correct that the Burst Radix-2 architecture takes a longer time to process the data with the benefit of using far fewer resources (1 butterfly). In this case, assuming the same frequency (333 MHz), you are able to process 1024 samples in 1024 + 5811 = 6835 clocks, so your throughput is 333 MHz * 1024/6835 = 49 Msps.
Note that you can use the Streaming architecture but feed it fewer samples per clock. Running the streaming architecture at 333 MHz sending in one sample at a time gives you a throughput of 333 Msps. You can of course pass in 2, 4, 8,16, 32 or 64 samples per clock to increase the throughput. For example, sending in 2 samples per clock into the streaming architecture gets you 333 MHz * 2 = 666 Msps.
To conclude, you can go anywhere between 49 Msps to 21.3 Gsps using the appropriate architecture and sending in the right amount of data in.
More Answers (0)
See Also
Categories
Find more on HDL Code Generation in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!