mirror of https://github.com/zachjs/sv2v.git
move package param step to conversion
This commit is contained in:
parent
821b8bc947
commit
275130e0b0
|
|
@ -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
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,10 @@
|
|||
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
|
||||
|
|
@ -0,0 +1,6 @@
|
|||
module Example;
|
||||
localparam X = 1;
|
||||
localparam Y = 2;
|
||||
parameter Z = X * 7;
|
||||
initial $display("%0d %0d %0d", X, Y, Z);
|
||||
endmodule
|
||||
|
|
@ -0,0 +1,5 @@
|
|||
module top;
|
||||
Example e1();
|
||||
Example #(8) e2();
|
||||
Example #(9) e3();
|
||||
endmodule
|
||||
Loading…
Reference in New Issue