/* Parameterized extender that can handle both zero- and sign-extension. */ module extender #(parameter M = 4, N = 8) (output [N-1:0] out, input [M-1:0] in, input sign); assign out = sign ? {{(N-M){in[M-1]}}, in} : {{(N-M){1'b0}}, in}; endmodule // extender