MATLAB模拟结果与理论不符,FFT核做8192点数据,但是仿真结果和matlab的结果不一致,怎么办?求高手帮忙...
你好,我是先使用一个512点的单端口ROM存储了512点的数据,然后将数据读出送给FFT核做8192点的快速傅里叶变换,但是最后我用modelsim仿真的结果中,只有第一个结果是正确的,后面的都和matlab结果不一样。而且输入数据也是正确的,但就是不知道错哪里了?求求各位帮帮忙吧!源程序如下:module coeff( clk, rst, dina, dv_coe, douta, ...
你好,我是先使用一个512点的单端口ROM存储了512点的数据,然后将数据读出送给FFT核做8192点的快速傅里叶变换,但是最后我用modelsim仿真的结果中,只有第一个结果是正确的,后面的都和matlab结果不一样。而且输入数据也是正确的,但就是不知道错哪里了?求求各位帮帮忙吧!源程序如下: module coeff( clk, rst, dina, dv_coe, douta, xn_re, xn_im, rfd, xn_index, xk_index, xk_re_coeff, xk_im_coeff ); input clk;input rst; input [15 :0] dina; // 使能每次和数据一起做fftoutput dv_coe;output [31 :0] douta;output [7 : 0] xn_re;output [7 : 0] xn_im;output rfd;output [12 : 0] xn_index;output [12 : 0] xk_index;output [21 : 0] xk_re_coeff;output [21 : 0] xk_im_coeff; reg rsta;reg start;reg en;reg [7 : 0] xn_re;reg [7 : 0] xn_im;reg [8 : 0] addra; //------- 由xn_index控制从rom读数always @(posedge clk)beginaddra <= xn_index[8:0];end always @(posedge clk)beginxn_re <= douta [15 : 8];xn_im <= douta [7 : 0];end //-------系数只有512个。不够的后面补零always @(posedge clk)beginif(xn_index>511)rsta <= 1'b1;else rsta <= 1'b0;end core_coeff_rom coeff_core ( .clka(clk), // input clka .rsta(rsta), // input rsta .ena(en), // input ena 控制每次做系数的fft .addra(addra), // input [8 : 0] addra 读数的地址控制 .douta(douta) // output [15 : 0] douta 系数 实部在高位,虚部在低位); //---------start使能-----------always @(posedge clk)beginif(rst) start <= 1'b1;elsestart <= 1'b0;end always @(posedge clk)beginif(rfd) en <= 1'b1;elseen <= 1'b0;end core_coeff_fft coeff_FFT ( .clk(clk), // input clk .start(start), // input start .xn_re(xn_re), // input [7 : 0] xn_re .xn_im(xn_im), // input [7 : 0] xn_im .fwd_inv(1), // input fwd_inv .fwd_inv_we(1), // input fwd_inv_we .rfd(rfd), // output rfd 输入数据有效 .xn_index(xn_index), // output [12 : 0] xn_index .busy(busy), // output busy .edone(edone), // output edone .done(done), // output done .dv(dv_coe), // output dv 输出数据有效 .xk_index(xk_index), // output [12 : 0] xk_index .xk_re(xk_re_coeff), // output [21 : 0] xk_re .xk_im(xk_im_coeff) // output [21 : 0] xk_im); endmodule

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)