`timescale 1 ns / 10 ps module collatz_tb (); reg clk = 0; reg rst = 0; wire finish; localparam integer DURATION = 10_000; always begin #41.667; clk = ~ clk; end reg [15:0] n = 9; reg start_int; wire [15:0] count_out; collatz ctz ( .clk(clk), .rst(rst), .in_start(n), .start_int(start_int), .o_count(count_out), .finish_int(finish) ); initial begin #10 rst = 1'b1; #1 rst = 1'b0; end initial begin $dumpfile("collatz_tb.vcd"); $dumpvars(0, collatz_tb); #50 start_int = 1; #10 start_int = 0; #(DURATION); $display("Finished!"); $finish; end endmodule