Showing results for 
Search instead for 
Did you mean: 
Valued Contributor III

Variable Streaming FFT/IFFT Core in SOPC Builder

Hi folks, 


I have a principal question on using the FFT Megacorefunction in SOPC-Builder. 

At first => I already read the posts regarding FFT and SOPC but they did not address my issue. 

I want to use a variable streaming FFT core (as IFFT too) as a co-processing core in my NIOS, memory mapped, system. 

My idea to perform this is: 

1. Generate the core with the megawizard 

2. Write a wrapper, because the streaming interface allows single data only, but the FFT core has 2 (real and imaginary part) => simply a vector concatenation. AND I have to write a Memory Mapped Slave on my own for configuring the variable length and the bit for forward and inverse transform. 

3. Create the component in the SOPC Builder with one streaming and one memory mapped slave interface 

4. => now there is the question how to do the next steps: the input data needs to be transferred from an external memory to the FFT core and then (after some delay) directly transferred back to another (or maybe the same) memory location. 

My idea: Using a SGDMA for the write side (memory to streaming) and one SGDMA for the read side of the FFT (streaming to memory). In software, after initializing the two SGDMA descriptors, I first start the SGDMA used for the FFT output (because it will wait anyway for a SOP from the FFT core) and then I start the SGDMA for the input side of the core. 


Would this solution work, because just trying it takes many days of work? 

Can any Altera expert give me a hint? 


kind regards, 

0 Kudos
1 Reply
Valued Contributor III



it seems nobody has done it so far ;-) 

Just for an update: 

I discovered the "Modular SGDMA Demo" on Altera's website. In this demo, a memory to memory streaming (over Avalon bus) is done with a SGDMA dispatcher where as the read and write side of this dispatcher has a standard ST interface. 

My solution now will be to insert the FFT core (with adapters) between the ST read and write side of this dispatcher. 

I will try this one the next days and post some infos if it really worked. 


have a nice weekend, 

0 Kudos