From babfacee9adc29a23374da00f910a2975ca74337 Mon Sep 17 00:00:00 2001 From: Lars-Peter Clausen Date: Sat, 12 Mar 2022 13:35:41 +0100 Subject: [PATCH] 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 --- ivtest/ivltests/sv_darray7.v | 54 ++++++++++++++++++++++++++++++++++++ ivtest/regress-sv.list | 1 + ivtest/regress-vlog95.list | 1 + 3 files changed, 56 insertions(+) create mode 100644 ivtest/ivltests/sv_darray7.v diff --git a/ivtest/ivltests/sv_darray7.v b/ivtest/ivltests/sv_darray7.v new file mode 100644 index 000000000..d62cf0732 --- /dev/null +++ b/ivtest/ivltests/sv_darray7.v @@ -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 diff --git a/ivtest/regress-sv.list b/ivtest/regress-sv.list index ee99c29f7..d845c44e1 100644 --- a/ivtest/regress-sv.list +++ b/ivtest/regress-sv.list @@ -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 diff --git a/ivtest/regress-vlog95.list b/ivtest/regress-vlog95.list index a03185273..aa574bc63 100644 --- a/ivtest/regress-vlog95.list +++ b/ivtest/regress-vlog95.list @@ -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