Un sumador , o sumador , [ 1 ] es un circuito digital que realiza la suma de números. En muchas computadoras y otros tipos de procesadores , los sumadores se utilizan en las unidades aritmético-lógicas (ALU). También se utilizan en otras partes del procesador, donde se emplean para calcular direcciones , índices de tablas , operadores de incremento y decremento, y operaciones similares.
Aunque se pueden construir sumadores para diversas representaciones numéricas , como el decimal codificado en binario o el exceso de 3 , los sumadores más comunes operan con números binarios . En los casos en que se utiliza el complemento a dos o el complemento a uno para representar números negativos , es sencillo convertir un sumador en un sumador-restador . Otras representaciones numéricas con signo requieren una lógica más compleja en torno al sumador básico.
Historia
George Stibitz inventó el sumador binario de 2 bits (el Modelo K ) en 1937.
Sumadores binarios
Medio sumador
El semisumador suma dos dígitos binarios simples y . Tiene dos salidas: suma ( ) y acarreo ( ). La señal de acarreo representa un desbordamiento al siguiente dígito de una suma de varios dígitos. El valor de la suma es . El diseño más simple de un semisumador incorpora una puerta XOR para y una puerta AND para . La lógica booleana para la suma (en este caso ) será mientras que para el acarreo ( ) será . Con la adición de una puerta OR para combinar sus salidas de acarreo, se pueden combinar dos semisumadores para formar un sumador completo. [ 2 ]
La tabla de verdad para el semisumador es:
Diversos circuitos lógicos digitales de semisumador:
Media víbora en acción.
Esquema de un semisumador implementado con cinco puertas NAND .
Símbolo esquemático de un semisumador de 1 bit.
Sumador completo
Un sumador completo suma números binarios y tiene en cuenta los valores de entrada y salida. Un sumador completo de un bit suma tres números de un bit, a menudo escritos como , , y ; y son los operandos, y es un bit de entrada de la etapa anterior menos significativa. [ 3 ] El circuito produce una salida de dos bits. El acarreo y la suma de salida se representan típicamente mediante las señales y , donde la suma es igual a . El sumador completo suele ser un componente en una cascada de sumadores, que suman números binarios de 8, 16, 32, etc. bits.
Un sumador completo se puede implementar de muchas maneras diferentes, como con un circuito personalizado a nivel de transistor o compuesto por otras compuertas. La implementación más común es con:
Las expresiones anteriores para y se pueden derivar utilizando un mapa de Karnaugh para simplificar la tabla de verdad.
En esta implementación, la compuerta OR final, antes de la salida de acarreo, puede reemplazarse por una compuerta XOR sin alterar la lógica resultante. Esto se debe a que cuando A y B son ambos 1, el término siempre es 0 y, por lo tanto, solo puede ser 0. En consecuencia, las entradas a la compuerta OR final nunca pueden ser ambas 1 (esta es la única combinación en la que las salidas OR y XOR difieren).
Debido a la propiedad de completitud funcional de las puertas NAND y NOR, también se puede implementar un sumador completo utilizando nueve puertas NAND [ 4 ] o nueve puertas NOR .
Resulta conveniente utilizar solo dos tipos de compuertas si el circuito se implementa utilizando chips de circuitos integrados simples que contienen un solo tipo de compuerta por chip.
Un sumador completo también se puede construir a partir de dos semisumadores conectando y a la entrada de un semisumador, luego tomando su salida de suma como una de las entradas del segundo semisumador y como su otra entrada, y finalmente las salidas de acarreo de los dos semisumadores se conectan a una puerta OR. La salida de suma del segundo semisumador es la salida de suma final ( ) del sumador completo y la salida de la puerta OR es la salida de acarreo final ( ). La ruta crítica de un sumador completo pasa por ambas puertas XOR y termina en el bit de suma . Suponiendo que una puerta XOR tarda 1 retardo en completarse, el retardo impuesto por la ruta crítica de un sumador completo es igual a:
La ruta crítica de un acarreo pasa por una puerta XOR en el sumador y por dos puertas (AND y OR) en el bloque de acarreo y, por lo tanto, si las puertas AND u OR tardan 1 retardo en completarse, tiene un retardo de:
La tabla de verdad para el sumador completo es:
Invertir todas las entradas de un sumador completo también invierte todas sus salidas, lo que puede utilizarse en el diseño de sumadores de acarreo en cascada rápidos, ya que no es necesario invertir el acarreo. [ 5 ]
Diversos circuitos lógicos digitales sumadores completos:
Súper completa en acción.
Esquema de un sumador completo implementado con nueve puertas NAND .
Esquema de un sumador completo implementado con nueve puertas NOR .
Símbolo esquemático de un sumador completo de 1 bit con C in y C out dibujados en los lados del bloque para enfatizar su uso en un sumador multibit.
Sumadores que admiten múltiples bits
Suma de acarreo en cascada


Es posible crear un circuito lógico utilizando múltiples sumadores completos para sumar números de N bits. Cada sumador completo recibe como entrada un , que es el del sumador anterior. Este tipo de sumador se denomina sumador de acarreo en cascada (RCA), ya que cada bit de acarreo se propaga al siguiente sumador completo. El primer (y solo el primero) sumador completo puede ser reemplazado por un semisumador (bajo el supuesto de que ).
El diseño de un sumador de acarreo en cascada es simple, lo que permite un tiempo de diseño rápido; sin embargo, el sumador de acarreo en cascada es relativamente lento, ya que cada sumador completo debe esperar a que se calcule el bit de acarreo del sumador completo anterior. El retardo de puerta se puede calcular fácilmente inspeccionando el circuito del sumador completo. Cada sumador completo requiere tres niveles de lógica. En un sumador de acarreo en cascada de 32 bits, hay 32 sumadores completos, por lo que el retardo de la ruta crítica (peor caso) es 3 (desde la entrada del primer sumador) + 31 × 2 (para la propagación del acarreo en los sumadores posteriores) = 65 retardos de puerta. [ 6 ] La ecuación general para el retardo en el peor caso para un sumador de acarreo en cascada de n bits, que tiene en cuenta tanto los bits de suma como los de acarreo, es:
Un diseño con polaridades de acarreo alternas y compuertas AND-OR-Invert optimizadas puede ser aproximadamente el doble de rápido. [ 7 ] [ 5 ]
Súpera de anticipación de acarreo (Weinberger y Smith, 1958)


Para reducir el tiempo de cálculo, Weinberger y Smith inventaron una forma más rápida de sumar dos números binarios utilizando sumadores con anticipación de acarreo (CLA). [ 8 ] Introdujeron dos señales ( y ) para cada posición de bit, según si un acarreo se propaga desde una posición de bit menos significativa (al menos una entrada es un 1), se genera en esa posición de bit (ambas entradas son 1) o se elimina en esa posición de bit (ambas entradas son 0). En la mayoría de los casos, es simplemente la salida de suma de un semisumador y es la salida de acarreo del mismo sumador. Después de que se generan y , se crean los acarreos para cada posición de bit.
La mera derivación de la recurrencia CLA de Weinberger-Smith son: el sumador de Brent-Kung (BKA), [ 9 ] y el sumador de Kogge-Stone (KSA). [ 10 ] [ 11 ] Esto se demostró en el artículo de Oklobdzija y Zeydel en el IEEE Journal of Solid-State Circuits. [ 12 ]
Algunas arquitecturas de sumadores multibit dividen el sumador en bloques. Es posible variar la longitud de estos bloques en función del retardo de propagación de los circuitos para optimizar el tiempo de cálculo. Estos sumadores basados en bloques incluyen el sumador de omisión de acarreo (o derivación de acarreo), que determina los valores de suma y acarreo para cada bloque en lugar de para cada bit, y el sumador de selección de acarreo, que pregenera los valores de suma y acarreo para cualquiera de las posibles entradas de acarreo (0 o 1) al bloque, utilizando multiplexores para seleccionar el resultado apropiado cuando se conoce el bit de acarreo.
Al combinar varios sumadores con anticipación de acarreo, se pueden crear sumadores aún más grandes. Esto se puede utilizar en varios niveles para crear sumadores aún mayores. Por ejemplo, el siguiente sumador es un sumador de 64 bits que utiliza cuatro CLA de 16 bits con dos niveles de unidades de anticipación de acarreo .
Otros diseños de sumadores incluyen el sumador con selección de acarreo , el sumador de suma condicional , el sumador con omisión de acarreo y el sumador con acarreo completo.
sumadores de acarreo
Si un circuito sumador debe calcular la suma de tres o más números, puede ser ventajoso no propagar el acarreo. En su lugar, se utilizan sumadores de tres entradas, que generan dos resultados: una suma y un acarreo. La suma y el acarreo se pueden introducir en dos entradas del siguiente sumador de tres números sin tener que esperar a que se propague la señal de acarreo. Sin embargo, después de todas las etapas de la suma, se debe utilizar un sumador convencional (como el de acarreo en cascada o el de anticipación) para combinar la suma y el acarreo finales.
compresores 3:2
Un sumador completo puede considerarse un compresor con pérdida 3:2 : suma tres entradas de un bit y devuelve el resultado como un único número de dos bits; es decir, asigna 8 valores de entrada a 4 valores de salida. (El término "compresor" en lugar de "contador" se introdujo en [ 13 ] ). Así, por ejemplo, una entrada binaria de 101 produce una salida de 1 + 0 + 1 = 10 (número decimal 2). El acarreo representa el bit uno del resultado, mientras que la suma representa el bit cero. Del mismo modo, un semisumador puede utilizarse como un compresor con pérdida 2:2 , que comprime cuatro posibles entradas en tres posibles salidas.
Estos compresores se pueden usar para acelerar la suma de tres o más sumandos. Si el número de sumandos es exactamente tres, la configuración se conoce como sumador con acarreo ahorrado . Si el número de sumandos es cuatro o más, se requiere más de una capa de compresores, y existen varios diseños posibles para el circuito: los más comunes son los árboles de Dadda y Wallace . Este tipo de circuito se usa principalmente en circuitos multiplicadores , razón por la cual estos circuitos también se conocen como multiplicadores de Dadda y Wallace.
Sumadores cuánticos

