Verilog实现的并行FIR滤波器的test bench

憋了好久终于写出来了,初始化时忘记挂起复位信号了,一直没结果,给我到处找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
	
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值