.event_data_in_channel_halt(event_data_in_channel_halt), // output wire event_data_in_channel_halt
.event_data_out_channel_halt(event_data_out_channel_halt) // output wire event_data_out_channel_halt
);
initial begin
// Initialize Inputs
aclk = 0;
aresetn = 0;
s_axis_config_tvalid = 0;
s_axis_config_tdata = 0;
s_axis_data_tvalid = 0;
s_axis_data_tdata = 0;
s_axis_data_tlast = 0;
m_axis_data_tready = 0;
// Wait 150 ns for global reset to finish
#150;
aresetn = 1;
m_axis_data_tready = 1;
s_axis_config_tvalid = 1;
//s_axis_config_tdata = 16'b10110101011; // 512points bit0-9 sclae_sch bit10 fwd/ivs 这样配置不对 FFT desired (and not IFFT
//s_axis_config_tdata = 16'b01101010111; // 512points bit1-10 sclae_sch bit0 fwd/ivs 按这组数据配置结果缩小了1000倍 FFT desired (and not IFFT
//s_axis_config_tdata = 16'b00000000001; // 512points result 与下一种情况一致
s_axis_config_tdata = 1'b1; // 配置fwd 512 or 1024 points 配置unscale 情况 位宽有进位 输出位宽要对应 结果正确正确!!!!!
//s_axis_config_tdata = 16'b1101101010111;//4096points bit1-12 sclae_sch bit0 fwd/ivs
//s_axis_data_tlast = 1;
s_axis_data_tdata = 48'h000000;
s_axis_data_tvalid = 0;
#10
s_axis_config_tvalid = 0;
begin
for(i=0;i<1024;i=i+1) begin
#10
s_axis_data_tvalid <= 1;
s_axis_data_tdata <= {{24'h000000},mem0_re[i]};
$display("mem_a[%d] = %h", i, mem0_re[i]);
end
end
assign XK_RE = m_axis_data_tdata[39:0];
assign XK_IM = m_axis_data_tdata[79:40];
#10;
s_axis_data_tdata = 48'h000000;
s_axis_data_tvalid = 0;
#400000 $finish;
end
endmodule
/*test smaple 1 N=8 (?????s_axis_config_tdata = 8'b00000001);
s_axis_data_tdata =[1.1 2.1 3.1 4.1 5.1 6.1 7.1 8.1] 16位定点小数
s_axis_data_tdata =[1199a 2199a 3199a 4199a 5199a 6199a 7199a 8199a] 16位定点小数
vivado_result 00000024ccd0 09a820fc0000 040000fc0000 01a820fc0000 000000fc0000 fe57e0fc0000 fc0000fc0000 f657e0fc0000
matlab_result 36.8000+0.0000i -4.0000+9.6569i -4.0000+4.0000i -4.0000+1.6569i -4.0000+0.0000i -4.0000-1.6569i -4.0000-4.0000i -4.0000-9.6569i
s_axis_config_tdata = 8'b00000000或者不配置
vivado_result 00000024ccd0 f657e0fc0000