enum.v 1.4 KB
Newer Older
1
`define PRINT(name, val) \
2
    dummy``name = val; \
3
    $display(`"name %h %h %0d %0d`", \
4 5
        val, dummy``name, $bits(val), $bits(dummy``name));

6
module top;
7 8 9 10 11 12

    reg [31:0] dummyA;
    reg [31:0] dummyB;
    reg [31:0] dummyC;
    reg [31:0] dummyD;
    reg [31:0] dummyE;
13
    reg dummyF;
14
    reg [0:0] dummyG;
15
    reg [3:0] dummyH;
16
    reg [31:0] dummyI;
17

18 19
    initial begin

20 21 22
        `PRINT(A, 0)
        `PRINT(A, 1)
        `PRINT(A, 2)
23

24 25 26
        `PRINT(B, 2)
        `PRINT(B, 1)
        `PRINT(B, 3)
27

28 29 30
        `PRINT(C, 20)
        `PRINT(C, 0)
        `PRINT(C, 19)
31

32 33 34
        `PRINT(D, 16)
        `PRINT(D, 17)
        `PRINT(D, 18)
35

36 37 38 39 40 41 42
        `PRINT(E, 0)
        `PRINT(E, 16)
        `PRINT(E, 17)
        `PRINT(E, 18)
        `PRINT(E, 2)
        `PRINT(E, 3)

43 44
        `PRINT(F, 1'b0)
        `PRINT(F, 1'b1)
45

46 47
        `PRINT(G, 1'b0)
        `PRINT(G, 1'b1)
48

49 50
        `PRINT(H, 4'b1)
        `PRINT(H, 4'b0)
51

52 53
        `PRINT(I, 'b0)
        `PRINT(I, 'b1)
54

55
    end
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76

    parameter USE_J = 1;
    generate
        if (USE_J) begin
            reg [31:0] dummyJ;
            initial begin
                `PRINT(J, 0)
                `PRINT(J, 1)
                `PRINT(J, 2)
            end
        end
        else begin
            reg [31:0] dummyZ;
            initial begin
                `PRINT(Z, 0)
                `PRINT(Z, 1)
                `PRINT(Z, 2)
            end
        end
    endgenerate

77
endmodule
78