stringtranslate.com

Puerta XOR

La compuerta XOR (a veces EOR o EXOR y se pronuncia Exclusive OR ) es una compuerta lógica digital que da una salida verdadera (1 o ALTA) cuando el número de entradas verdaderas es impar. Una compuerta XOR implementa un o exclusivo ( ) de la lógica matemática ; es decir, se obtiene una salida verdadera si una, y solo una, de las entradas de la compuerta es verdadera. Si ambas entradas son falsas (0/BAJO) o ambas son verdaderas, se obtiene una salida falsa. XOR representa la función de desigualdad, es decir, la salida es verdadera si las entradas no son iguales; de lo contrario, la salida es falsa. Una forma de recordar XOR es "debe tener una o la otra, pero no ambas".

Una compuerta XOR puede funcionar como un "inversor programable" en el que una entrada determina si se debe invertir la otra entrada o simplemente pasarla sin cambios. Por lo tanto, funciona como un inversor (una compuerta NOT) que puede activarse o desactivarse mediante un interruptor. [1] [2]

La operación XOR también puede considerarse como una suma módulo 2. Como resultado, las puertas XOR se utilizan para implementar la suma binaria en las computadoras. Un semisumador consta de una puerta XOR y una puerta AND . La puerta también se utiliza en sustractores y comparadores . [3]

Las expresiones algebraicas o o o todas representan la puerta XOR con entradas A y B. El comportamiento de XOR se resume en la tabla de verdad que se muestra a la derecha.

Símbolos

Existen tres símbolos esquemáticos para las puertas XOR: los símbolos ANSI y DIN tradicionales y el símbolo IEC . En algunos casos, el símbolo DIN se utiliza con ⊕ en lugar de ≢. Para obtener más información, consulte Símbolos de puertas lógicas .

El "=1" en el símbolo IEC indica que la salida se activa solo mediante una entrada activa.

Los símbolos lógicos ⊕, J pq y ⊻ se pueden utilizar para denotar una operación XOR en expresiones algebraicas.

Los lenguajes similares a C utilizan el símbolo de intercalación^ para indicar una operación XOR bit a bit. (Tenga en cuenta que el símbolo de intercalación no indica una conjunción lógica (AND) en estos lenguajes, a pesar de la similitud de los símbolos).

Implementación

La compuerta XOR se implementa con mayor frecuencia mediante circuitos MOSFET . Algunas de esas implementaciones incluyen:

AND-OR-Invertir

Las puertas XOR se pueden implementar utilizando lógica AND-OR-Invert ( AOI ) o OR-AND-Invert (OAI). [4]

CMOS

Las implementaciones de metal-óxido-semiconductor ( CMOS ) de la puerta XOR correspondiente a la lógica AOI anterior se muestran a continuación.

A la izquierda, los transistores nMOS y pMOS están dispuestos de manera que los pares de entrada y activan los 2 transistores pMOS de la parte superior izquierda o los 2 transistores pMOS de la parte superior derecha respectivamente, conectando Vdd a la salida para un nivel lógico alto. Los pares de entrada restantes y activan cada una de las dos rutas nMOS en la parte inferior a Vss para un nivel lógico bajo. [5]

Si se dispone de entradas invertidas (por ejemplo, de un flip-flop ), se puede utilizar esta compuerta directamente. De lo contrario, se necesitan dos inversores adicionales con dos transistores cada uno para generar y , lo que eleva el número total de transistores a doce.

La implementación de AOI sin entrada invertida se ha utilizado, por ejemplo, en la CPU Intel 386. [6]

Puertas de transmisión

La puerta XOR también se puede implementar mediante el uso de puertas de transmisión con lógica de transistor de paso .

Implementación de la compuerta XOR en la puerta de transmisión

