Add regression test for invalid declarations in generate blocks

Check that the following declarations inside a generate block generate an
error:
 * module, program or interface
 * specparam
 * specify block
 * timeunit

Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
This commit is contained in:
Lars-Peter Clausen 2022-02-15 15:26:34 +01:00
parent 6730ead119
commit b37636e4fc
6 changed files with 72 additions and 0 deletions

View File

@ -0,0 +1,16 @@
// Check that declaring a module inside a generate block is an error
module test #(
parameter A = 1
);
generate
if (A) begin
// Error
module inner;
initial $display("FAILED");
endmodule
end
endgenerate
endmodule

View File

@ -0,0 +1,18 @@
// Check that a specify block inside a generate block is an error
module test #(
parameter A = 1
);
generate
if (A) begin
specify // Error
endspecify
end
endgenerate
initial begin
$display("FAILED");
end
endmodule

View File

@ -0,0 +1,17 @@
// Check that declaring a specparam inside a generate block is an error
module test #(
parameter A = 1
);
generate
if (A) begin
specparam x = 10; // Error
end
endgenerate
initial begin
$display("FAILED");
end
endmodule

View File

@ -0,0 +1,17 @@
// Check that declaring a timeunit inside a generate block is an error
module test #(
parameter A = 1
);
generate
if (A) begin
timeunit 10ns/1ns; // Error
end
endgenerate
initial begin
$display("FAILED");
end
endmodule

View File

@ -269,6 +269,8 @@ function10 CO,-g2005-sv ivltests
function11 CE,-g2005-sv ivltests
function12 normal,-g2005-sv ivltests gold=function12.gold
genvar_inc_dec normal,-g2009 ivltests
generate_module CE,-g2005-sv ivltests
generate_timeunit CE,-g2005-sv ivltests
ibit_test normal,-g2005-sv ivltests
ibyte_test normal,-g2005-sv ivltests
iint_test normal,-g2005-sv ivltests

View File

@ -570,6 +570,8 @@ generate_case normal ivltests
generate_case2 normal ivltests
generate_case3 normal ivltests
generate_multi_loop normal ivltests gold=generate_multi_loop.gold
generate_specify CE,-g2005-sv ivltests
generate_specparam CE,-g2005-sv ivltests
genloop normal ivltests
genvar_scopes normal ivltests
hello1 normal ivltests