- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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!
Link Copied
1 Reply
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
--- 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.
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page