Add regression test for multi-dimensional packed class properties

Check that multi-dimensional packed vector class properties can be emitted,
assigned, and read back through a class object.

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
This commit is contained in:
Lars-Peter Clausen 2026-05-27 21:36:37 -07:00
parent 3e72713971
commit 6a9bd84ce1
3 changed files with 50 additions and 0 deletions

View File

@ -0,0 +1,40 @@
// Check that multi-dimensional packed vector class properties are supported.
module test;
bit failed = 1'b0;
`define check(val, exp) do begin \
if (val !== exp) begin \
$display("FAILED(%0d). '%s' expected %0h, got %0h", `__LINE__, \
`"val`", exp, val); \
failed = 1'b1; \
end \
end while (0)
class C;
logic [1:0][3:0] x;
bit [0:1][0:3] y;
endclass
C c;
initial begin
c = new;
c.x = 8'h5a;
c.y = 8'hc3;
`check(c.x, 8'h5a);
`check(c.y, 8'hc3);
c.x += 8'h01;
c.y ^= 8'hff;
`check(c.x, 8'h5b);
`check(c.y, 8'h3c);
if (!failed) begin
$display("PASSED");
end
end
endmodule

View File

@ -264,6 +264,7 @@ sv_chained_constructor5 vvp_tests/sv_chained_constructor5.json
sv_class_prop_assign_op1 vvp_tests/sv_class_prop_assign_op1.json
sv_class_prop_assign_op2 vvp_tests/sv_class_prop_assign_op2.json
sv_class_prop_logic vvp_tests/sv_class_prop_logic.json
sv_class_prop_packed_dims vvp_tests/sv_class_prop_packed_dims.json
sv_class_prop_nest_darray1 vvp_tests/sv_class_prop_nest_darray1.json
sv_class_prop_nest_obj1 vvp_tests/sv_class_prop_nest_obj1.json
sv_class_prop_nest_real1 vvp_tests/sv_class_prop_nest_real1.json

View File

@ -0,0 +1,9 @@
{
"type" : "normal",
"source" : "sv_class_prop_packed_dims.v",
"iverilog-args" : [ "-g2005-sv" ],
"vlog95" : {
"__comment" : "Classes are not supported",
"type" : "CE"
}
}