diff --git a/ivtest/ivltests/specparam_reference_order_fail.v b/ivtest/ivltests/specparam_reference_order_fail.v new file mode 100644 index 000000000..321d641b9 --- /dev/null +++ b/ivtest/ivltests/specparam_reference_order_fail.v @@ -0,0 +1,9 @@ +// Check that a module-body specparam is declared before it is referenced. + +module test; + + wire value; + assign value = delay; + specparam delay = 1; + +endmodule diff --git a/ivtest/ivltests/specparam_specify_reference_order.v b/ivtest/ivltests/specparam_specify_reference_order.v new file mode 100644 index 000000000..5e13ac1e9 --- /dev/null +++ b/ivtest/ivltests/specparam_specify_reference_order.v @@ -0,0 +1,18 @@ +// Check that specify-block specparams can be referenced before declaration. + +module test; + + specify + specparam value = delay; + specparam delay = 42; + endspecify + + initial begin + if (value !== 42) begin + $display("FAILED. Expected 42, got %0d", value); + end else begin + $display("PASSED"); + end + end + +endmodule diff --git a/ivtest/regress-vvp.list b/ivtest/regress-vvp.list index c8f84fcee..6874747ff 100644 --- a/ivtest/regress-vvp.list +++ b/ivtest/regress-vvp.list @@ -234,6 +234,8 @@ sf_onehot_fail vvp_tests/sf_onehot_fail.json sf_onehot0_fail vvp_tests/sf_onehot0_fail.json shift6 vvp_tests/shift6.json single_element_array vvp_tests/single_element_array.json +specparam_reference_order_fail vvp_tests/specparam_reference_order_fail.json +specparam_specify_reference_order vvp_tests/specparam_specify_reference_order.json struct_enum_partsel vvp_tests/struct_enum_partsel.json struct_field_left_right vvp_tests/struct_field_left_right.json struct_nested1 vvp_tests/struct_nested1.json diff --git a/ivtest/vvp_tests/specparam_reference_order_fail.json b/ivtest/vvp_tests/specparam_reference_order_fail.json new file mode 100644 index 000000000..fb75c7475 --- /dev/null +++ b/ivtest/vvp_tests/specparam_reference_order_fail.json @@ -0,0 +1,5 @@ +{ + "type" : "CE", + "source" : "specparam_reference_order_fail.v", + "iverilog-args" : [ "-g2001" ] +} diff --git a/ivtest/vvp_tests/specparam_specify_reference_order.json b/ivtest/vvp_tests/specparam_specify_reference_order.json new file mode 100644 index 000000000..faebe5ec9 --- /dev/null +++ b/ivtest/vvp_tests/specparam_specify_reference_order.json @@ -0,0 +1,4 @@ +{ + "type" : "normal", + "source" : "specparam_specify_reference_order.v" +}