From 483de9a75bd8bb3690e3a2f707f6bc7fc3ba9919 Mon Sep 17 00:00:00 2001 From: Sylvain Munaut Date: Thu, 16 Nov 2023 09:25:38 +0100 Subject: [PATCH] ivtest: Add test for partselect on enum inside pack struct See issue #1033 Signed-off-by: Sylvain Munaut --- ivtest/ivltests/struct_enum_partsel.v | 24 +++++++++++++++++++++++ ivtest/regress-vvp.list | 1 + ivtest/vvp_tests/struct_enum_partsel.json | 5 +++++ 3 files changed, 30 insertions(+) create mode 100644 ivtest/ivltests/struct_enum_partsel.v create mode 100644 ivtest/vvp_tests/struct_enum_partsel.json diff --git a/ivtest/ivltests/struct_enum_partsel.v b/ivtest/ivltests/struct_enum_partsel.v new file mode 100644 index 000000000..b0aac672b --- /dev/null +++ b/ivtest/ivltests/struct_enum_partsel.v @@ -0,0 +1,24 @@ +module main; + + typedef enum logic [2:0] { + ENUM_VAL = 3'b110 + } enumtype; + + typedef struct packed { + enumtype e; + } structtype; + + structtype s; + + initial + begin + s.e = ENUM_VAL; + $display("s.e[2] = %d, s.e[1] = %d, s.e[0] = %d", s.e[2], s.e[1], s.e[0]); + if ((s.e[2] != 1'b1) || (s.e[1] != 1'b1) || (s.e[0] != 1'b0)) begin + $display("FAILED"); + $finish; + end + $display("PASSED"); + end + +endmodule diff --git a/ivtest/regress-vvp.list b/ivtest/regress-vvp.list index 1c5f24bb5..80c3adc3e 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_enum_partsel vvp_tests/struct_enum_partsel.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 diff --git a/ivtest/vvp_tests/struct_enum_partsel.json b/ivtest/vvp_tests/struct_enum_partsel.json new file mode 100644 index 000000000..ac0bd0049 --- /dev/null +++ b/ivtest/vvp_tests/struct_enum_partsel.json @@ -0,0 +1,5 @@ +{ + "type" : "normal", + "source" : "struct_enum_partsel.v", + "iverilog-args" : [ "-g2009" ] +}