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

FFT in variable streaming problem

When FFT works in variable streaming,if the input fftpts_in is invariant(such as 1024),the output is right. But if the value of fftpts_in is changed on the posedge of sop,the output of source_real and source_imag is invariant,output sink_ready is 0 and is not pulled up. Any answer will help me ,Thank you!

0 Kudos
1 Reply
Honored Contributor I
22 Views

 

--- Quote Start ---  

When FFT works in variable streaming,if the input fftpts_in is invariant(such as 1024),the output is right. But if the value of fftpts_in is changed on the posedge of sop,the output of source_real and source_imag is invariant,output sink_ready is 0 and is not pulled up. Any answer will help me ,Thank you! 

--- Quote End ---  

 

 

I'm aware that I'm replying to a 3 year old thread, but this answer might help someone else... the reason sink_ready goes low is because the pipeline must empty before being able to accept input data of a different size. So in your control logic, you must wait until sink_ready goes high again before being able to send data of a new size. The method I got to work in simulation was to change fftpts_in on the rising edge of sop, and to send the first element of the array only. Deassert sink_valid for the next cycle, making use of the pause capability built into the FFT IP core. Wait until sink_ready goes high again, then set sink_valid high again, while supplying the 2nd element of your array. You can then continue inputting values and the FFT core IP will function correctly.
0 Kudos