mirror of https://github.com/zachjs/sv2v.git
pack sliced arrays (resolves #78)
This commit is contained in:
parent
f44e3e808a
commit
c03dba096f
|
|
@ -85,7 +85,10 @@ traverseStmtM stmt =
|
|||
traverseStmtAsgnsM traverseAsgnM
|
||||
|
||||
traverseExprM :: Expr -> ST Expr
|
||||
traverseExprM = return
|
||||
traverseExprM (Range (Ident x) mode i) = do
|
||||
flatUsageM x
|
||||
return $ Range (Ident x) mode i
|
||||
traverseExprM other = return other
|
||||
|
||||
traverseLHSM :: LHS -> ST LHS
|
||||
traverseLHSM (LHSIdent x) = do
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
module foo(clock, data);
|
||||
module Producer(clock, data);
|
||||
parameter INIT = 0;
|
||||
input logic clock;
|
||||
output logic [10:0] data [5];
|
||||
initial data[0][0] = 0;
|
||||
initial data[0][0] = INIT;
|
||||
always @(clock) begin
|
||||
integer i, j;
|
||||
for (i = 4; i >= 0; i--) begin
|
||||
|
|
@ -16,17 +17,24 @@ module foo(clock, data);
|
|||
endmodule
|
||||
|
||||
module top;
|
||||
logic [10:0] data [5];
|
||||
reg clock;
|
||||
foo f(clock, data);
|
||||
|
||||
initial begin
|
||||
clock = 1;
|
||||
repeat (100)
|
||||
#1 clock = ~clock;
|
||||
end
|
||||
|
||||
initial begin : foo
|
||||
$monitor("%d %b%b%b%b%b", $time, data[0], data[1], data[2], data[3], data[4]);
|
||||
end
|
||||
logic [10:0] foo [5];
|
||||
Producer #(.INIT(0)) p1(clock, foo);
|
||||
|
||||
logic [10:0] bar [10];
|
||||
Producer #(.INIT(0)) p2(clock, bar[0:4]);
|
||||
Producer #(.INIT(1)) p3(clock, bar[5:9]);
|
||||
|
||||
initial
|
||||
$monitor("%d %b%b%b%b%b %b%b%b%b%b%b%b%b%b%b", $time,
|
||||
foo[0], foo[1], foo[2], foo[3], foo[4],
|
||||
bar[0], bar[1], bar[2], bar[3], bar[4],
|
||||
bar[5], bar[6], bar[7], bar[8], bar[9]
|
||||
);
|
||||
endmodule
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
module foo(clock, data);
|
||||
module Producer(clock, data);
|
||||
parameter INIT = 0;
|
||||
input clock;
|
||||
output reg [54:0] data;
|
||||
initial data[11*4] = 0;
|
||||
initial data[11*4] = INIT;
|
||||
always @(clock) begin : block_name
|
||||
integer i, j;
|
||||
for (i = 4; i >= 0; i--) begin
|
||||
|
|
@ -16,17 +17,20 @@ module foo(clock, data);
|
|||
endmodule
|
||||
|
||||
module top;
|
||||
wire [54:0] data;
|
||||
reg clock;
|
||||
foo f(clock, data);
|
||||
|
||||
initial begin
|
||||
clock = 1;
|
||||
repeat (100)
|
||||
#1 clock = ~clock;
|
||||
end
|
||||
|
||||
initial begin : foo
|
||||
$monitor("%d %b", $time, data);
|
||||
end
|
||||
wire [54:0] foo;
|
||||
Producer #(.INIT(0)) p1(clock, foo);
|
||||
|
||||
wire [109:0] bar;
|
||||
Producer #(.INIT(0)) p2(clock, bar[54:0]);
|
||||
Producer #(.INIT(1)) p3(clock, bar[109:55]);
|
||||
|
||||
initial
|
||||
$monitor("%d %b %b", $time, foo, bar);
|
||||
endmodule
|
||||
|
|
|
|||
Loading…
Reference in New Issue