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