sábado, 21 de septiembre de 2013

SUMADOR EN BCD


La suma en código BCD utiliza las mismas reglas de la suma binaria vistas en la lección 1.4. Si una suma de dos números es menor o igual que 9, el número BCD resultante es válido. Si la suma es mayor que 9, o si se genera un acarreo el resultado no es válido. En este caso, se suma el número binario 0110 para pasar de nuevo al código BCD. Si se genera acarreo al sumar 0110, éste se suma al siguiente grupo de 4 bits. En los siguientes ejemplos se verán los casos que se pueden presentar.

Ejemplo
Sumar los números 01000101 (45)10 y 00010010(12)10.
La suma de la figura 3.11.1. no genera acarreos.

Figura 3.11.1. Suma BCD sin acarreo.

Ejemplo
Sumar los números 00111001(39)10 y 01010110(56)10.
La suma de los cuatro bits menos significativos de la figura 3.11.2. genera acarreo.

Figura 3.11.02. Suma BCD con acarreo en el dígito BCD menos significativo
Ejemplo
Sumar los números 01111001(79)10 y 00110101(35)10.
La suma de dígito BCD menos significativo de la figura 3.11.3. genera acarreo, al igual que el segundo dígito BCD.
Figura 3.11.03. Suma BCD con acarreo en dos dígitos
Un sumador BCD es un circuito que suma dos dígitos en BCD. En una suma BCD , la suma 9+9+1=19 es el valor máximo resultante, siendo el 1 en la suma el acarreo de entrada. Los dígitos BCD con un acarreo de entrada, se agregan en un sumador binario de cuatro bits para producir la suma binaria. 

Los números decimales se listan en la tabla 3.11.1. C1 es el acarreo de la suma de los números A y B de entrada (ver figura 3.11.4) y los dígitos S1 a S4 son el resultado de la suma binaria, donde cada dígito tiene los pesos 8, 4, 2, 1 del códigoBCD. Cuando la suma binaria es menor o igual a 1001, no se agrega nada a la suma. Cuando el número binario es mayor que 1001 se obtiene una representación en código BCD no válida. La suma del número binario 0110 a la suma binaria convierte la representación a un código BCD válido. En la figura la suma del número 0110 se realiza por medio de un segundo sumador inferior. Este código BCD válido se observa en la tabla 3.11.1 en la columna de suma BCD. Las salidas S5 a S8 representan la suma BCDC2 es el acarreo de salida de la suma BCD.
DecimalSuma BinariaSuma BCD
C1S4S3S2S1C2S8S7S6S5
00000000000
10000100001
20001000010
30001100011
40010000100
50010100101
60011000110
70011100111
80100001000
90100101001
100101010000
110101110001
120110010010
130110110011
140111010100
150111110101
161000010110
171000110111
181001011000
191001111001
Tabla 03.11.01. Tabla de verdad del Sumador BCD.

El circuito necesario para detectar la condición de acarreo o suma binaria mayor a 1001 se obtiene de la tabla de verdad. Cuando C1 es 1 se necesita sumar 0110 o una correción. Lo mismo entre las combinaciones 1010 y 1111, se tiene una corrección cuando S2=S4=1 ó S3=S4=1. La expresión lógica de la corrección es:

C= C+ S3·S4 + S4·S2

El circuito lógico necesario para implementar el sumador BCD se muestra en la figura 3.11.4.
Figura 3.11.4. Diagrama de bloques de un sumador BCD

No hay comentarios:

Publicar un comentario