Esta implementación utiliza dos compuertas de transmisión y dos inversores no mostrados en el diagrama para generar y para un total de ocho transistores, cuatro menos que en el diseño anterior. La función XOR se implementa pasando a la salida el valor invertido de A cuando B es alto y pasando el valor de A cuando B está en un nivel lógico bajo. Entonces, cuando ambas entradas son bajas, la compuerta de transmisión en la parte inferior está apagada y la de arriba está encendida y deja pasar A, que es baja, por lo que la salida es baja. Cuando ambas son altas, solo la de abajo está activa y deja pasar el valor invertido de A y, como A es alta, la salida volverá a ser baja. De manera similar, si B permanece alta pero A es baja, la salida sería que es alta como se esperaba y si B es baja pero A es alta, el valor de A pasa y la salida es alta, completando la tabla de verdad para la compuerta XOR. [7]

La desventaja de la implementación anterior es que, dado que las puertas de transmisión no son interruptores ideales, existe una resistencia asociada con ellas, por lo que, dependiendo de la intensidad de la señal de entrada, conectarlas en cascada puede degradar los niveles de salida. [8]

Cableado optimizado de lógica de puerta de paso

La implementación de la compuerta de transmisión anterior se puede optimizar aún más de ocho a seis transistores implementando la funcionalidad del inversor que genera y la compuerta de paso inferior con solo dos transistores dispuestos como un inversor pero con la fuente del pMOS conectada a en lugar de Vdd y la fuente del nMOS conectada a en lugar de GND. [8]

Cableado de lógica de transmisión optimizada de una puerta XOR

Los dos transistores que se encuentran más a la izquierda mencionados anteriormente realizan una inversión condicional optimizada de A cuando B está en un nivel lógico alto utilizando la lógica del transistor de paso para reducir el conteo de transistores y cuando B está en un nivel lógico bajo, su salida está en un estado de alta impedancia. Los dos en el medio son una compuerta de transmisión que impulsa la salida al valor de A cuando B está en un nivel lógico bajo y los dos transistores que se encuentran más a la derecha forman un inversor necesario para generar el circuito lógico utilizado por la compuerta de transmisión y el transistor de paso. [9]

Al igual que en la implementación anterior, se debe tener en cuenta la conexión directa de las entradas a las salidas a través de los transistores de compuerta de paso o a través de los dos transistores más a la izquierda, especialmente al conectarlos en cascada. [8]

Alternativas

Circuito de compuerta XOR que utiliza tres compuertas mixtas

Si no se dispone de un tipo específico de compuerta, se puede construir un circuito que implemente la misma función a partir de otras compuertas disponibles. Un circuito que implemente una función XOR se puede construir de manera trivial a partir de una compuerta XNOR seguida de una compuerta NOT . Si consideramos la expresión , podemos construir un circuito de compuerta XOR directamente utilizando compuertas AND, OR y NOT . Sin embargo, este enfoque requiere cinco compuertas de tres tipos diferentes.

Como alternativa, si hay diferentes puertas disponibles, podemos aplicar el álgebra de Boole para transformar como se indicó anteriormente, y aplicar la Ley de De Morgan al último término para obtener lo que se puede implementar usando solo cuatro puertas como se muestra a la derecha. Intuitivamente, XOR es equivalente a OR excepto cuando A y B son altos. Entonces, el AND del OR con luego NAND que da un bajo solo cuando A y B son altos es equivalente al XOR.

Un circuito de compuerta XOR se puede realizar a partir de cuatro compuertas NAND . De hecho, tanto las compuertas NAND como las NOR son las llamadas "compuertas universales" y cualquier función lógica se puede construir a partir de lógica NAND o lógica NOR únicamente. Si las cuatro compuertas NAND se reemplazan por compuertas NOR , esto da como resultado una compuerta XNOR , que se puede convertir en una compuerta XOR invirtiendo la salida o una de las entradas (por ejemplo, con una quinta compuerta NOR ).

Una disposición alternativa es de cinco puertas NOR en una topología que enfatiza la construcción de la función de , observando de la Ley de De Morgan que una puerta NOR es una puerta AND de entrada invertida . Otra disposición alternativa es de cinco puertas NAND en una topología que enfatiza la construcción de la función de , observando de la Ley de De Morgan que una puerta NAND es una puerta OR de entrada invertida .

En el caso de las construcciones NAND, la disposición superior requiere menos puertas. En el caso de las construcciones NOR, la disposición inferior ofrece la ventaja de un retardo de propagación más corto (el retardo de tiempo entre el cambio de una entrada y el cambio de la salida).

