From 8cd52ac5be56c7a52882bf45c0200dd8bdef32f3 Mon Sep 17 00:00:00 2001 From: Lars-Peter Clausen Date: Sun, 2 Aug 2026 15:31:13 -0700 Subject: [PATCH] Add regression test for wildcard imports in bare delays Check that a bare delay identifier before a wildcard package import resolves an outer constant. Check that a following bare delay activates the import and resolves the package constant. Run the test through the native and vlog95 backends. Signed-off-by: Lars-Peter Clausen --- .../ivltests/sv_package_import_order_delay.v | 48 +++++++++++++++++++ ivtest/regress-vvp.list | 1 + .../sv_package_import_order_delay.json | 5 ++ 3 files changed, 54 insertions(+) create mode 100644 ivtest/ivltests/sv_package_import_order_delay.v create mode 100644 ivtest/vvp_tests/sv_package_import_order_delay.json diff --git a/ivtest/ivltests/sv_package_import_order_delay.v b/ivtest/ivltests/sv_package_import_order_delay.v new file mode 100644 index 000000000..0975a0f44 --- /dev/null +++ b/ivtest/ivltests/sv_package_import_order_delay.v @@ -0,0 +1,48 @@ +// Check that a bare delay identifier activates a wildcard package import. + +package p; + parameter delay = 2; +endpackage + +parameter delay = 1; + +module test; + + integer before_time; + integer after_time; + reg failed; + + `define check(val, exp) \ + if (val !== exp) begin \ + $display("FAILED(%0d). '%s' expected %0d, got %0d", `__LINE__, \ + `"val`", exp, val); \ + failed = 1'b1; \ + end + + initial begin + before_time = -1; + #delay; + before_time = $time; + end + + import p::*; + + initial begin + after_time = -1; + #delay; + after_time = $time; + end + + initial begin + failed = 1'b0; + #3; + + `check(before_time, 1); + `check(after_time, 2); + + if (!failed) begin + $display("PASSED"); + end + end + +endmodule diff --git a/ivtest/regress-vvp.list b/ivtest/regress-vvp.list index abba658b2..57f768168 100644 --- a/ivtest/regress-vvp.list +++ b/ivtest/regress-vvp.list @@ -403,6 +403,7 @@ sv_net_array_decl_assign vvp_tests/sv_net_array_decl_assign.json sv_net_decl_assign vvp_tests/sv_net_decl_assign.json sv_package_import_copy_new vvp_tests/sv_package_import_copy_new.json sv_package_import_cross_unit vvp_tests/sv_package_import_cross_unit.json +sv_package_import_order_delay vvp_tests/sv_package_import_order_delay.json sv_package_import_order_dotstar vvp_tests/sv_package_import_order_dotstar.json sv_package_import_order_explicit vvp_tests/sv_package_import_order_explicit.json sv_package_import_order_named vvp_tests/sv_package_import_order_named.json diff --git a/ivtest/vvp_tests/sv_package_import_order_delay.json b/ivtest/vvp_tests/sv_package_import_order_delay.json new file mode 100644 index 000000000..01d2a17dc --- /dev/null +++ b/ivtest/vvp_tests/sv_package_import_order_delay.json @@ -0,0 +1,5 @@ +{ + "type" : "normal", + "source" : "sv_package_import_order_delay.v", + "iverilog-args" : [ "-g2005-sv" ] +}