SUMADOR DECIMAL CODIFICADO EN BINARIO (BCD, por sus siglas en inglés).
Posiblemente el código más comúnmente empleado sea el CÓDIGO DECIMAL CODIFICADO EN BINARIO, generalmente llamado código BCD, utilizado en computadoras digitales pararepresentar números decimales. La única desventaja de este código es que por cada dígito decimal se requieren 4 dígitos binarios (bits), esto quiere decir que se tendrán 16combinaciones, de las cuales sólo son válidas del 0 al 9, quedando como opcionales 6 combinaciones.
SUMA MENOR O IGUAL A 9. Considérense los siguientes sumandos en BCD:
1. 7 0111 7 en BCD +2 +0010 2 en BCD 9 1001 9 en BCD 2. 42 0100 0010 42 en BCD +53 +0101 0011 53 en BCD 14 0001 0101 95 en BCD
SUMA MAYOR A 9. Considérense los siguientes sumandos en BCD:
1. 8 1000 8 en BCD +6 +0110 6 en BCD 14 1110 resultado inválido en BCD 2. 57 0101 0111 57 en BCD +25 +0010 0101 25 en BCD 82 0111 1100 resultado inválido en BCD 7 123. 50 0101 0000 50 en BCD +72 +0111 0010 72 en BCD 122 1100 0010 resultado inválido en BCD 12 2
De los resultados obtenidos para S#9, se observa que todos éstos son válidos. Pero no ocurre lo mismo cuando S>9, ya que los resultados obtenidos son inválidos en BCD. Paracorregir este error, hay que sumar al resultado obtenido 0110, que es el equivalente a 6 decimal. Recuérdese que los términos opcionales son 6 y que 0110 es el complemento de 1001; es decir, a 9 decimal, siendo éste el número máximo que puede obtenerse en BCD con 4 dígitos.
Aplicando lo anterior a los ejemplos previos, se obtiene:
1. | |||||
8 | 1000 | 8 en BCD | |||
+6 | +0110 | 6 en BCD | |||
14 | 1110 | resultado inválido en BCD | |||
+0110 | sumando +6 de corrección | ||||
0001 0100 | 14 en BCD | ||||
1 4 | |||||
2. | |||||
57 | 0101 0111 | 57 en BCD | |||
+25 | +0010 0101 | 25 en BCD | |||
82 | 0111 1100 | resultado inválido en BCD | |||
+0101 | sumando +6 de corrección | ||||
1000 0010 | 82 en BCD | ||||
8 2
| |||||
3. | |||||
50 | 0101 0000 | 50 en BCD | |||
+72 | +0111 0010 | 72 en BCD | |||
122 | 1100 0010 | resultado inválido en BCD | |||
+0110 | sumando +6 de corrección | ||||
0001 0010 0010 | 122 en BCD | ||||
1 2 2 |
Las preguntas obligadas, de acuerdo a los resultados, son ¿cuándo y dónde se necesita una corrección? La respuesta a la primera es cuando la suma de dos bits es mayor a 9 y a lasegunda es por inspección, como en el caso presentado en el ejemplo 3, la corrección se realizó en el dígito decimal más significativo.
Analizando los resultados de los tres últimos ejemplos de sumas en BCD, se deduce que si se utilizan sumadores completos de 4 bits, sólo se podría obtener como resultado válidoel 1001 (910), pero utilizando un circuito corrector y el bit de acarreo se pueden tener 5 bits, con lo cual se puede obtener como salida válida a 0001 1001 (1910), que es el valor máximoque se puede generar y además, porque los valores de los sumandos de entrada son 9+9+1=19, siendo el 1 en la suma, el acarreo de salida.
La solución de este problema se presenta a continuación en un diagrama a bloques:
Del diagrama anterior, se obtiene la siguiente tabla funcional:
DEC | SUMA BCD SIN CORREGIR | SUMA BCD CORREGIDA | |||||||||
C4 | S3 | S2 | S1 | S0 | Cn | Z3 | Z2 | Z1 | Z0 | ||
0 1 : 8 9 | 0 0 :0 0 | 0 0 : 1 1 | 0 0 : 0 0 | 0 0 : 0 0 | 0 1 : 0 1 | 0 0 : 0 0 | 0 0 : 1 1 | 0 0 : 0 0 | 0 0 : 0 0 | 0 1 : 0 1 | NO SE REQUIERECORRECCIÓN |
10 11 : 15 | 0 0 :0 | 1 1 : 1 | 0 0 : 1 | 1 1 : 1 | 0 1 : 1 | 1 1 : 1 | 0 0 : 0 | 0 0 : 1 | 0 0 : 0 | 0 1 : 1 | SE REQUIERECORRECCIÓN |
16 17 : 19 | 1 1 :1 | 0 0 : 0 | 0 0 : 0 | 0 0 : 1 | 0 1 : 1 | 1 1 : 1 | 0 0 : 1 | 1 1 : 0 | 1 1 : 0 | 0 1 : 1 | SE REQUIERECORRECCIÓN |
De la tabla se obtiene:
Cn = C4 + f(S3, S2, S1,S 0) = C4 + 3m (10-15)
La simplificando de f(S3, S2, S1, S0), con mapas K, se presenta en la figura adjunta:
La función reducida es:
f(S3, S2, S1, S0) = S3S2 + S3S1
(1) (2)
Sustituyendo en Cn:
Cn = C4 + S3S2 + S3S1 == [C4' (S3S2)' (S3S1)']' (19)
El logigrama correspondiente se muestra en la figura adjunta.
Analizando el circuito, se observa que en los resultados del 0 al 9no se requiere corrección. Por ejemplo, si el resultado es 1001(910), C4=0 y la salida de la compuerta (1) es 1; S3=1 y S2=0, por lo que la salida de la compuerta (2) es 1; para la compuerta (3), las entradas son 1 y 0 y la salida es 1. Las tres entradas de la compuerta (4) son 1, lo que da como resultado que su salida sea 0. En forma similar se analizan los resultados del 10 al 15 y del 16 al19; en estos casos la salida Cn=1, por lo que se requiere la corrección y el 1 generado en el circuito corrector va a las entradas del segundo sumador para originar el 0110 (610).
No hay comentarios:
Publicar un comentario