Add regression test for invalid parameter overrides
Check that invalid parameter overrides generate an error. There are some cases that are not handled correctly today. The test will be updated once they are addressed. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
This commit is contained in:
parent
0ab1ed916f
commit
880f4927bf
|
|
@ -0,0 +1,21 @@
|
|||
./ivltests/parameter_invalid_override.v:28: error: Cannot override localparam `C` in `test.i_a`.
|
||||
./ivltests/parameter_invalid_override.v:29: error: Cannot override localparam `D` in `test.i_a`.
|
||||
./ivltests/parameter_invalid_override.v:31: error: Cannot override localparam `F` in `test.i_a`.
|
||||
./ivltests/parameter_invalid_override.v:32: error: Cannot override localparam `G` in `test.i_a`.
|
||||
./ivltests/parameter_invalid_override.v:33: error: Cannot override localparam `H` in `test.i_a`.
|
||||
./ivltests/parameter_invalid_override.v:34: error: Cannot override localparam `I` in `test.i_a`.
|
||||
./ivltests/parameter_invalid_override.v:35: error: parameter `Z` not found in `test.i_a`.
|
||||
./ivltests/parameter_invalid_override.v:52: error: Cannot override localparam `C` in `test.i_b`.
|
||||
./ivltests/parameter_invalid_override.v:53: error: Cannot override localparam `D` in `test.i_b`.
|
||||
./ivltests/parameter_invalid_override.v:54: error: parameter `Z` not found in `test.i_b`.
|
||||
./ivltests/parameter_invalid_override.v:40: error: Cannot override localparam `C` in `test.i_a`.
|
||||
./ivltests/parameter_invalid_override.v:41: error: Cannot override localparam `D` in `test.i_a`.
|
||||
./ivltests/parameter_invalid_override.v:43: error: Cannot override localparam `F` in `test.i_a`.
|
||||
./ivltests/parameter_invalid_override.v:44: error: Cannot override localparam `G` in `test.i_a`.
|
||||
./ivltests/parameter_invalid_override.v:45: error: Cannot override localparam `H` in `test.i_a`.
|
||||
./ivltests/parameter_invalid_override.v:46: error: Cannot override localparam `I` in `test.i_a`.
|
||||
./ivltests/parameter_invalid_override.v:47: error: parameter `Z` not found in `test.i_a`.
|
||||
./ivltests/parameter_invalid_override.v:59: error: Cannot override localparam `C` in `test.i_b`.
|
||||
./ivltests/parameter_invalid_override.v:60: error: Cannot override localparam `D` in `test.i_b`.
|
||||
./ivltests/parameter_invalid_override.v:61: error: parameter `Z` not found in `test.i_b`.
|
||||
21 error(s) during elaboration.
|
||||
|
|
@ -0,0 +1,63 @@
|
|||
// Check that invalid parameter overrides generate an error
|
||||
|
||||
module a #(
|
||||
parameter A = 1, B = 2,
|
||||
localparam C = 3, localparam D = 4, // TODO: D should be localparam even when the keyword omitted
|
||||
parameter E = 5
|
||||
);
|
||||
|
||||
// TODO: parameter here should be treated as a localparam since the module has a
|
||||
// parameter port list
|
||||
/*parameter*/ localparam F = 6, G = 7;
|
||||
localparam H = 8, I = 9;
|
||||
|
||||
endmodule
|
||||
|
||||
module b;
|
||||
|
||||
parameter A = 1, B = 2;
|
||||
localparam C = 3, D = 4;
|
||||
|
||||
endmodule
|
||||
|
||||
module test;
|
||||
|
||||
a #(
|
||||
.A(10),
|
||||
.B(20),
|
||||
.C(30),
|
||||
.D(40),
|
||||
.E(50),
|
||||
.F(60),
|
||||
.G(70),
|
||||
.H(80),
|
||||
.I(90),
|
||||
.Z(99)
|
||||
) i_a();
|
||||
|
||||
defparam i_a.A = 100;
|
||||
defparam i_a.B = 200;
|
||||
defparam i_a.C = 300;
|
||||
defparam i_a.D = 400;
|
||||
defparam i_a.E = 500;
|
||||
defparam i_a.F = 600;
|
||||
defparam i_a.G = 700;
|
||||
defparam i_a.H = 800;
|
||||
defparam i_a.I = 900;
|
||||
defparam i_a.Z = 999;
|
||||
|
||||
b #(
|
||||
.A(10),
|
||||
.B(20),
|
||||
.C(30),
|
||||
.D(40),
|
||||
.Z(99)
|
||||
) i_b();
|
||||
|
||||
defparam i_b.A = 100;
|
||||
defparam i_b.B = 200;
|
||||
defparam i_b.C = 300;
|
||||
defparam i_b.D = 400;
|
||||
defparam i_b.Z = 999;
|
||||
|
||||
endmodule
|
||||
|
|
@ -311,6 +311,7 @@ named_fork normal,-g2009 ivltests
|
|||
named_fork_fail CE,-g2009 ivltests
|
||||
packeda normal,-g2009 ivltests
|
||||
packeda2 normal,-g2009 ivltests
|
||||
parameter_invalid_override CE,-g2005-sv ivltests gold=parameter_invalid_override.gold
|
||||
parameter_type2 normal,-g2009 ivltests
|
||||
parpkg_test normal,-g2009 ivltests
|
||||
parpkg_test2 normal,-g2009 ivltests
|
||||
|
|
|
|||
Loading…
Reference in New Issue