Paquetes de chips estándar

Chip XOR de doble entrada cuádruple Philips 4070 en placa de circuito impreso

Los chips XOR están disponibles en todo el mundo. Los códigos de chip estándar más comunes son:

Más de dos entradas

La interpretación literal del nombre "o exclusivo", o la observación del símbolo rectangular IEC, plantea la cuestión del comportamiento correcto con entradas adicionales. [12] Si una compuerta lógica aceptara tres o más entradas y produjera una salida verdadera si exactamente una de esas entradas fuera verdadera, entonces sería en efecto un detector one-hot (y de hecho este es el caso para solo dos entradas). Sin embargo, rara vez se implementa de esta manera en la práctica.

Lo más habitual es considerar que las entradas subsiguientes se aplican a través de una cascada de operaciones binarias exclusivas: las dos primeras señales se introducen en una compuerta XOR, luego la salida de esa compuerta se introduce en una segunda compuerta XOR junto con la tercera señal, y así sucesivamente para las señales restantes. El resultado es un circuito que genera un 1 cuando el número de 1 en sus entradas es impar y un 0 cuando el número de 1 entrantes es par. Esto lo hace prácticamente útil como generador de paridad o sumador módulo 2 .

Por ejemplo, el microchip 74LVC1G386 se anuncia como una puerta lógica de tres entradas e implementa un generador de paridad. [13]

Aplicaciones

Las puertas XOR y las puertas AND son las dos estructuras más utilizadas en aplicaciones VLSI . [14]

Suma

Ejemplo de sumador completo
Ejemplo de medio sumador

La compuerta lógica XOR se puede utilizar como un sumador de un bit que suma dos bits cualesquiera para generar un bit. Por ejemplo, si sumamos 1más 1en binario , esperamos una respuesta de dos bits 10(es decir, 2en decimal). Dado que el bit de suma final en esta salida se logra con XOR, el bit de acarreo anterior se calcula con una compuerta AND . Este es el principio principal de los sumadores a la mitad . Se puede encadenar un circuito sumador completo ligeramente más grande para sumar números binarios más largos.

En determinadas situaciones, las entradas de una compuerta OR (por ejemplo, en un sumador completo) o de una compuerta XOR nunca pueden ser ambas 1. Como esta es la única combinación en la que difieren las salidas de las compuertas OR y XOR, una compuerta OR puede reemplazarse por una compuerta XOR (o viceversa) sin alterar la lógica resultante. Esto es conveniente si el circuito se está implementando utilizando chips de circuitos integrados simples que contienen solo un tipo de compuerta por chip.

Generador de números pseudoaleatorios

Ejemplo de generador de números pseudoaleatorios Galois LFSR de 16 bits

Los generadores de números pseudoaleatorios (PRN) , específicamente los registros de desplazamiento con retroalimentación lineal (LFSR), se definen en términos de la operación exclusiva-o. Por lo tanto, una configuración adecuada de puertas XOR puede modelar un registro de desplazamiento con retroalimentación lineal para generar números aleatorios.

Detectores de fase

Las puertas XOR se pueden utilizar en los detectores de fase más simples . [15] : 425 

Almacenar en búfer o invertir una señal

Se puede utilizar una compuerta XOR para cambiar fácilmente entre el almacenamiento en búfer o la inversión de una señal. Por ejemplo, se pueden agregar compuertas XOR a la salida de un circuito decodificador de pantalla de siete segmentos para permitir que un usuario elija entre una salida activa baja o activa alta.

Correlación y detección de secuencias

Las puertas XOR producen un resultado 0cuando ambas entradas coinciden. Cuando se busca un patrón de bits específico o una secuencia PRN en una secuencia de datos muy larga, se puede utilizar una serie de puertas XOR para comparar una cadena de bits de la secuencia de datos con la secuencia de destino en paralelo. 0Luego, se puede contar el número de salidas para determinar qué tan bien coincide la secuencia de datos con la secuencia de destino. Los correladores se utilizan en muchos dispositivos de comunicaciones, como receptores y decodificadores CDMA , para la corrección de errores y códigos de canal. En un receptor CDMA, los correladores se utilizan para extraer la polaridad de una secuencia PRN específica de una colección combinada de secuencias PRN.

