iverilog/ivtest/ivltests/parameter_invalid_override.v

64 lines
1.1 KiB
Coq
Raw Normal View History

// 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