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 BCD. C2 es el acarreo de salida de la suma BCD.
Decimal | Suma Binaria | Suma BCD | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
C1 | S4 | S3 | S2 | S1 | C2 | S8 | S7 | S6 | S5 | |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 |
2 | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 |
3 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 |
4 | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
5 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 |
6 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 |
7 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | 1 |
8 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
9 | 0 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 |
10 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
11 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 1 |
12 | 0 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 | 0 |
13 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
14 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 |
15 | 0 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 0 | 1 |
16 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 |
17 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 | 1 | 1 |
18 | 1 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 |
19 | 1 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 |
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:
C2 = C1 + 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