summaryrefslogtreecommitdiff
path: root/collatz/collatz_tb.v
blob: c56b13c4a2ab3b2eab7b8f84857db453f73e3dca (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
`timescale 1 ns / 10 ps

module collatz_tb ();
  reg  clk = 0;
  reg  rst = 0;

  wire idle;

  localparam integer DURATION = 500_000;

  always begin
    #41.667;
    clk = ~clk;
  end

  reg [24:0] n = 1_000_000;
  reg start_int;

  wire [24:0] count_out;

  collatz #(
      .WIDTH(32)
  ) ctz (
      .clk(clk),
      .rst(rst),
      .in_start(n),
      .start_int(start_int),
      .o_count(count_out),
      .idle(idle)
  );

  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