Sumador Binario

  • por

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

diagrama de bloques del sumador binario

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

Puerta OR Exclusiva de 2 entradasO

0

.

Podemos ver en la tabla de verdad anterior que una puerta Exclusive-OR sólo produce un «1» de salida cuando cualquiera de las dos entradas está en «1» lógico, pero no ambas al igual que para la suma binaria de los dos bits anteriores. Sin embargo para realizar la suma de dos números, los microprocesadores y las calculadoras electrónicas requieren el bit de acarreo extra para calcular correctamente las ecuaciones por lo que debemos reescribir la suma anterior para incluir dos bits de datos de salida como se muestra a continuación.

Símbolo Tabla de verdad
2-entrada exclusiva-o puerta

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

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

Suma y acarreo.Out

Desde la tabla de verdad del semiconsumidor podemos ver que la salida SUM (S) es el resultado de la puerta Exclusive-OR y la salida Carry-out (Cout) es el resultado de la puerta AND. Entonces la expresión booleana para un medio sumador es la siguiente.

Para el bit SUM:

SUM = A XOR B = A ⊕ B

Para el bit CARRY:

CARRY = A AND B = A.B

Una de las principales desventajas del circuito Half Adder cuando se utiliza como sumador binario, es que no se prevé un «Carry-in» del circuito anterior cuando se suman múltiples bits de datos.

Por ejemplo, supongamos que queremos sumar dos bytes de datos de 8 bits, cualquier bit de acarreo resultante tendría que ser capaz de «ondular» o moverse a través de los patrones de bits a partir del bit menos significativo (LSB). La operación más complicada que puede hacer el semiconsumidor es «1 + 1», pero como el semiconsumidor no tiene entrada de acarreo, el valor sumado resultante sería incorrecto. Una forma sencilla de superar este problema es utilizar un circuito sumador binario de tipo Full Adder.

Un circuito Full Adder

La principal diferencia entre el Full Adder y el anterior Half Adder es que un full adder tiene tres entradas. Las mismas dos entradas de datos de un solo bit A y B que antes, más una entrada adicional de acarreo (C-in) para recibir el acarreo de una etapa anterior, como se muestra a continuación.

Diagrama de bloques del sumador completo

Diagrama de bloques del sumador completo

Diagrama de bloques del sumador completo

Entonces el sumador completo es un circuito lógico que realiza una operación de suma sobre tres dígitos binarios y al igual que el medio sumador, también genera un carry out a la siguiente columna de suma. Entonces un Carry-in es un posible carry desde un dígito menos significativo, mientras que un Carry-out representa un carry a un dígito más significativo.

En muchos sentidos, el sumador completo puede pensarse como dos medios sumadores conectados entre sí, con el primer medio sumador pasando su carry al segundo medio sumador como se muestra.

Diagrama lógico del sumador completo

Diagrama lógico del sumador completo

Diagrama lógico del sumador completo

Como el circuito del sumador completo anterior es básicamente dos medios sumadores conectados juntos, la tabla de verdad del sumador completo incluye una columna adicional para tener en cuenta la entrada Carry-in, CIN, así como la salida sumada, S y el bit Carry-out, COUT.

Tabla de verdad del sumador completo con portador

Símbolo Tabla de verdad
medio sumador A SUMA CARRY
0 0 0 0
0 1 0 0 1 1 1 1 0 1 1 1 0 1

.

1

.

Símbolo Tabla de verdad
sumador completo 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

Sumador binario de 4 bits

Sumador binario 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

Símbolo lógico del 74ls83

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.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *