module mux16 (D, S, Y); input [15:0] D; input [3:0] S; output Y; `ifndef BUG assign Y = D[S]; `else assign Y = D[S+1]; `endif endmodule module top ( input [3:0] S, input [15:0] D, output M16 ); mux16 u_mux16 ( .S (S[3:0]), .D (D[15:0]), .Y (M16) ); endmodule