enum conversion explicitly sizes generated params and supports partial types

This commit is contained in:
Zachary Snow
2019-04-18 21:01:29 -04:00
parent 093a4d4dd9
commit 4cbfd8fa1a
4 changed files with 114 additions and 55 deletions
+45 -19
View File
@@ -1,30 +1,56 @@
`define PRINT(val) $display("%02d", val);
`define PRINT(name, val) \
$display("%010x %010x %02d %02d", \
val, val, $bits(dummy``name), $bits(dummy``name));
module top;
reg [31:0] dummyA;
reg [31:0] dummyB;
reg [31:0] dummyC;
reg [31:0] dummyD;
reg [31:0] dummyE;
reg dummyF;
reg [0:0] dummyG;
initial begin
`PRINT(0)
`PRINT(1)
`PRINT(2)
dummyA = 'b10;
dummyB = 'b11;
dummyC = 'b10011;
dummyD = 'b10010;
dummyE = 'b11;
dummyF = 'b1;
dummyG = 'b1;
`PRINT(2)
`PRINT(1)
`PRINT(3)
`PRINT(A, 0)
`PRINT(A, 1)
`PRINT(A, 2)
`PRINT(20)
`PRINT(0)
`PRINT(19)
`PRINT(B, 2)
`PRINT(B, 1)
`PRINT(B, 3)
`PRINT(16)
`PRINT(17)
`PRINT(18)
`PRINT(C, 20)
`PRINT(C, 0)
`PRINT(C, 19)
`PRINT(0)
`PRINT(16)
`PRINT(17)
`PRINT(18)
`PRINT(2)
`PRINT(3)
`PRINT(D, 16)
`PRINT(D, 17)
`PRINT(D, 18)
`PRINT(E, 0)
`PRINT(E, 16)
`PRINT(E, 17)
`PRINT(E, 18)
`PRINT(E, 2)
`PRINT(E, 3)
`PRINT(F, 0)
`PRINT(F, 1)
`PRINT(G, 0)
`PRINT(G, 1)
end
endmodule