blob: b64c436953df6edd963948820bbbff2315207ea0 [file] [log] [blame] [edit]
typedef enum {
A_1, A_2, A_3
} EnumA;
typedef enum {
B_1 = 2, B_2 = 1, B_3 = 3
} EnumB;
typedef enum {
C_1 = 20, C_2 = 0, C_3 = 19
} EnumC;
typedef enum {
D_1 = 'h10, D_2, D_3
} EnumD;
typedef enum {
E_1, E_2 = 'h10, E_3, E_4, E_5 = 'b10, E_6
} EnumE;
typedef enum logic {
F_1, F_2
} EnumF;
typedef enum [0:0] {
G_1, G_2
} EnumG;
`define PRINT(name, val) \
dummy``name = name``_``val; \
$display("%h %h %0d %0d", \
name``_``val, dummy``name, $bits(name``_``val), $bits(dummy``name));
module top;
EnumA dummyA;
EnumB dummyB;
EnumC dummyC;
EnumD dummyD;
EnumE dummyE;
EnumF dummyF;
EnumG dummyG;
initial begin
`PRINT(A, 1)
`PRINT(A, 2)
`PRINT(A, 3)
`PRINT(B, 1)
`PRINT(B, 2)
`PRINT(B, 3)
`PRINT(C, 1)
`PRINT(C, 2)
`PRINT(C, 3)
`PRINT(D, 1)
`PRINT(D, 2)
`PRINT(D, 3)
`PRINT(E, 1)
`PRINT(E, 2)
`PRINT(E, 3)
`PRINT(E, 4)
`PRINT(E, 5)
`PRINT(E, 6)
`PRINT(F, 1)
`PRINT(F, 2)
`PRINT(G, 1)
`PRINT(G, 2)
end
endmodule