module MajorityVoter (A, B, C, out ,fault1, fault0);
	input A,B,C;
	input fault1, fault0;
	output out;
	wor wi1, wi2, wi3;
	wor out;
	// fault1=0 fault0=0 output fault free
	// fault1=1 fault0=0 output S a B
	// fault1=0(1) fault0=1 output Maj(A',B,C')
	assign wi1 = (A & B) | (B & C) | (A & C);
	assign wi3 = (~A & B) | (B & ~C) | (~A & ~C);
	assign wi2 = (fault1) ? B : wi1;
	assign out = (fault0) ?  wi3: wi2;
endmodule
