mirror of https://github.com/zachjs/sv2v.git
don't pack arrays passed to system tasks
- avoid packing memories used with read mem tasks - fix detection of $readmem[hb] in logic conversion
This commit is contained in:
parent
5b063ec968
commit
a6b872bf57
|
|
@ -206,7 +206,7 @@ traverseStmtM (Timing timing stmt) =
|
|||
return $ Timing timing stmt
|
||||
traverseStmtM (Subroutine (Ident f) args) = do
|
||||
case args of
|
||||
Args [_, Ident x, _] [] ->
|
||||
Args (_ : Ident x : _) [] ->
|
||||
if f == "$readmemh" || f == "$readmemb"
|
||||
then collectLHSM $ LHSIdent x
|
||||
else return ()
|
||||
|
|
|
|||
|
|
@ -94,6 +94,8 @@ traverseStmtM =
|
|||
traverseStmtArgsM
|
||||
|
||||
traverseStmtArgsM :: Stmt -> ST Stmt
|
||||
traverseStmtArgsM stmt @ (Subroutine (Ident ('$' : _)) _) =
|
||||
return stmt
|
||||
traverseStmtArgsM stmt @ (Subroutine _ (Args args [])) =
|
||||
mapM_ flatUsageM args >> return stmt
|
||||
traverseStmtArgsM stmt = return stmt
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
ff aa bb cc
|
||||
|
|
@ -20,4 +20,7 @@ module top;
|
|||
#1 arr2[2] = 9; dump(arr2);
|
||||
#1 arr2[3] = 7; dump(arr2);
|
||||
end
|
||||
byte arr3 [4];
|
||||
wire [31:0] arr3_flat = {arr3[0], arr3[1], arr3[2], arr3[3]};
|
||||
initial $readmemh("tf_unpacked_input.mem", arr3);
|
||||
endmodule
|
||||
|
|
|
|||
|
|
@ -19,4 +19,7 @@ module top;
|
|||
#1 arr2[2] = 9; dump(arr2);
|
||||
#1 arr2[3] = 7; dump(arr2);
|
||||
end
|
||||
reg [7:0] arr3 [0:3];
|
||||
wire [31:0] arr3_flat = {arr3[0], arr3[1], arr3[2], arr3[3]};
|
||||
initial $readmemh("tf_unpacked_input.mem", arr3);
|
||||
endmodule
|
||||
|
|
|
|||
Loading…
Reference in New Issue