La lógica NAND hace referencia al hecho de que, debido a que la función NAND tiene una funcionalidad completa, todos los sistemas lógicos se pueden convertir en puertas NAND, tal y como demostró matemáticamente Henry M. Sheffer en 1913 en la publicación Transactions of the American Mathematical Society (Sheffer 1913). Esto también es cierto para las puertas NOR. En principio, cualquier función lógica combinatoria puede realizarse con suficientes puertas NAND.
Una puerta NOT se crea uniendo las entradas de una puerta NAND. Dado que una puerta NAND es equivalente a una puerta AND seguida de una puerta NOT, juntando las entradas de una puerta NAND se acaba obteniendo una puerta NOT.
Si se examina la tabla de verdad para una puerta NAND o al aplicar las Leyes de De Morgan, se puede ver que si alguna de las entradas es 0, entonces la salida será 1. En una puerta OR, sin embargo, la salida debe ser 1 si cualquier entrada es 1. Por lo tanto, si las entradas están negadas, cualquier entrada alta activará una salida alta.
Una puerta XOR puede ser creada conectando cuatro puertas NAND como se muestra a continuación. Esta construcción conlleva un retraso de propagación tres veces mayor que el de una simple puerta NAND.
Puerta XOR deseada
Construcción con NAND
Q = A XOR B
= [ A NAND ( A NAND B ) ] NAND [ B NAND ( A NAND B ) ]
Tabla de verdad
Input A
Input B
Output Q
0
0
0
0
1
1
1
0
1
1
1
0
Alternativamente, la entrada B de la puerta XNOR con el retardo de propagación de 3 puertas se puede invertir. Esta construcción utiliza cinco puertas en lugar de cuatro.
Puerta deseada
Construcción con NAND
Q = A XOR B
= [ B NAND ( A NAND A ) ] NAND [ A NAND ( B NAND B ) ]
Una puerta XNOR puede ser creada conectando la salida de 3 puertas NAND (conectadas como una puerta OR) y la salida de una puerta NAND a las entradas respectivas de una puerta NAND. Esta construcción conlleva un retraso de propagación tres veces mayor que el de una sola puerta NAND y utiliza cinco puertas.
Puerta XNOR deseada
Construcción con NAND
Q = A XNOR B
= [ ( A NAND A ) NAND ( B NAND B ) ] NAND ( A NAND B )
Tabla de verdad
Input A
Input B
Output Q
0
0
1
0
1
0
1
0
0
1
1
1
Alternativamente, se puede usar la versión de 4 puertas de una puerta XOR con un inversor. Esta construcción conlleva un retraso de propagación cuatro veces mayor (en lugar de tres veces) que el de una sola puerta NAND y utiliza cinco puertas.
Puerta deseada
Construcción con NAND
Q = A XNOR B
= { [ A NAND ( A NAND B ) ] NAND [ B NAND ( A NAND B ) ] } NAND { [ A NAND ( A NAND B ) ] NAND [ B NAND ( A NAND B ) ] }
MUX
Un multiplexor o una puerta MUX es una puerta de tres entradas que utiliza una de las entradas, llamada bit selector, para seleccionar una de las otras dos entradas, llamada bitios de datos, y enviando a la salida solo el bit de datos seleccionado.[1]
Puerta MUX deseada
Construcción con NAND
Q = [ A AND NOT( S ) ] OR ( B AND S )
= [ A NAND ( S NAND S ) ] NAND ( B NAND S )
Tabla de verdad
Input A
Input B
Selector
Output Q
0
0
0
0
0
1
0
0
1
0
0
1
1
1
0
1
0
0
1
0
0
1
1
1
1
0
1
0
1
1
1
1
DEMUX
Un demultiplexor realiza la función opuesta de un multiplexor; toma una sola entrada y la canaliza a una de dos salidas posibles de acuerdo con un bit de selector que especifica qué salida elegir.[1]
Sheffer, H. M. (1913), «A set of five independent postulates for Boolean algebras, with application to logical constants», Transactions of the American Mathematical Society14: 481-488, JSTOR1988701, doi:10.2307/1988701.