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

FFT 8.0, sink_ready de-asserted

Altera_Forum
Honored Contributor II
889 Views

Hi, 

 

I am trying to test the functionality of FFT version 8.0. The device family that I am using is Cyclone II. Below is the parameter of the FFT: 

 

Transform Length: 64 points 

Data Precision: 8 bits 

Twiddle Precision: 8 bits 

I/O Data Flow: Streaming 

Structure: 4 Mults/2Adders 

Implement Multipliers in: DSP Blocks/Logic Cells 

Twiddle ROM Distribution 100% M4K 

 

As for the FFT input, I wrote a FSM code for it. My input looks fine, sink_sop, sink_eop and sink_valid are where it is suppose to be. However sink_ready was asserted at the beginning, one clock cycle before sink_valid and sink_sop were asserted. Then sink_ready was de-asserted half way before sink_eop (before 64 data ends). As a result, source_error shows “11”; meaning that EOP is asserted before 64 valid samples are accepted.  

 

Since I am using streaming architecture, I thought this architecture allows continuous processing of input data and outputs a continuous complex data stream. So that means the sink_ready was suppose to be asserted all the time isn’t it? Unlike in buffered burst and burst architecture, sink_ready signal will be de-asserted when FIFO is filled. So why for streaming architecture in my case, the sink_ready can be de-asserted causing it unable to accept data? Does anyone know this answer?
0 Kudos
1 Reply
Altera_Forum
Honored Contributor II
183 Views

I have posted a streaming example (FFT_IFFT Unity Gain) on the forum, perhaps that would help you out...  

 

Judging from your statement, I am pretty certain you are inputting data into the core when it's not ready (sink_ready hasn't been asserted yet). Therefore, the core did not get all of the 64 points --> hence your EOP is asserted before 64 valid samples are accepted... and also this is why your sink_ready is de-asserted...  

 

Change your FSM, so you don't insert data points before sink_ready is asserted and that should solve your problem... and also after the change, you will see the sink_ready stays asserted continuously...
0 Kudos
Reply