FPGA Intellectual Property
PCI Express*, Networking and Connectivity, Memory Interfaces, DSP IP, and Video IP
6372 Discussions

The 4 operating modes of the FFT

Altera_Forum
Honored Contributor II
1,262 Views

Hi, 

 

I'm analyzing the FFT 7.2 Megacore and I have it working with DSP Builder (and also on an evaluation board) using the streaming mode. 

 

I would like to understand the 3 other modes : Variable Streaming, Burst and Buffered Burst. 

 

I have read of course the FFT User's Guide but when it comes to implementing the 3 other modes, I'm getting confused. Can someone explain in plain english what are the main characteristics of each mode? What are the pros and cons of each solution? 

 

Does anyone as a DSP Builder sample code for each options? 

 

Thanks
0 Kudos
6 Replies
Altera_Forum
Honored Contributor II
268 Views

Burst FFT: The burst FFT process one frame of data at a time. The core needs to finish processing and outputting that one frame of data before it can accept more inputs. 

 

Buffered burst FFT: The buffered burst FFT takes a couple frames of data at a time. The core would need to finish processing those couple frame of data before it can accept more inputs. 

 

Note: Buffered burst, burst and streaming FFT all use Block Floating Point algorithm. 

 

Variable Streaming FFT: This is a streaming FFT. However, you can run-time configure the FFT size if you want. For example, if I have a 1024 point VS FFT, then I can change the FFT size on the fly (anywhere up to 1024 points). The change would apply to the subsequent packet. 

 

Note: Variable streaming uses a radix 2^2 structure and it support fixed point (allows for natural bit growth) and floating point (IEEE 754 single point precision).  

 

Also I recommend using the 8.0 version of FFT. Due to the interaction between the built in Avalon ST FIFO and the FFT core, the burst and buffered burst modes don't really behave correctly. (Take burst for example, rather than taking one frame of data, then core would have to take one frame + the next couple samples from the subsequent frame, before it would start computing). I heard that problem has been fixed in the 8.0 release... 

 

I will post some examples later if I can find them on my machine... 

 

Hope this helps...
0 Kudos
Altera_Forum
Honored Contributor II
268 Views

of course, you can use use VS to simulate the other modes (by controlling the sink_valid signal)...  

 

Here is a sample design that I built... using VS FFT to simulate a bursty FFT... (also includes a Verilog state machine to control the FFT)... 

 

Version: 7.2
0 Kudos
Altera_Forum
Honored Contributor II
268 Views

Hello! 

 

Wronghorizon, I was going through some of your code for the FFT control to familiarize myself with what's needed. I was able to understand the code except for one parameter, PULSE_BW_FM. What is it used for? 

 

Thanks! 

 

fpga_beginner
0 Kudos
Altera_Forum
Honored Contributor II
268 Views

Sorry for the long absence, have been distracted at work and have not been able to check the forum as regularly as I want... Anyhow, I was simply trying to use the VS FFT in a burst-like fashion... therefore, the PULSE_BW_FM (actually I should have named it PAUSE_BW_FM) simply states the number of idle cycles between each frame of data...

0 Kudos
Altera_Forum
Honored Contributor II
268 Views

Thanks wronghorizon! 

 

I actually figured it out what the variable was using waveform testing - I noticed the delay in inputting data to the engine. 

 

Appreciate the reply
0 Kudos
Altera_Forum
Honored Contributor II
268 Views

It is reasonable.

0 Kudos
Reply