- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,everybody.
RecentlyI have used the FFT core 8.0 and occured some problems. In the dsp builer,I simulate the FFT and cascaded the IFFT module.The input signal is sine wave.The result is just right,output of real is sine wave.And then,I do this processing in the Quartus II: Firstly,I set a ad-da sampling module for sampling signal from the outside of the borad.When the signal comes out of ad-sampling module,I directly send the signal to FFT and IFFT module,and in the end the result is abnormity(frequency is as same as the input ,but wave form is abnormal having some glitches). So I try to find the problem,I guess the signal can't directly send to the FFT core,may be processed as a frame form(256 points,FFT points is 256,streaming).I add a fifo as a buffer but it doesn't work.I don't know how to set the signal as a 256 point frame. Any help will be appreciated. ps: FFT control module.I try to frame the input signal in this module,it doesn't work. module input_ctrl(clk,reset_n,sink_ready,ad_in,sink_sop,sink_eop,sink_valid,real_in,imag_in,sink_error); input clk; input reset_n; input sink_ready; //input full; input [15:0] ad_in; output sink_sop; output sink_eop; output sink_valid; output [15:0] real_in; output [15:0] imag_in; output [1:0] sink_error; reg [7:0] count; reg sink_sop_r; reg sink_eop_r; reg [15:0] in_mem [255:0]; reg [15:0]real_in; assign sink_error=2'b00; assign sink_valid=sink_ready; assign imag_in=16'b0000000000000000; always @(posedge clk) begin if(reset_n==0) count<=0; else begin if (sink_ready == 1) if (count == 0) begin sink_sop_r <= 1'b1; sink_eop_r <= 1'b0; // assert sop //sink_valid <=1'b1; count <= count + 1; in_mem[count]<=ad_in; real_in<=in_mem[count]; end else if (count == 255) begin sink_eop_r <= 1'b1; in_mem[count]<=ad_in; real_in<=in_mem[count]; count <= 0; end else begin in_mem[count]<=ad_in; real_in<=in_mem[count]; count <= count+1; sink_sop_r <=0; sink_eop_r <=0; end end end assign sink_sop =sink_sop_r; assign sink_eop =sink_eop_r; endmoduleLink Copied
0 Replies
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