Paso 1: Sistema funcionalmente completo
Hay un montón de puertas lógicas con única respuesta a las entradas de la lógica. Por el momento permite enfoque en puertas lógicas con entradas lógicas de uno o dos es decir: no, AND, OR, NAND, ni, XOR, XNOR y muchos otros. Si queremos poner en práctica cada uno de ellos, tardaría mucho tiempo para el diseño de un circuito. Aplicar algunas de las puertas puede ser que necesite un montón de transistores en el circuito real. Bueno, no me gusta.
En este momento, tenemos que darnos cuenta que algunas puertas de la lógica pueden estar formadas por una combinación de dos o más puertas lógicas. Teniendo esto en cuenta, decidió diseñar un circuito para una o dos puertas lógicas que formarían un sistema funcionalmente completo. Este conjunto atravesaría todas las puertas de la lógica y cualquier compuerta lógica se puede implementar una combinación de los elementos del conjunto.
Éstos son algunos de los ejemplos de conjuntos funcionalmente completos:
--> {Y, o, no}
--> {Y, no}
--> {O, no}
--> {NAND}
--> {Ni}
Elegir un diseño para un sistema funcionalmente completo hace el trabajo mucho más fácil ya que sólo podemos cascada una combinación de sus elementos para crear el diseño de los demás. En este caso, elegí el conjunto: {o, no}
La puerta OR(+) y el inversor (no ~) tiene la siguiente característica como se muestra en la imagen (A y B son entradas lógicas).
Aquí es cómo implementar algunas de las otras puertas lógicas utilizando el conjunto {o, no}:
Implementar la una puerta del NAND:
~(AB) = ~ A + ~ B
Implementar la puerta y:
AB = ~~(AB) = ~ (~ A + ~ B).
Implementar la puerta NOR:
~(A + B)