`timescale 1ns / 1ps module tb( ); localparam KKK = 3/2 + 3/2; reg clk = 0; reg in = 0; always #5 clk = ~clk; reg reset = 1; reg data = 0; wire shift_ena; wire counting; wire st_shift_ena; wire st_counting; reg done_counting = 0; wire done; wire st_done; reg ack = 0; initial begin data <= 0; reset <= 1; done_counting <= 0; ack <= 0; @(posedge clk); @(posedge clk); reset <= 0; data <= 1; @(posedge clk); data <= 0; @(posedge clk); data <= 0; @(posedge clk); data <= 1; @(posedge clk); data <= 1; @(posedge clk); data <= 0; @(posedge clk); data <= 1; @(posedge clk); data <= 0; @(posedge clk); data <= 0; @(posedge clk); data <= 1; @(posedge clk); data <= 1; @(posedge clk); data <= 0; @(posedge clk); data <= 1; @(posedge clk); @(posedge clk); data <= 1; @(posedge clk); data <= 1; @(posedge clk); data <= 0; @(posedge clk); data <= 1; @(posedge clk); @(posedge clk); done_counting <= 1; @(posedge clk); done_counting <= 0; @(posedge clk); @(posedge clk); data <= 1; @(posedge clk); data <= 1; @(posedge clk); data <= 0; @(posedge clk); data <= 1; @(posedge clk); @(posedge clk); ack <= 1; @(posedge clk); ack <= 0; #200; $stop; end testbench testbench_inst ( .clk (clk), .reset (reset), // Synchronous reset .data (data), .shift_ena (shift_ena), .counting (counting), .done_counting (done_counting), .done (done), .ack (ack) ); //top_module top_module_inst //( // .clk (clk), // .reset (reset), // Synchronous reset // .data (data), // // .shift_ena (st_shift_ena), // .counting (st_counting), // // .done_counting (done_counting), // .done (st_done), // .ack (ack) //); endmodule