Otro circuito lógico combinacional común y muy útil que puede ser construido usando sólo unas pocas compuertas lógicas básicas permitiendo sumar dos o más números binarios es el Sumador Binario.
Un circuito básico de Sumador Binario se puede hacer a partir de puertas estándar AND y Ex-OR permitiéndonos «sumar» dos números binarios de un solo bit, A y B.
La adición de estos dos dígitos produce una salida llamada la SUMA de la adición y una segunda salida llamada el bit CARRY o Carry-out, ( COUT ) de acuerdo con las reglas de la adición binaria. Uno de los principales usos del Sumador Binario es en circuitos aritméticos y de conteo. Considere la simple adición de los dos números denarios (base 10) de abajo.
123 | A | (Augend) | + 789 | B | (Addend) |
912 | SUMA |
Desde nuestras clases de matemáticas en el colegio, aprendimos que cada columna de números se suma empezando por la derecha y que cada dígito tiene un valor ponderado dependiendo de su posición dentro de las columnas.
Cuando se suma cada columna se genera un acarreo si el resultado es mayor o igual a 10, el número base. Este acarreo se añade al resultado de la suma de la siguiente columna a la izquierda y así sucesivamente, la simple suma de las matemáticas de la escuela, sumar los números y llevar.
La suma de números binarios es exactamente la misma idea que la de la suma de números decimales, pero esta vez sólo se genera un acarreo cuando el resultado en cualquier columna es mayor o igual a «2», el número base del binario. En otras palabras, 1 + 1 crea un acarreo.
Suma binaria
La suma binaria sigue estas mismas reglas básicas que para la suma denaria anterior, excepto que en binario sólo hay dos dígitos, siendo el mayor «1». Así que cuando se suman números binarios, se genera un carry out cuando la «SUMA» es igual o mayor que dos (1+1) y esto se convierte en un bit «CARRY» para cualquier adición posterior que se pasa a la siguiente columna para la adición y así sucesivamente. Considere la adición de un solo bit a continuación.
Suma binaria de dos bits
0 | 0 | 1 | 1 |
+ 0 | + 1 | + 0 | + 1 | 0 | 1 | 1 | (carry) 1←0 |
Cuando los dos bits simples, A y B se suman, la suma de «0 + 0», «0 + 1» y «1 + 0» da como resultado un «0» o un «1» hasta llegar a la columna final de «1 + 1» entonces la suma es igual a «2». Pero el número dos no existe en binario sin embargo, 2 en binario es igual a 10, es decir un cero para la suma más un bit de acarreo extra.
Entonces la operación de un sumador simple requiere dos entradas de datos produciendo dos salidas, la Suma (S) de la ecuación y un bit de acarreo (C) como se muestra.
Diagrama de bloques del sumador binario
Para el problema de suma simple de 1 bit anterior, el bit de acarreo resultante podría ser ignorado, pero puede haber notado algo más con respecto a la adición de estos dos bits, la suma de su adición binaria se asemeja a la de una puerta Exclusive-OR. Si etiquetamos los dos bits como A y B entonces la tabla de verdad resultante es la suma de los dos bits pero sin el acarreo final.
Puerta OR Exclusiva de 2 entradas
Símbolo | Tabla de verdad |
2 entradas Ex-Puerta OR
|
A | S | 0 | 0 | 0 | 0 | 1 | 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 | 0 | 1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
1 | 0 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
00 | 00 | 01 | 01 | + 00 | + 01 | + 00 | + 01 | 00 | 01 | 01 | 10 |
A partir de las ecuaciones anteriores sabemos ahora que una puerta Exclusive-OR sólo producirá una salida «1» cuando «AMBAS» entradas están en la lógica «1», por lo que necesitamos una salida adicional para producir el bit de acarreo cuando «AMBAS» entradas A y B están en la lógica «1». Una puerta digital que encaja perfectamente produciendo una salida «1» cuando sus dos entradas A y B están a «1» (HIGH) es la puerta AND estándar.
2-entrada AND
Símbolo | Tabla de verdad | ||||
2-entrada AND Gate
|
B | A | C | 0 | 0 |
0 | 1 | 0 | |||
1 | 0 | 0 | 0 | 1 | 1 |
Al combinar la puerta Exclusive-OR con la puerta AND se obtiene un circuito sumador binario digital sencillo conocido comúnmente como circuito «Half Adder».
Un circuito semi sumador
Un semi sumador es un circuito lógico que realiza una operación de adición en dos dígitos binarios. El medio sumador produce una suma y un valor de acarreo que son ambos dígitos binarios.
Tabla de verdad del medio sumador con el acarreo
Símbolo | Tabla de verdad | |||||||||||||||||||||||||||||||||||||||||||||||
A | SUMA | CARRY | ||||||||||||||||||||||||||||||||||||||||||||||
0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 0 | 1 | |||||||||||||||||||||||||||||||
Símbolo | Tabla de verdad | ||||||||||||||
C-in | B | A | Suma | C-out | |||||||||||
0 | 0 | 0 | 0 | 0 | |||||||||||
0 | 1 | 0 | |||||||||||||
0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 | |||||||||||
1 | 0 | 1 | 1 | ||||||||||||
1 | 1 | 1 | 1 |
Entonces la expresión booleana para un sumador completo es la siguiente.
Para el bit SUM (S):
SUM = (A XOR B) XOR Cin = (A ⊕ B) ⊕ Cin
Para el bit CARRY-OUT (Cout):
CARRY-OUT = A AND B OR Cin(A XOR B) = A.B + Cin(A ⊕ B)
Un sumador binario de n bits
Hemos visto anteriormente que se pueden construir sumadores binarios simples de 1 bit a partir de puertas lógicas básicas. Pero si queremos sumar dos números de n bits, entonces hay que conectar o «conectar en cascada» n números de sumadores completos de 1 bit para producir lo que se conoce como sumador de arrastre de ondulación.
Un «sumador de arrastre de ondulación» es simplemente «n» sumadores completos de 1 bit conectados en cascada con cada sumador completo representando una sola columna ponderada en una suma binaria larga. Se denomina sumador de arrastre por ondulación porque las señales de arrastre producen un efecto de «ondulación» a través del sumador binario de derecha a izquierda, (LSB a MSB).
Por ejemplo, supongamos que queremos «sumar» dos números de 4 bits, las dos salidas del primer sumador completo proporcionarán la suma del primer dígito del lugar (S) de la suma más un bit de arrastre que actúa como el dígito de entrada del siguiente sumador binario.
El segundo sumador binario de la cadena también produce una salida sumada (el 2º bit) más otro bit de arrastre y podemos seguir añadiendo más sumadores completos a la combinación para sumar números mayores, enlazando la salida del bit de arrastre del primer sumador binario completo con el siguiente sumador completo, y así sucesivamente. A continuación se muestra un ejemplo de sumador de 4 bits.
Un sumador de arrastre de 4 bits
Una de las principales desventajas de «conectar en cascada» sumadores binarios de 1 bit para sumar números binarios grandes es que si las entradas A y B cambian, la suma en su salida no será válida hasta que cualquier entrada de acarreo haya «ondulado» a través de cada sumador completo en la cadena porque el MSB (bit más significativo) de la suma tiene que esperar cualquier cambio de la entrada de acarreo del LSB (bit menos significativo). En consecuencia, habrá un retardo finito antes de que la salida del sumador responda a cualquier cambio en sus entradas, lo que resulta en un retardo acumulado.
Cuando el tamaño de los bits que se suman no es demasiado grande, por ejemplo, 4 u 8 bits, o la velocidad de suma del sumador no es importante, este retardo puede no ser importante. Sin embargo, cuando el tamaño de los bits es mayor, por ejemplo, 32 o 64 bits utilizados en sumadores de varios bits, o la suma se requiere a una velocidad de reloj muy alta, este retardo puede llegar a ser prohibitivo, con los procesos de adición que no se completan correctamente dentro de un ciclo de reloj.
Este tiempo de retardo no deseado se llama retardo de propagación. También se produce otro problema llamado «desbordamiento» cuando un sumador de n bits suma dos números paralelos cuya suma es mayor o igual a 2n
Una solución es generar las señales de entrada de acarreo directamente desde las entradas A y B en lugar de utilizar la disposición de rizado anterior. Esto produce entonces otro tipo de circuito sumador binario llamado sumador binario con mirada de acarreo en el que la velocidad del sumador paralelo puede mejorarse en gran medida utilizando la lógica de mirada de acarreo.
La ventaja de los sumadores con mirada de acarreo es que el tiempo que necesita un sumador con mirada de acarreo para producir la SUMA correcta es independiente del número de bits de datos utilizados en la operación, a diferencia del tiempo de ciclo que necesita un sumador de rizado paralelo para completar la SUMA, que es una función del número total de bits en el sumando.
Los circuitos sumadores completos de 4 bits con características de carry look ahead están disponibles como paquetes IC estándar en forma de sumador binario de 4 bits TTL 74LS83 o el 74LS283 y el CMOS 4008 que pueden sumar dos números binarios de 4 bits y generar una SUMA y una salida CARRY como se muestra.
Símbolo lógico del 74LS83
Resumen de Sumadores Binarios
Hemos visto en este tutorial sobre Sumadores Binarios que los circuitos sumadores se pueden utilizar para «sumar» dos números binarios produciendo un «carry-out». En su forma más básica, los sumadores se pueden hacer a partir de la conexión de una puerta Exclusive-OR con una puerta AND para producir un circuito Half Adder. Dos medios sumadores pueden ser combinados para producir un sumador completo.
Hay una serie de circuitos integrados de 4 bits disponibles como el 74LS283 y el CD4008. que sumarán dos números binarios de 4 bits y proporcionarán un bit de acarreo de entrada adicional, así como un bit de acarreo de salida, por lo que puede unirlos en cascada para producir sumadores de 8 bits, 12 bits, 16 bits, pero el retardo de propagación del acarreo puede ser un problema importante en los sumadores de ondulación de n bits grandes.