Un correlador que busque 11010en la secuencia de datos 1110100101compararía los bits de datos entrantes con la secuencia de destino en cada desplazamiento posible mientras cuenta la cantidad de coincidencias (ceros):

1110100101 (datos)11010 (objetivo)00111 (XOR) 2 bits cero1110100101 11010 00000 5 bits cero1110100101 11010 01110 2 bits cero1110100101 11010 10011 2 bits cero1110100101 11010 01000 4 bits cero1110100101 11010 11111 0 bits ceroCoincidencias por desplazamiento: .  : ::::::::: -----------0 1 2 3 4 5

En este ejemplo, la mejor coincidencia se produce cuando la secuencia de destino está desplazada por 1 bit y los cinco bits coinciden. Cuando está desplazada por 5 bits, la secuencia coincide exactamente con su inversa. Al observar la diferencia entre la cantidad de unos y ceros que salen del banco de puertas XOR, es fácil ver dónde se produce la secuencia y si está invertida o no. Las secuencias más largas son más fáciles de detectar que las secuencias cortas.

Representación analítica

es una representación analítica de la puerta XOR:

es una representación analítica alternativa.

Véase también

Referencias

  1. ^ Broesch, James D. (2012). Circuitos programables prácticos: una guía para PLD, máquinas de estado y microcontroladores. Elsevier Science. pág. 20. ISBN 978-0323139267.
  2. ^ Van Houtven, Laurens (2017). Cripto 101 (PDF) . pag. 17.
  3. ^ Fletcher, William (1980). Un enfoque de ingeniería para el diseño digital . Prentice-Hall. pág. 98. ISBN 0-13-277699-5.
  4. ^ Fischer, P. "Aussagenlogik und Gatter" (PDF) . Universidad de Heidelberg . Consultado el 21 de enero de 2024 .
  5. ^ Pedroni, Volnei A. (25 de enero de 2008). Electrónica digital y diseño con VHDL. Morgan Kaufmann. ISBN 978-0-08-055755-7. Recuperado el 8 de noviembre de 2022 .
  6. ^ Shiriff, Ken. "Dos circuitos XOR interesantes dentro del procesador Intel 386" . Consultado el 14 de enero de 2024 .
  7. ^ Oklobdzija, Vojin G. (26 de diciembre de 2001). Manual de ingeniería informática. CRC Press. ISBN 978-0-8493-0885-7. Recuperado el 8 de noviembre de 2022 .
  8. ^ abc Diseño de puertas lógicas combinacionales en CMOS (PDF) . p. 233 . Consultado el 9 de noviembre de 2022 .
  9. ^ Annaratone, Silvia (6 de diciembre de 2012). Diseño de circuitos CMOS digitales. Springer Science & Business Media. ISBN 978-1-4613-2285-6. Recuperado el 8 de noviembre de 2022 .
  10. ^ ab Ferdjallah, Mohammed (15 de junio de 2011). Introducción a los sistemas digitales: modelado, síntesis y simulación mediante VHDL. John Wiley & Sons. pág. 38. ISBN 978-1-118-00770-9. Recuperado el 9 de noviembre de 2022 .
  11. ^ Ross, Dickon; Lowe, Doug (24 de septiembre de 2013). Electrónica todo en uno para principiantes - Reino Unido. John Wiley & Sons. pág. 647. ISBN 978-1-118-58971-7. Recuperado el 9 de noviembre de 2022 .
  12. ^ Shustov, Michael A. (4 de julio de 2023). "La "XOR" frente a la "Suma módulo 2"". www.edn.com .
  13. ^ 74LVC1G386 Archivado el 29 de diciembre de 2009 en la hoja de datos de Wayback Machine
  14. ^ "Comparación de diferentes técnicas de diseño de puertas XOR y AND utilizando la herramienta de simulación EDA". Las puertas XOR y AND son los componentes básicos más importantes de cualquier aplicación VLSI.
  15. ^ Rabaey, Jan M. (1996). Circuitos integrados digitales: una perspectiva de diseño . Upper Saddle River, NJ: Prentice-Hall. ISBN 978-0-13-178609-7.