fix single bit enum sizing

- single bit localparams retain explicit range
- fix $bits on unsized literals
- use Implicit over Maybe for underlying type
This commit is contained in:
Zachary Snow
2020-06-05 21:32:02 -04:00
parent 97b2d1d166
commit ae392d4536
9 changed files with 41 additions and 64 deletions
+6 -11
View File
@@ -1,13 +1,8 @@
`define PRINT(name, val) \
dummy``name = val; \
$display("%h %h %0d %0d", \
$display(`"name %h %h %0d %0d`", \
val, dummy``name, $bits(val), $bits(dummy``name));
`define PRINT_UNSIZED(name, val) \
dummy``name = val; \
$display("%h %h %0d", \
val, dummy``name, $bits(dummy``name));
module top;
reg [31:0] dummyA;
@@ -15,7 +10,7 @@ module top;
reg [31:0] dummyC;
reg [31:0] dummyD;
reg [31:0] dummyE;
reg [0:0] dummyF;
reg dummyF;
reg [0:0] dummyG;
reg [3:0] dummyH;
reg [31:0] dummyI;
@@ -51,11 +46,11 @@ module top;
`PRINT(G, 1'b0)
`PRINT(G, 1'b1)
`PRINT_UNSIZED(H, 'b1)
`PRINT_UNSIZED(H, 'b0)
`PRINT(H, 4'b1)
`PRINT(H, 4'b0)
`PRINT_UNSIZED(I, 'b0)
`PRINT_UNSIZED(I, 'b1)
`PRINT(I, 'b0)
`PRINT(I, 'b1)
end