?? 48_fir_4_tb.v
字號:
`timescale 1 ns / 1 nsmodule filter_tb_48_1; // Parameters parameter clk_high = 20; parameter clk_low = 20; parameter clk_period = 40; parameter clk_hold = 2; // Nets reg clk; reg clk1=0; reg clk_enable; reg reset; reg signed [19:0] filter_in; wire signed [19:0] filter_out; //integer n; //loop variable reg signed [15:0] filter_in_force [0:100]; reg signed [15:0] filter_out_expected [0:100]; /* Function definitions function real abs_real; input real arg; begin abs_real = arg > 0 ? arg : -arg; end endfunction function abs_real*/ // Component Instances base_48_fir u_filter_48 ( .filter_out(filter_out), .filter_in(filter_in), .clk(clk), .reset(reset), .clk_enable(clk_enable), .clk1(clk1) );initial begin filter_in<=1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<=1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; //100 #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<=1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; //200 #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<=1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; //300 #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<=1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 1; #10 filter_in<= 0; #10 filter_in<= 0; #10 filter_in<= 1; //400 end // Block Statements always // clk generation begin : clk_gen clk <= 1'b1; # clk_high; clk <= 1'b0; # clk_low; end //clk_gen; always #5 clk1=~clk1; initial // reset block begin : reset_gen reset <= 1'b1; # (clk_period + clk_hold); reset <= 1'b0; end //reset_gen; initial begin clk_enable <= 1'b0; #13 clk_enable<= 1'b1; end //initial //begin // for(n = 0; n<= 100; n = n + 1) // #10 filter_in<=filter_in_force[n]; //end initial #4000 $finish; endmodule /*initial //The main block begin # clk_period; filter_in <= filter_in_force[0]; # (clk_period*2 + clk_hold); filter_in <= filter_in_force[1]; # clk_period; for (n = 0; n<= 100; n = n + 1) begin if (abs_real($bitstoreal(filter_out) - $bitstoreal(filter_out_expected[n])) >= 1.0e-9) $display("ERROR in filter test at time %t : Expected '%f' Actual '%f'", $time, $bitstoreal(filter_out_expected[n]), $bitstoreal(filter_out)); if (n + 2 <= 100) filter_in <= filter_in_force[n + 2]; # (clk_period); end $display( "**** Test Complete. ****" ); $stop; end */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -