憋了好久终于写出来了,初始化时忘记挂起复位信号了,一直没结果,给我到处找BUG,包折磨的,然后tb不知带为什么仿真时读取不了文件,直接暴力全部初始化了
`timescale 1 ps /1 ps
module test;
reg clk;
reg rstn;
reg en;
reg [11:0] data_i;
wire val;
wire [28:0] data_o;
// wire[24:0] mout;
// wire [11:0] trans4;
//50Mhz clk
localparam CLK_HALF=10_000;
initial begin
forever begin
clk = 0;
#CLK_HALF;
clk = 1;
#CLK_HALF;
end
end
parameter SIMU_CYCLE = 64'd2000 ; //一共仿真的周期数
parameter SIN_DATA_NUM = 200 ; //输出波形的长度
initial begin
rstn=1'b1;
rstn=1'b0;
#50;
rstn=1'b1;
#(CLK_HALF*2*SIMU_CYCLE);
$finish;
end
reg [11:0] stimulus [199:0] ;
integer i ;
initial begin
stimulus[199] <= 12'hE53;
stimulus[198] <= 12'hAB0;
stimulus[197] <= 12'h814;
stimulus[196] <= 12'h8A4;
stimulus[195] <= 12'hBE6;
stimulus[194] <= 12'hF26;
stimulus[193] <= 12'hFB3;
stimulus[192] <= 12'hD12;
stimulus[191] <= 12'h968;
stimulus[190] <= 12'h7B3;
stimulus[189] <= 12'h954;
stimulus[188] <= 12'hCEA;
stimulus[187] <= 12'hF77;
stimulus[186] <= 12'hED6;
stimulus[185] <= 12'hB81;
stimulus[184] <= 12'h82C;
stimulus[183] <= 12'h789;
stimulus[182] <= 12'hA11;
stimulus[181] <= 12'hDA0;
stimulus[180] <= 12'hF39;
stimulus[179] <= 12'hD7A;
stimulus[178] <= 12'h9C4;
stimulus[177] <= 12'h716;
stimulus[176] <= 12'h793;
stimulus[175] <= 12'hAC3;
stimulus[174] <= 12'hDF2;
stimulus[173] <= 12'hE6D;
stimulus[172] <= 12'hBBB;
stimulus[171] <= 12'h800;
stimulus[170] <= 12'h63B;
stimulus[169] <= 12'h7CC;
stimulus[168] <= 12'hB52;
stimulus[167] <= 12'hDCF;
stimulus[166] <= 12'hD20;
stimulus[165] <= 12'h9BD;
stimulus[164] <= 12'h659;
stimulus[163] <= 12'h5A8;
stimulus[162] <= 12'h823;
stimulus[161] <= 12'hBA6;
stimulus[160] <= 12'hD33;
stimulus[159] <= 12'hB68;
stimulus[158] <= 12'h7A8;
stimulus[157] <= 12'h4EF;
stimulus[156] <= 12'h562;
stimulus[155] <= 12'h888;
stimulus[154] <= 12'hBAE;
stimulus[153] <= 12'hC21;
stimulus[152] <= 12'h967;
stimulus[151] <= 12'h5A6;
stimulus[150] <= 12'h3DA;
stimulus[149] <= 12'h565;
stimulus[148] <= 12'h8E5;
stimulus[147] <= 12'hB5E;
stimulus[146] <= 12'hAAB;
stimulus[145] <= 12'h744;
stimulus[144] <= 12'h3DE;
stimulus[143] <= 12'h32B;
stimulus[142] <= 12'h5A4;
stimulus[141] <= 12'h926;
stimulus[140] <= 12'hAB2;
stimulus[139] <= 12'h8E8;
stimulus[138] <= 12'h529;
stimulus[137] <= 12'h271;
stimulus[136] <= 12'h2E7;
stimulus[135] <= 12'h610;
stimulus[134] <= 12'h939;
stimulus[133] <= 12'h9B0;
stimulus[132] <= 12'h6FB;
stimulus[131] <= 12'h33F;
stimulus[130] <= 12'h179;
stimulus[129] <= 12'h30A;
stimulus[128] <= 12'h692;
stimulus[127] <= 12'h912;
stimulus[126] <= 12'h867;
stimulus[125] <= 12'h509;
stimulus[124] <= 12'h1AD;
stimulus[123] <= 12'h103;
stimulus[122] <= 12'h388;
stimulus[121] <= 12'h714;
stimulus[120] <= 12'h8AC;
stimulus[119] <= 12'h6EE;
stimulus[118] <= 12'h33B;
stimulus[117] <= 12'h91;
stimulus[116] <= 12'h114;
stimulus[115] <= 12'h44B;
stimulus[114] <= 12'h783;
stimulus[113] <= 12'h809;
stimulus[112] <= 12'h563;
stimulus[111] <= 12'h1B6;
stimulus[110] <= 12'h001;
stimulus[109] <= 12'h1A2;
stimulus[108] <= 12'h53B;
stimulus[107] <= 12'h7CC;
stimulus[106] <= 12'h733;
stimulus[105] <= 12'h3E7;
stimulus[104] <= 12'h09C;
stimulus[103] <= 12'h005;
stimulus[102] <= 12'h29C;
stimulus[101] <= 12'h63C;
stimulus[100] <= 12'h7E6;
stimulus[99] <= 12'h63C;
stimulus[98] <= 12'h29C;
stimulus[97] <= 12'h005;
stimulus[96] <= 12'h09C;
stimulus[95] <= 12'h3E7;
stimulus[94] <= 12'h733;
stimulus[93] <= 12'h7CC;
stimulus[92] <= 12'h53B;
stimulus[91] <= 12'h1A2;
stimulus[90] <= 12'h001;
stimulus[89] <= 12'h1B6;
stimulus[88] <= 12'h563;
stimulus[87] <= 12'h809;
stimulus[86] <= 12'h783;
stimulus[85] <= 12'h44B;
stimulus[84] <= 12'h114;
stimulus[83] <= 12'h091;
stimulus[82] <= 12'h33B;
stimulus[81] <= 12'h6EE;
stimulus[80] <= 12'h8AC;
stimulus[79] <= 12'h714;
stimulus[78] <= 12'h388;
stimulus[77] <= 12'h103;
stimulus[76] <= 12'h1AD;
stimulus[75] <= 12'h509;
stimulus[74] <= 12'h867;
stimulus[73] <= 12'h912;
stimulus[72] <= 12'h692;
stimulus[71] <= 12'h30A;
stimulus[70] <= 12'h179;
stimulus[69] <= 12'h33F;
stimulus[68] <= 12'h6FB;
stimulus[67] <= 12'h9B0;
stimulus[66] <= 12'h939;
stimulus[65] <= 12'h610;
stimulus[64] <= 12'h2E7;
stimulus[63] <= 12'h271;
stimulus[62] <= 12'h529;
stimulus[61] <= 12'h8E8;
stimulus[60] <= 12'hAB2;
stimulus[59] <= 12'h926;
stimulus[58] <= 12'h5A4;
stimulus[57] <= 12'h32B;
stimulus[56] <= 12'h3DE;
stimulus[55] <= 12'h744;
stimulus[54] <= 12'hAAB;
stimulus[53] <= 12'hB5E;
stimulus[52] <= 12'h8E5;
stimulus[51] <= 12'h565;
stimulus[50] <= 12'h3DA;
stimulus[49] <= 12'h5A6;
stimulus[48] <= 12'h967;
stimulus[47] <= 12'hC21;
stimulus[46] <= 12'hBAE;
stimulus[45] <= 12'h888;
stimulus[44] <= 12'h562;
stimulus[43] <= 12'h4EF;
stimulus[42] <= 12'h7A8;
stimulus[41] <= 12'hB68;
stimulus[40] <= 12'hD33;
stimulus[39] <= 12'hBA6;
stimulus[38] <= 12'h823;
stimulus[37] <= 12'h5A8;
stimulus[36] <= 12'h659;
stimulus[35] <= 12'h9BD;
stimulus[34] <= 12'hD20;
stimulus[33] <= 12'hDCF;
stimulus[32] <= 12'hB52;
stimulus[31] <= 12'h7CC;
stimulus[30] <= 12'h63B;
stimulus[29] <= 12'h800;
stimulus[28] <= 12'hBBB;
stimulus[27] <= 12'hE6D;
stimulus[26] <= 12'hDF2;
stimulus[25] <= 12'hAC3;
stimulus[24] <= 12'h793;
stimulus[23] <= 12'h716;
stimulus[22] <= 12'h9C4;
stimulus[21] <= 12'hD7A;
stimulus[20] <= 12'hF39;
stimulus[19] <= 12'hDA0;
stimulus[18] <= 12'hA11;
stimulus[17] <= 12'h789;
stimulus[16] <= 12'h82C;
stimulus[15] <= 12'hB81;
stimulus[14] <= 12'hED6;
stimulus[13] <= 12'hF77;
stimulus[12] <= 12'hCEA;
stimulus[11] <= 12'h954;
stimulus[10] <= 12'h7B3;
stimulus[9] <= 12'h968;
stimulus[8] <= 12'hD12;
stimulus[7] <= 12'hFB3;
stimulus[6] <= 12'hF26;
stimulus[5] <= 12'hBE6;
stimulus[4] <= 12'h8A4;
stimulus[3] <= 12'h814;
stimulus[2] <= 12'hAB0;
stimulus[1] <= 12'hE53;
end
initial begin
i = 0 ;
en = 0 ;
data_i = 0 ;
# 200 ;
forever begin
@(negedge clk) begin
en = 1'b1 ;
data_i = stimulus[i] ;
if (i == SIN_DATA_NUM-1) begin //周期送入数据控制
i = 0 ;
end
else begin
i = i + 1 ;
end
end
end
end
RIF_filter My_filter(
.CLK(clk),
.RSTN(rstn),
.EN(en),
.DATA_I(data_i),
.VAL(val),
.DATA_O(data_o));
endmodule