Community
cancel
Showing results for 
Search instead for 
Did you mean: 
Altera_Forum
Honored Contributor I
1,065 Views

A problem about FFT Megacore Function

I generated a FFT Megacore Function by Megawizard. The transform length is 2048 and streaming architecture is used.  

Then I did the function simulation with Modelsim SE 6.5 and this Megacore Function seems working normally: the source_error signal is always zero and other output flows are also correct.  

 

But when I checked the detail values of source_real and source_imag, I found a problem: for a same block of input data with length of 2048, when it is transfered to the FFT function as the first input block, a different transform results are gotten compared with the transform results gotten when the same input data block is transfered to the FFT function as the second input block. 

 

I am very sure I used a same block of input data, and just the input order was changed, then different transform results were gotten, although the difference is not large. By the way, the transform results are more closer to the results calculated in MATLAB when the input data block is transfered to the FFT function as the first input block. 

 

I totally have no idea about this problem, can anyone help me? Thanks!! 

 

 

Tigre
0 Kudos
4 Replies
Altera_Forum
Honored Contributor I
29 Views

 

--- Quote Start ---  

 

I am very sure I used a same block of input data, and just the input order was changed, then different transform results were gotten, although the difference is not large. By the way, the transform results are more closer to the results calculated in MATLAB when the input data block is transfered to the FFT function as the first input block. 

 

I totally have no idea about this problem, can anyone help me? Thanks!! 

 

Tigre 

--- Quote End ---  

 

 

same fft input frame must produce same output frame. 

check you are missing one or so data or inserting a zero in input or cutting it short or duplicating ...etc at the point you change to second frame. Very common. check directly at input to fft and not somewhere ahead.
Altera_Forum
Honored Contributor I
29 Views

 

--- Quote Start ---  

I generated a FFT Megacore Function by Megawizard. The transform length is 2048 and streaming architecture is used.  

Then I did the function simulation with Modelsim SE 6.5 and this Megacore Function seems working normally: the source_error signal is always zero and other output flows are also correct.  

 

But when I checked the detail values of source_real and source_imag, I found a problem: for a same block of input data with length of 2048, when it is transfered to the FFT function as the first input block, a different transform results are gotten compared with the transform results gotten when the same input data block is transfered to the FFT function as the second input block. 

 

I am very sure I used a same block of input data, and just the input order was changed, then different transform results were gotten, although the difference is not large. By the way, the transform results are more closer to the results calculated in MATLAB when the input data block is transfered to the FFT function as the first input block. 

 

I totally have no idea about this problem, can anyone help me? Thanks!! 

 

 

Tigre 

--- Quote End ---  

 

 

HI 

I‘m also FFT Megacore now,and i have some problems , which achitectures are you using? streaming burst or buffered burst ? I'm using burst ,but I can't understand the fifo in the burst architecture
Altera_Forum
Honored Contributor I
29 Views

 

--- Quote Start ---  

same fft input frame must produce same output frame. 

check you are missing one or so data or inserting a zero in input or cutting it short or duplicating ...etc at the point you change to second frame. Very common. check directly at input to fft and not somewhere ahead. 

--- Quote End ---  

 

 

Thank you for your quick reply! 

 

I have be working on this FFT Megacore beyond 5 days and compared its results with results from MATLAB. All output data flows are correct and the source_error signal is always zero which means, I guess, the FFT Megacore are working normally. Also, I am very sure I used a same block of input data between the sink_sop and sink_eop since I have checked the same data block many times.  

 

In fact, Now I tend to believe that it is a bug of the FFT Megacore function.:(
Altera_Forum
Honored Contributor I
29 Views

 

--- Quote Start ---  

HI 

I‘m also FFT Megacore now,and i have some problems , which achitectures are you using? streaming burst or buffered burst ? I'm using burst ,but I can't understand the fifo in the burst architecture 

--- Quote End ---  

 

 

I tried three operation modes: streaming, buffered burst and burst. The fifo in the FFT Megacore is really obscure. If you are using the burst mode, I recommend you reset the FFT Megacore every time after getting the transform results of last frame and input next frame after the reset signal is deasserted.
Reply