mirror of https://github.com/zachjs/sv2v.git
enum conversion covers nested module items (resolves #70)
This commit is contained in:
parent
463cdcb2c1
commit
799141af42
|
|
@ -83,8 +83,9 @@ convergeUsage items enums =
|
|||
(usedEnums, unusedEnums) = partition isUsed enums
|
||||
enumItems = map MIPackageItem $ map toItem usedEnums
|
||||
isUsed ((_, x), _) = Set.member x usedIdents
|
||||
usedIdents = execWriter $
|
||||
mapM (collectExprsM $ collectNestedExprsM collectIdent) $ items
|
||||
usedIdents = execWriter $ mapM collectModuleItemM items
|
||||
collectModuleItemM = collectNestedModuleItemsM $ collectExprsM $
|
||||
collectNestedExprsM collectIdent
|
||||
collectIdent :: Expr -> Writer Idents ()
|
||||
collectIdent (Ident x) = tell $ Set.singleton x
|
||||
collectIdent _ = return ()
|
||||
|
|
|
|||
|
|
@ -35,6 +35,14 @@ typedef enum int {
|
|||
I_1, I_2
|
||||
} EnumI;
|
||||
|
||||
typedef enum int {
|
||||
J_1, J_2, J_3
|
||||
} EnumJ;
|
||||
|
||||
typedef enum int {
|
||||
Z_1, Z_2, Z_3
|
||||
} EnumZ;
|
||||
|
||||
`define PRINT(name, val) \
|
||||
dummy``name = name``_``val; \
|
||||
$display("%h %h %0d %0d", \
|
||||
|
|
@ -94,4 +102,25 @@ module top;
|
|||
`PRINT_UNSIZED(I, 2)
|
||||
|
||||
end
|
||||
|
||||
parameter USE_J = 1;
|
||||
generate
|
||||
if (USE_J) begin
|
||||
EnumJ dummyJ;
|
||||
initial begin
|
||||
`PRINT(J, 1)
|
||||
`PRINT(J, 2)
|
||||
`PRINT(J, 3)
|
||||
end
|
||||
end
|
||||
else begin
|
||||
EnumZ dummyZ;
|
||||
initial begin
|
||||
`PRINT(Z, 1)
|
||||
`PRINT(Z, 2)
|
||||
`PRINT(Z, 3)
|
||||
end
|
||||
end
|
||||
endgenerate
|
||||
|
||||
endmodule
|
||||
|
|
|
|||
|
|
@ -58,5 +58,26 @@ module top;
|
|||
`PRINT_UNSIZED(I, 'b1)
|
||||
|
||||
end
|
||||
|
||||
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
|
||||
|
||||
endmodule
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue