aboutsummaryrefslogtreecommitdiff
path: root/bcd_to_seven_test.v
blob: 07aaca1aa7f127c30b5aba8fc54af1f9b294ac9d (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
`define test(EXPECTED) if (sseg_out !== EXPECTED) begin \
  $error(bin_in, sseg_out); $finish; end

module bcd_to_seven_test;
  reg  [3:0]   bin_in;
  wire [7:0] sseg_out;
  integer           i;
  
  bcd_to_seven to (.bin_in(bin_in), .sseg_out(sseg_out));
  initial begin
    $dumpfile("wave.vcd");
    $dumpvars(0, bcd_to_seven_test);

    for (i = 0; i < 16; i = i + 1) begin
      bin_in = i;

      #10;

      $display("bin_in = %b, sseg_out = %b", bin_in, sseg_out);
      
      case(bin_in)
        4'b0000: begin `test(8'b11000000); end
        4'b0001: begin `test(8'b11111001); end
        4'b0010: begin `test(8'b10100100); end
        4'b0011: begin `test(8'b10110000); end
        4'b0100: begin `test(8'b10011001); end
        4'b0101: begin `test(8'b10010010); end
        4'b0110: begin `test(8'b10000010); end
        4'b0111: begin `test(8'b11111000); end
        4'b1000: begin `test(8'b10000000); end
        4'b1001: begin `test(8'b10010000); end
        4'b1010: begin `test(8'b10001000); end
        4'b1011: begin `test(8'b10000011); end
        4'b1100: begin `test(8'b11000110); end
        4'b1101: begin `test(8'b10100001); end
        4'b1110: begin `test(8'b10000110); end
        4'b1111: begin `test(8'b10001110); end
        default: begin `test(8'b11111111); end
      endcase
    end

    $finish;
  end
endmodule