Add regression test for dynamic arrays of packed arrays

Check that it is possible to declare a dynamic array of a packed array
type. The test is identical to the tests for the other supported dynamic
array types.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
This commit is contained in:
Lars-Peter Clausen 2022-03-12 13:35:41 +01:00
parent 5cc825f45d
commit babfacee9a
3 changed files with 56 additions and 0 deletions

View File

@ -0,0 +1,54 @@
// Check that dynamic arrays of packed array types are supported
module main;
typedef reg [3:0] T1;
typedef T1 [7:0] T2;
T2 foo[];
int idx;
initial begin
if (foo.size() != 0) begin
$display("FAILED -- foo.size()=%0d, s.b. 0", foo.size());
$finish;
end
foo = new[10];
if (foo.size() != 10) begin
$display("FAILED -- foo.size()=%0d, s.b. 10", foo.size());
$finish;
end
for (idx = 0 ; idx < foo.size() ; idx += 1) begin
foo[idx] = idx;
end
$display("foo[7] = %d", foo[7]);
if (foo[7] != 7) begin
$display("FAILED -- foo[7] = %0d (s.b. 7)", foo[7]);
$finish;
end
$display("foo[9] = %d", foo[9]);
if (foo[9] != 9) begin
$display("FAILED -- foo[9] = %0d (s.b. 9)", foo[9]);
$finish;
end
for (idx = 0 ; idx < 2*foo.size() ; idx += 1) begin
if (foo[idx%10] != (idx%10)) begin
$display("FAILED -- foo[%0d%%10] = %0d", idx, foo[idx%10]);
$finish;
end
end
foo.delete();
if (foo.size() != 0) begin
$display("FAILED -- foo.size()=%0d (after delete: s.b. 0)", foo.size());
$finish;
end
$display("PASSED");
end
endmodule // main

View File

@ -452,6 +452,7 @@ sv_darray4 normal,-g2009 ivltests
sv_darray5 normal,-g2009 ivltests
sv_darray5b normal,-g2009 ivltests
sv_darray6 normal,-g2009 ivltests
sv_darray7 normal,-g2009 ivltests
sv_darray_args1 normal,-g2009 ivltests
sv_darray_args2 normal,-g2009 ivltests
sv_darray_args2b normal,-g2009 ivltests

View File

@ -312,6 +312,7 @@ sv_darray4 CE,-g2009,-pallowsigned=1 ivltests
sv_darray5 CE,-g2009,-pallowsigned=1 ivltests
sv_darray5b CE,-g2009,-pallowsigned=1 ivltests
sv_darray6 CE,-g2009,-pallowsigned=1 ivltests # Also string
sv_darray7 CE,-g2009,-pallowsigned=1 ivltests
sv_darray_args1 CE,-g2009,-pallowsigned=1 ivltests
sv_darray_args2 CE,-g2009,-pallowsigned=1 ivltests
sv_darray_args2b CE,-g2009,-pallowsigned=1 ivltests