Commit 275130e0 by Zachary Snow

move package param step to conversion

parent 821b8bc9
......@@ -45,11 +45,15 @@ convert files =
where
(files', packages') = convertPackages files
pis = Map.fromList $
concatMap (concatMap toPackageItems . snd) $
concatMap (concatMap (toPackageItems . makeLocal) . snd) $
filter (not . Map.null . fst) $
Map.elems packages'
toPackageItems :: PackageItem -> [(Identifier, PackageItem)]
toPackageItems item = map (, item) (piNames item)
makeLocal :: PackageItem -> PackageItem
makeLocal (Decl (Param _ t x e)) = Decl $ Param Localparam t x e
makeLocal (Decl (ParamType _ x t)) = Decl $ ParamType Localparam x t
makeLocal other = other
-- utility for inserting package items into a set of module items as needed
inject :: [PackageItem] -> [ModuleItem] -> [ModuleItem]
......
......@@ -834,7 +834,7 @@ PackageItems :: { [PackageItem] }
| PITrace PackageItem PackageItems { $1 : $2 ++ $3 }
PackageItem :: { [PackageItem] }
: DeclTokens(";") { map Decl $ parseDTsAsDecls $1 }
| ParameterDecl(";") { map (Decl . makeLocalparam) $1 }
| ParameterDecl(";") { map Decl $1 }
| NonDeclPackageItem { $1 }
NonDeclPackageItem :: { [PackageItem] }
: "typedef" Type Identifier ";" { [Decl $ ParamType Localparam $3 $2] }
......@@ -1474,9 +1474,4 @@ validateGenCases items =
where
(exprs, _) = unzip items
makeLocalparam :: Decl -> Decl
makeLocalparam (Param _ t x e) = Param Localparam t x e
makeLocalparam (ParamType _ x t) = ParamType Localparam x t
makeLocalparam other = other
}
package P;
parameter X = 1;
localparam Y = 2;
endpackage
module Example;
import P::*;
parameter Z = X * 7;
initial $display("%0d %0d %0d", X, Y, Z);
endmodule
module Example;
localparam X = 1;
localparam Y = 2;
parameter Z = X * 7;
initial $display("%0d %0d %0d", X, Y, Z);
endmodule
module top;
Example e1();
Example #(8) e2();
Example #(9) e3();
endmodule
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment