# Puerta lógica

Una puerta lógica o compuerta lógica, es un dispositivo electrónico con una función de tipo booleano u otros tipos (ej. «Trivalente»), como sumar o restar, incluir o excluir según sus propiedades lógicas. Se pueden aplicar a tecnología electrónica, eléctrica, mecánica, hidráulica y neumática. Componen los circuitos de conmutación integrados en un chip. Experimentada con relés o interruptores electromagnéticos para conseguir las condiciones de cada compuerta lógica, por ejemplo, para la función booleana Y (AND) colocaba interruptores en circuito serie, ya que con uno solo de estos que tuviera la condición «abierto», la salida de la compuerta Y sería = 0, mientras que para la implementación de una compuerta O (OR), la conexión de los interruptores tiene una configuración en circuito paralelo.
La tecnología microelectrónica actual permite la elevada integración de transistores actuando como conmutadores en redes lógicas dentro de un pequeño circuito integrado. El chip de la CPU es una de las máximas expresiones de este avance tecnológico.
En nanotecnología se está desarrollando el uso de una compuerta lógica molecular, que haga posible la miniaturización de circuitos.

## Lógica directa
### Compuerta SI o buffer

La compuerta lógica SI realiza la función booleana igualdad. En la práctica se suele utilizar como amplificador de corriente o como seguidor de tensión, para adaptar impedancias (buffer en inglés).
La ecuación característica que describe el comportamiento de la compuerta SI es:
$F=A\,$
Su tabla de verdad es la siguiente:

### compuerta AND

La compuerta lógica Y, más conocida por su nombre en inglés AND ($\scriptstyle AND\equiv Y\equiv \land$), realiza la función booleana de producto lógico. Su símbolo es un punto (·), aunque se suele omitir. Así, el producto lógico de las variables A y B se indica como AB, y se lee A y B o simplemente A por B.
La ecuación característica que describe el comportamiento de la compuerta AND es:
$F=(A)*(B)\,$
Su tabla de verdad es la siguiente:
Así, desde el punto de vista de la aritmética módulo 2, la compuerta AND implementa el producto módulo 2.

### compuerta OR

La compuerta lógica O, más conocida por su nombre en inglés OR ($\scriptstyle OR\equiv O\equiv \lor$), realiza la operación de suma lógica.
La ecuación característica que describe el comportamiento de la compuerta OR es:
$F=A+B\,$
Su tabla de verdad es la siguiente:
Podemos definir la compuerta OR como aquella que proporciona a su salida un 1 lógico si al menos una de sus entradas está a 1.

### compuerta OR-exclusiva (XOR)

La compuerta lógica OR-exclusiva, más conocida por su nombre en inglés XOR, realiza la función booleana A'B+AB'. Su símbolo es $\oplus$ (signo más "+" inscrito en un círculo). En la figura de la derecha pueden observarse sus símbolos en electrónica.
La ecuación característica que describe el comportamiento de la compuerta XOR es:
$F=A\oplus B\,$
$F={\overline {A}}B+A{\overline {B}}\,$
Su tabla de verdad es la siguiente:
Se puede definir esta compuerta como aquella que da por resultado uno, cuando los valores en las entradas son distintos. ej: 1 y 0, 0 y 1 (en una compuerta de dos entradas). Se obtiene cuando ambas entradas tienen distinto valor.
Si la compuerta tuviese tres o más entradas, la XOR tomaría la función de suma de paridad, cuenta el número de unos a la entrada y si son un número impar, pone un 1 a la salida, para que el número de unos pase a ser par. Esto es así porque la operación XOR es asociativa, para tres entradas escribiríamos: a$\oplus$(b$\oplus$c) o bien (a$\oplus$b)$\oplus$c. Su tabla de verdad sería:
Desde el punto de vista de la aritmética módulo 2, la compuerta XOR implementa la suma módulo 2, pero mucho más simple de ver, la salida tendrá un 1 siempre que el número de entradas a 1 sea impar.

## Lógica negada
### Compuerta NO (NOT)

La compuerta lógica NO (NOT en inglés) realiza la función booleana de inversión o negación de una variable lógica. Una variable lógica (A) a la cual se le aplica la negación se pronuncia como "no A" o "A negada".
La ecuación característica que describe el comportamiento de la compuerta NOT es:
$F={\overline {A}}\,$
Su tabla de verdad es la siguiente:
Se puede definir como una compuerta que proporciona el estado inverso del que esté en su entrada.

### Compuerta NO-Y (NAND)

La compuerta lógica NO-Y, más conocida por su nombre en inglés NAND, realiza la operación de producto lógico negado. En ocasiones es llamada también barra de Sheffer. En la figura de la derecha pueden observarse sus símbolos en electrónica.
La ecuación característica que describe el comportamiento de la compuerta NAND es:
$F={\overline {AB}}={\overline {A}}+{\overline {B}}\,$
Su tabla de verdad es la siguiente:
Podemos definir la compuerta NO-Y como aquella que proporciona a su salida un 0 lógico únicamente cuando todas sus entradas están en 1.

### Compuerta NO-O (NOR)

La compuerta lógica NO-O, más conocida por su nombre en inglés NOR, realiza la operación de suma lógica negada. En ocasiones es llamada también barra de Pierce. En la figura de la derecha pueden observarse sus símbolos en electrónica.
La ecuación característica que describe el comportamiento de la compuerta NOR es:
$F={\overline {A+B}}={\overline {A}}*{\overline {B}}\,$
Su tabla de verdad es la siguiente:
Podemos definir la compuerta NO-O como aquella que proporciona a su salida un 1 lógico solo cuando todas sus entradas están a 0. La compuerta lógica NOR constituye un conjunto completo de operadores.

### Compuerta NOR-exclusiva (XNOR)

La compuerta NOR-exclusiva, más conocida por su nombre en inglés NOR exclusive o XNOR, es el complemento de la compuerta OR exclusiva, siendo su función booleana AB + A’B’. Se utiliza el mismo símbolo que la compuerta OR exclusiva (signo más “+” inscrito en un círculo) y su representación en el diseño de circuitos lógicos y ecuación que la describe.
$Y={\overline {A\oplus B}}\,$ o también como: $A\cdot B+{\overline {A}}\cdot {\overline {B}}$
Las tablas de verdad para dos y tres entradas o variables son las siguientes:
Tabla de verdad compuerta XNOR :
| Entrada $A$ | Entrada $B$ | Salida ${\overline {A\oplus B}}\,$ |
| 0 | 0 | 1 |
| 0 | 1 | 0 |
| 1 | 0 | 0 |
| 1 | 1 | 1 |
XNOR de tres entradas :
| Entrada $A$ | Entrada $B$ | Entrada $C$ | Salida ${\overline {A\oplus B\oplus C}}\,$ |
| 0 | 0 | 0 | 1 |
| 0 | 0 | 1 | 0 |
| 0 | 1 | 0 | 0 |
| 0 | 1 | 1 | 1 |
| 1 | 0 | 0 | 0 |
| 1 | 0 | 1 | 1 |
| 1 | 1 | 0 | 1 |
| 1 | 1 | 1 | 0 |
Esta compuerta al ser el complemento de la compuerta OR exclusiva (XOR), sus resultados son uno (1) cuando sus entradas, para el caso de 2, son iguales, ya sean con valor 0 o valor 1 (0 y 0, o 1 y 1). Para más de 2 entradas, si el número de unos de entradas es par, la salida es 1 y si es impar, la salida es 0. Si todas las entradas son 0, la salida es 1, como puede comprobarse en la tabla de verdad de tres entradas.
La compuerta lógica XNOR se identifica como función par, en tanto que la compuerta lógica XOR se identifica como función impar.

## Conjunto de compuertas lógicas completo

Un conjunto de compuertas lógicas completo es aquel con el que se puede implementar cualquier función lógica. A continuación se muestran distintos conjuntos completos (uno por línea):
* compuertas AND, OR y NOT.
* compuertas AND y NOT.
* compuertas OR y NOT.
* compuertas NAND.
* compuertas NOR.
Además, un conjunto de compuertas lógicas es completo si puede implementar todas las compuertas de otro conjunto completo conocido. A continuación se muestran las equivalencias al conjunto de compuertas lógicas completas con las funciones NAND y NOR.
Conjunto de compuertas lógicas completo: :
| $A$ | $B$ | ${\overline {A}}$ | $A\land B$ | $A\lor B$ | $A\rightarrow B$ | Salida función $NAND(A,B)$ | Salida función $NOR(A,B)$ |
| 1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 |
| 1 | 0 | 0 | 0 | 1 | 0 | 1 | 0 |
| 0 | 1 | 1 | 0 | 1 | 1 | 1 | 0 |
| 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 |

### Equivalencias de un conjunto completo

Equivalencias del conjunto completo anterior con sólo compuertas $NAND$:
* $NAND(A,A)\equiv {\overline {A}}\,$
* $NAND[NAND(A,B),NAND(A,B)]\equiv A\land B$
* $NAND[NAND(A,A),NAND(B,B)]\equiv A\lor B$
* $NAND[NAND(NAND[A,A],NAND[A,A]),NAND(B,B)]\equiv A\rightarrow B$
Equivalencias del conjunto completo anterior con sólo compuertas $NOR$:
* $NOR(A,A)\equiv {\overline {A}}\,$
* $NOR[(NOR(A,B)),(NOR(A,B)]\equiv A\lor B$
* $NOR[(NOR(A,A)),(NOR(B,B)]\equiv A\land B$
* $NOR[(NOR((NOR(A,A)),B),NOR((NOR(A,A),B)]\equiv A\rightarrow B$

## Pseudo asociatividad y Pseudo distributividad de $NOR\$ y $\ NAND$

* $A\ NOR\ {\overline {(B\ NOR\ C)}}\equiv {\overline {(A\ NOR\ B)}}\ NOR\ C$
* $A\ NAND\ {\overline {(B\ NAND\ C)}}\equiv {\overline {(A\ NAND\ B)}}\ NAND\ C$
* $A\ NOR\ {\overline {(B\ NAND\ C)}}\equiv {\overline {(A\ NOR\ B)}}\ NAND\ {\overline {(A\ NOR\ C)}}$
* $A\ NAND\ {\overline {(B\ NOR\ C)}}\equiv {\overline {(A\ NAND\ B)}}\ NOR\ {\overline {(A\ NAND\ C)}}$
Restrepo, Lukas. «p-assoc, p-dist of wfs, f in Σ and L(HA)-theory on 0-OL» (en inglés).