64 lines
1.1 KiB
Coq
64 lines
1.1 KiB
Coq
|
|
// 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
|