diff --git a/ivtest/ivltests/partsel_reversed_idx1.v b/ivtest/ivltests/partsel_reversed_idx1.v new file mode 100644 index 000000000..16551be95 --- /dev/null +++ b/ivtest/ivltests/partsel_reversed_idx1.v @@ -0,0 +1,14 @@ +// Check that an inverted part select in a continuous assign is reported as an +// error. + +module test; + + reg [1:0] x; + + assign x[0:1] = 2'b00; // Error: Part select indices swapped + + initial begin + $display("FAILED"); + end + +endmodule diff --git a/ivtest/ivltests/partsel_reversed_idx2.v b/ivtest/ivltests/partsel_reversed_idx2.v new file mode 100644 index 000000000..459732af0 --- /dev/null +++ b/ivtest/ivltests/partsel_reversed_idx2.v @@ -0,0 +1,14 @@ +// Check that an inverted part select on an inner dimension in a continuous +// assign is reported as an error. + +module test; + + reg [1:0][1:0] x; + + assign x[0:1] = 2'b00; // Error: Part select indices swapped + + initial begin + $display("FAILED"); + end + +endmodule diff --git a/ivtest/ivltests/partsel_reversed_idx3.v b/ivtest/ivltests/partsel_reversed_idx3.v new file mode 100644 index 000000000..f8d0ea003 --- /dev/null +++ b/ivtest/ivltests/partsel_reversed_idx3.v @@ -0,0 +1,14 @@ +// Check that an inverted part select in a procedural assign is reported as an +// error. + +module test; + + reg [1:0] x; + + initial begin + x[0:1] = 2'b00; // Error: Part select indices swapped + + $display("FAILED"); + end + +endmodule diff --git a/ivtest/ivltests/partsel_reversed_idx4.v b/ivtest/ivltests/partsel_reversed_idx4.v new file mode 100644 index 000000000..c09eaba3f --- /dev/null +++ b/ivtest/ivltests/partsel_reversed_idx4.v @@ -0,0 +1,14 @@ +// Check that an inverted part select on an inner dimension in a procedural +// assign is reported as an error. + +module test; + + reg [1:0][1:0] x; + + initial begin + x[0:1] = 2'b00; // Error: Part select indices swapped + + $display("FAILED"); + end + +endmodule diff --git a/ivtest/ivltests/partsel_reversed_idx5.v b/ivtest/ivltests/partsel_reversed_idx5.v new file mode 100644 index 000000000..b3daa49c9 --- /dev/null +++ b/ivtest/ivltests/partsel_reversed_idx5.v @@ -0,0 +1,14 @@ +// Check that an inverted part select in an expression is reported as an error. + +module test; + + reg [1:0] x; + reg [1:0] y; + + initial begin + y = x[0:1]; // Error: Part select indices swapped + + $display("FAILED"); + end + +endmodule diff --git a/ivtest/ivltests/partsel_reversed_idx6.v b/ivtest/ivltests/partsel_reversed_idx6.v new file mode 100644 index 000000000..55f92a942 --- /dev/null +++ b/ivtest/ivltests/partsel_reversed_idx6.v @@ -0,0 +1,15 @@ +// Check that an inverted part select on an inner dimension in an expression is +// reported as an error. + +module test; + + reg [1:0][1:0] x; + reg [1:0] y; + + initial begin + y = x[0:1]; // Error: Part select indices swapped + + $display("FAILED"); + end + +endmodule diff --git a/ivtest/regress-vvp.list b/ivtest/regress-vvp.list index 81a6d9fec..20b686c6d 100644 --- a/ivtest/regress-vvp.list +++ b/ivtest/regress-vvp.list @@ -94,6 +94,12 @@ partsel_invalid_idx3 vvp_tests/partsel_invalid_idx3.json partsel_invalid_idx4 vvp_tests/partsel_invalid_idx4.json partsel_invalid_idx5 vvp_tests/partsel_invalid_idx5.json partsel_invalid_idx6 vvp_tests/partsel_invalid_idx6.json +partsel_reversed_idx1 vvp_tests/partsel_reversed_idx1.json +partsel_reversed_idx2 vvp_tests/partsel_reversed_idx2.json +partsel_reversed_idx3 vvp_tests/partsel_reversed_idx3.json +partsel_reversed_idx4 vvp_tests/partsel_reversed_idx4.json +partsel_reversed_idx5 vvp_tests/partsel_reversed_idx5.json +partsel_reversed_idx6 vvp_tests/partsel_reversed_idx6.json param_test3 vvp_tests/param_test3.json param-width vvp_tests/param-width.json param-width-vlog95 vvp_tests/param-width-vlog95.json diff --git a/ivtest/vvp_tests/partsel_reversed_idx1.json b/ivtest/vvp_tests/partsel_reversed_idx1.json new file mode 100644 index 000000000..e251399c1 --- /dev/null +++ b/ivtest/vvp_tests/partsel_reversed_idx1.json @@ -0,0 +1,4 @@ +{ + "type" : "CE", + "source" : "partsel_reversed_idx1.v" +} diff --git a/ivtest/vvp_tests/partsel_reversed_idx2.json b/ivtest/vvp_tests/partsel_reversed_idx2.json new file mode 100644 index 000000000..5d45f578a --- /dev/null +++ b/ivtest/vvp_tests/partsel_reversed_idx2.json @@ -0,0 +1,4 @@ +{ + "type" : "CE", + "source" : "partsel_reversed_idx2.v" +} diff --git a/ivtest/vvp_tests/partsel_reversed_idx3.json b/ivtest/vvp_tests/partsel_reversed_idx3.json new file mode 100644 index 000000000..60522804a --- /dev/null +++ b/ivtest/vvp_tests/partsel_reversed_idx3.json @@ -0,0 +1,4 @@ +{ + "type" : "CE", + "source" : "partsel_reversed_idx3.v" +} diff --git a/ivtest/vvp_tests/partsel_reversed_idx4.json b/ivtest/vvp_tests/partsel_reversed_idx4.json new file mode 100644 index 000000000..949ce7bc2 --- /dev/null +++ b/ivtest/vvp_tests/partsel_reversed_idx4.json @@ -0,0 +1,4 @@ +{ + "type" : "CE", + "source" : "partsel_reversed_idx4.v" +} diff --git a/ivtest/vvp_tests/partsel_reversed_idx5.json b/ivtest/vvp_tests/partsel_reversed_idx5.json new file mode 100644 index 000000000..3c619c720 --- /dev/null +++ b/ivtest/vvp_tests/partsel_reversed_idx5.json @@ -0,0 +1,4 @@ +{ + "type" : "CE", + "source" : "partsel_reversed_idx5.v" +} diff --git a/ivtest/vvp_tests/partsel_reversed_idx6.json b/ivtest/vvp_tests/partsel_reversed_idx6.json new file mode 100644 index 000000000..8bfa2fff7 --- /dev/null +++ b/ivtest/vvp_tests/partsel_reversed_idx6.json @@ -0,0 +1,4 @@ +{ + "type" : "CE", + "source" : "partsel_reversed_idx6.v" +}