About cookies on this site Our websites require some cookies to function properly (required). In addition, other cookies may be used with your consent to analyze site usage, improve the user experience and for advertising. For more information, please review your options. By visiting our website, you agree to our processing of information as described in IBM’sprivacy statement. To provide a smooth navigation, your cookie preferences will be shared across the IBM web domains listed here.
August 2009
<<July August September>>
The way to compute three inverters with only two is to first compute the majority function:
maj(a,b,c) = (a AND b) or (a AND c) or (b AND c);
then compute the xor function using the first NOT:
xor(a,b,c) = (a AND b AND c) or (NOT(maj(a,b,c)) AND (a OR b OR c));
and lastly we can compute NOT(a) without additional NOT gates by multiplexing on the two computed functions maj and xor (shorthand for maj(a,b,c) and xor(a,b,c) respectively):
NOT(a) = (NOT(maj) AND NOT(xor)) OR (NOT(maj) AND xor AND (b OR c)) OR (maj AND NOT(xor) AND b AND c);
and similarly compute the other two NOT(b) and NOT(c).
After some optimization this can all fit into 23 gates:
bcacabcbcabaeffdkeLdLeLfgLhLiLqpsjmTnToTupvqwr
If you have any problems you think we might enjoy, please send them in. All replies should be sent to: ponder@il.ibm.com