DSP HDL Toolbox FFT Throughput
3 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Kevin
le 27 Sep 2023
Commenté : Bharath Venkataraman
le 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 commentaires
Réponse acceptée
Bharath Venkataraman
le 27 Sep 2023
Modifié(e) : Bharath Venkataraman
le 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 commentaires
Bharath Venkataraman
le 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.
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur HDL Code Generation dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!