Utilizando únicamente las compuertas lógicas cuánticas Toffoli y CNOT , es posible producir sumadores completos y semisumadores cuánticos. [ 14 ] [ 15 ] [ 16 ] Los mismos circuitos también pueden implementarse en computación reversible clásica , ya que tanto CNOT como Toffoli son también compuertas lógicas clásicas .
Dado que la transformada cuántica de Fourier tiene una baja complejidad de circuito , también puede utilizarse eficientemente para sumar números. [ 17 ] [ 18 ] [ 19 ]
sumadores analógicos
Al igual que en los sumadores binarios, la combinación de dos corrientes de entrada equivale a sumarlas. Dentro de las limitaciones del hardware, se pueden sumar señales no binarias (es decir, con una base mayor que 2) para calcular una suma. Esta técnica, también conocida como "amplificador sumador" [ 20 ] , permite reducir el número de transistores en un circuito de suma.
Véase también
- Multiplicador binario
- Restador
- Mezclador electrónico : para añadir señales analógicas
Referencias
- ↑ Singh, Ajay Kumar (2010). "10. Circuitos sumadores y multiplicadores" . Diseño VLSI digital . Prentice Hall India. págs. 321–344 . ISBN 978-81-203-4187-6– vía Google Libros.
- ↑ Lancaster, Geoffrey A. (2004). "10. La visión del desarrollador de software sobre los sumadores de hardware: § Semisumadores, § Sumadores completos" . Excel HSC Software Design and Development . Pascal Press. pág. 180. ISBN 978-1-74125175-3.
- ↑ Mano, M. Morris (1979). Lógica digital y diseño de computadoras . Prentice-Hall . págs. 119–123 . ISBN 978-0-13-214510-7OCLC 1413827071
- ↑ Teja, Ravi (15 de abril de 2021), Circuitos de sumador medio y sumador completo , consultado el 27 de julio de 2021.
- ^ Fischer , P. " Einfache Schaltungsblöcke" (PDF) . Universidad de Heidelberg. Archivado desde el original (PDF) el 5 de septiembre de 2021 . Consultado el 5 de septiembre de 2021 .
- ↑ Satpathy, Pinaki (2016). "3. Diseño de un sumador completo multibit utilizando lógica diferente §3.1 Sumador completo de 4 bits" . Diseño e implementación de un sumador con selección de acarreo utilizando T-Spice . Anchor Academic Publishing. pág. 22. ISBN 978-3-96067058-2.
- ↑ Burgess, Neil (2011). Sumadores rápidos de acarreo en cascada en VLSI CMOS de celda estándar . 20.º Simposio IEEE sobre aritmética computacional . págs. 103–111 . doi : 10.1109/ARITH.2011.23 . ISBN 978-1-4244-9457-6.
- ↑ Weinberger, A.; Smith, JL (1958). "Una lógica para la suma de alta velocidad" (PDF) . Nat. Bur. Stand. Circ. (591). Oficina Nacional de Estándares: 3–12 .
- ↑ Brent, Richard Peirce ; Kung, Hsiang Te (marzo de 1982). "Un diseño regular para sumadores paralelos" . IEEE Transactions on Computers . C-31 (3): 260–264 . doi : 10.1109/TC.1982.1675982 . ISSN 0018-9340 . S2CID 17348212. Archivado del original el 24 de septiembre de 2017.
- ↑ Kogge, Peter Michael ; Stone, Harold S. (agosto de 1973). "Un algoritmo paralelo para la solución eficiente de una clase general de ecuaciones de recurrencia". IEEE Transactions on Computers . C-22 (8): 786–793 . doi : 10.1109/TC.1973.5009159 . S2CID 206619926 .
- ↑ Reynders, Nele; Dehaene, Wim (2015). Diseño de circuitos digitales de bajo voltaje y alta eficiencia energética . Circuitos analógicos y procesamiento de señales. Springer . doi : 10.1007/978-3-319-16136-5 . ISBN 978-3-319-16135-8. ISSN 1872-082X . LCCN 2015935431 .
- ↑ Zeydel, BR; Baran, D.; Oklobdzija, VG (junio de 2010). "Diseño energéticamente eficiente de sumadores VLSI de alto rendimiento" (PDF) . IEEE Journal of Solid-State Circuits . 45 (6): 1220– 33. doi : 10.1109/JSSC.2010.2048730 .
- ↑ Oklobdzija, VG; Villeger, D. (junio de 1995). "Mejora del diseño de multiplicadores mediante el uso de un árbol de compresión de columnas mejorado y un sumador final optimizado en tecnología CMOS" (PDF) . IEEE Transactions on Very Large Scale Integration (VLSI) Systems . 3 (2): 292– 301. doi : 10.1109/92.386228 .
- ↑ Feynman, Richard P. (1986). "Computadoras mecánicas cuánticas". Fundamentos de la física . 16 (6). Springer Science and Business Media LLC: 507– 531. Bibcode : 1986FoPh...16..507F . doi : 10.1007/bf01886518 . ISSN 0015-9018 . S2CID 122076550 .
- ↑ "Ejemplo de código: Sumador cuántico completo" . QuTech (Universidad Tecnológica de Delft (TU Delft) y la Organización Neerlandesa para la Investigación Científica Aplicada (TNO)).
- ↑ Dibyendu Chatterjee, Arijit Roy (2015). "Un esquema de semisumador cuántico basado en transmon" . Progress of Theoretical and Experimental Physics . 2015 (9): 093A02. Bibcode : 2015PTEP.2015i3A02C . doi : 10.1093/ptep/ptv122 .
- ↑ Draper, Thomas G. (7 de agosto de 2000). "Suma en una computadora cuántica". arXiv : quant-ph/0008033 .
- ↑ Ruiz-Pérez, Lidia; Juan Carlos, García-Escartín (2 de mayo de 2017). "Aritmética cuántica con la transformada cuántica de Fourier". Procesamiento de información cuántica . 16 (6): 152. arXiv : 1411.5949v2 . Bibcode : 2017QuIP...16..152R . doi : 10.1007/s11128-017-1603-1 . S2CID 10948948 .
- ↑ Şahin, Engin (2020). "Operaciones aritméticas cuánticas basadas en la transformada de Fourier cuántica en enteros con signo". International Journal of Quantum Information . 18 (6): 2050035. arXiv : 2005.00443v3 . Bibcode : 2020IJQI...1850035S . doi : 10.1142/s0219749920500355 . ISSN 1793-6918 .
- ↑ "El amplificador sumador es un sumador de voltaje con amplificador operacional" . 22 de agosto de 2013.
Lecturas adicionales
- Liu, Tso-Kai; Hohulin, Keith R.; Shiau, Lih-Er; Muroga, Saburo (enero de 1974). "Sumadores completos óptimos de un bit con diferentes tipos de compuertas". IEEE Transactions on Computers . C-23 (1). Bell Laboratories: IEEE : 63–70 . doi : 10.1109/TC.1974.223778 . ISSN 0018-9340 . S2CID 7746693 .
- Lai, Hung Chi; Muroga, Saburo (septiembre de 1979). "Sumadores paralelos binarios mínimos con compuertas NOR (NAND)". IEEE Transactions on Computers . C-28 (9). IEEE : 648–659 . doi : 10.1109/TC.1979.1675433 . S2CID 23026844 .
- Mead, Carver; Conway, Lynn (1980) [diciembre de 1979]. Introducción a los sistemas VLSI . Addison-Wesley . Bibcode : 1980aw...book.....M . ISBN 978-0-20104358-7. OCLC 634332043 . Consultado el 12 de mayo de 2018 .
- Davio, Marc; Dechamps, Jean-Pierre; Thayse, André (1983). Sistemas Digitales, con implementación de algoritmos . Wiley . ISBN 978-0-471-10413-1LCCN 82-2710 . OCLC 8282197 .
- Gosling, John (enero de 1971). "Revisión de técnicas de suma de alta velocidad". Proc. IEE . 188 (1): 29– 35. doi : 10.1049/piee.1971.0004 .
Enlaces externos
Contenido multimedia relacionado con Adders (circuitos digitales) en Wikimedia Commons.- Sumador y restador completo de 8 bits , una demostración de un sumador completo interactivo creado en JavaScript exclusivamente con fines didácticos.
- Brunnock, Sean. "Demostraciones interactivas de sumadores parciales y completos en HTML5" .
- Shirriff, Ken (noviembre de 2020). "Ingeniería inversa del circuito de anticipación de acarreo en el procesador Intel 8008" .
- Sumadores (electrónica)
- Aritmética binaria