This one reproduces the parameter failure, but not the port. Use parameterB on line 12. Both parameterA and parameterB go to the parameterA line. Everything else seems to work. I can try a more thorough example if necessary.
-Tim
-----------------------------------------------------------------
module reproTest
#(
parameter parameterA = 0,
parameter parameterB = 1
)
(
input logic inputA,
input logic inputB,
output logic outputA
);
localparam localparamA = parameterA + parameterB;
logic[localparamA:0] moduleSignal;
// ******************************************************************************
//
// ******************************************************************************
always_ff @(posedge inputA, negedge inputB)
begin
if (!inputB)
begin
moduleSignal <= 0;
end
else
begin
moduleSignal <= {moduleSignal [1:0], inputA && inputB};
outputA <= moduleSignal[localparamA];
end
end
endmodule