diff --git a/src/Convert/MultiplePacked.hs b/src/Convert/MultiplePacked.hs index f2e22e3..6454695 100644 --- a/src/Convert/MultiplePacked.hs +++ b/src/Convert/MultiplePacked.hs @@ -40,8 +40,10 @@ convert :: [AST] -> [AST] convert = map $ traverseDescriptions convertDescription convertDescription :: Description -> Description -convertDescription = - scopedConversion traverseDeclM traverseModuleItemM traverseStmtM Map.empty +convertDescription part @ Part{} = + scopedConversion traverseDeclM traverseModuleItemM traverseStmtM + Map.empty part +convertDescription other = other -- collects and converts declarations with multiple packed dimensions traverseDeclM :: Decl -> State Info Decl diff --git a/test/basic/array_in_package.sv b/test/basic/array_in_package.sv new file mode 100644 index 0000000..a3ba5ba --- /dev/null +++ b/test/basic/array_in_package.sv @@ -0,0 +1,15 @@ +package pkg; + localparam ARR [3:0][2:0] = 12'h3EA; +endpackage + +module top; + import pkg::*; + initial begin + for (integer i = 0; i < 4; ++i) + for (integer j = 0; j < 3; ++j) + $display("ARR[%0d][%0d] = %0d", i, j, ARR[i][j]); + for (integer i = 0; i < 4; ++i) + for (integer j = 0; j < 3; ++j) + $display("ARR[%0d][%0d] = %0d", i, j, pkg::ARR[i][j]); + end +endmodule diff --git a/test/basic/array_in_package.v b/test/basic/array_in_package.v new file mode 100644 index 0000000..a8e0994 --- /dev/null +++ b/test/basic/array_in_package.v @@ -0,0 +1,12 @@ +module top; + localparam [11:0] ARR = 12'h3EA; + initial begin : foo + integer i, j; + for (i = 0; i < 4; ++i) + for (j = 0; j < 3; ++j) + $display("ARR[%0d][%0d] = %0d", i, j, ARR[i * 3 + j]); + for (i = 0; i < 4; ++i) + for (j = 0; j < 3; ++j) + $display("ARR[%0d][%0d] = %0d", i, j, ARR[i * 3 + j]); + end +endmodule