module tristate (en, i, o); input en; input i; output reg o; `ifndef BUG always @(en or i) o <= (en)? i : 1'bZ; `else always @(en or i) o <= (en)? ~i : 1'bZ; `endif endmodule module top ( input en, input a, output b ); tristate u_tri ( .en (en ), .i (a ), .o (b ) ); endmodule