From d564cecfb982c630f123d57fcf4c2fd40d80ead7 Mon Sep 17 00:00:00 2001 From: Sylvain Munaut Date: Thu, 16 Nov 2023 09:24:41 +0100 Subject: [PATCH] ivtest: Add test for $left / $right on structure field See issue #1032 Signed-off-by: Sylvain Munaut --- ivtest/ivltests/struct_field_left_right.v | 23 +++++++++++++++++++ ivtest/regress-vvp.list | 1 + ivtest/vvp_tests/struct_field_left_right.json | 5 ++++ 3 files changed, 29 insertions(+) create mode 100644 ivtest/ivltests/struct_field_left_right.v create mode 100644 ivtest/vvp_tests/struct_field_left_right.json diff --git a/ivtest/ivltests/struct_field_left_right.v b/ivtest/ivltests/struct_field_left_right.v new file mode 100644 index 000000000..a7f138376 --- /dev/null +++ b/ivtest/ivltests/struct_field_left_right.v @@ -0,0 +1,23 @@ +module main; + + typedef struct packed { + logic [15:8] f; + } structtype; + + structtype s; + + initial + begin + $display("$left(s.f) = %2d, $right(s.f) = %2d", $left(s.f), $right(s.f)); + if ($left(s.f) !== 15) begin + $display("FAILED -- $left(s.f) = %2d", $left(s.f)); + $finish; + end + if ($right(s.f) !== 8) begin + $display("FAILED -- $right(s.f) = %2d", $right(s.f)); + $finish; + end + $display("PASSED"); + end + +endmodule diff --git a/ivtest/regress-vvp.list b/ivtest/regress-vvp.list index 1cb5a3912..1c5f24bb5 100644 --- a/ivtest/regress-vvp.list +++ b/ivtest/regress-vvp.list @@ -46,6 +46,7 @@ pr903 vvp_tests/pr903.json pr903-vlog95 vvp_tests/pr903-vlog95.json pv_wr_fn_vec2 vvp_tests/pv_wr_fn_vec2.json pv_wr_fn_vec4 vvp_tests/pv_wr_fn_vec4.json +struct_field_left_right vvp_tests/struct_field_left_right.json struct_packed_write_read vvp_tests/struct_packed_write_read.json struct_packed_write_read2 vvp_tests/struct_packed_write_read2.json sv_2state_array_init_prop vvp_tests/sv_2state_array_init_prop.json diff --git a/ivtest/vvp_tests/struct_field_left_right.json b/ivtest/vvp_tests/struct_field_left_right.json new file mode 100644 index 000000000..a3cdb9f34 --- /dev/null +++ b/ivtest/vvp_tests/struct_field_left_right.json @@ -0,0 +1,5 @@ +{ + "type" : "normal", + "source" : "struct_field_left_right.v", + "iverilog-args" : [ "-g2009" ] +}