Universidad Politécnica Salesiana
Electrónica Digital
ARITMÉTICA DIGITAL : OPERACIONES Y CIRCUITOS Introducción Las computadoras y calculadoras digitales realizan las operaciones aritméticas con números representados en forma binaria.
SUMA BINARIA La suma de dos números binarios se lleva a cabo exactamente en la misma forma que con los números decimales. Sin embargo, sólo cuatro casos pueden tener lugar en la suma de dos digitos binarios (bits) en cualquier posición. Estos son: 0+0=0 1+0=1 1 + 1 = 10 = 0 + acarrreo de 1 a la siguiente posición 1 + 1 + 1 = 11 = 1 + acarreo de 1 a la siguiente posición. El último caso ocurre cuando los dos bits en una cierta posición son 1 y existe un acarreo desde la posición anterior, 011 (3) 1001 (9) 11.011 (3.375) + 110 (6) + 1111 (15) + 10.001 (2.750) 1001 (9) 11000 (24) 110.001 (6.125) No es necesario considerar la suma de más de dos números binarios a la vez, porque en todos los sistemas digitales la circuitería que en realidad realiza la suma sólo puede manejar dos números a la vez. Cuando se sumen más de dos números primero habrá que sumar los dos primeros y luego se resultado sumarlo al tercer número, etc. La suma es la operación aritmética más importante en los sistemas digitales. Como veremos, las operaciones de resta, multiplicación y división que se llevan a cabo en la mayoría de las computadoras y calculadoras digitales modernas en realidad sólo se usa la suma como operación básica.
REPRESENTACION DE NÚMEROS CON SIGNO En las computadoras digitales los números binarios se representan mediante un conjunto de dispositivos de almacenamiento binario (esto es flip-flop). Cada dispositivo representa un bit. Por ejemplo, un registro de FF de seis bits podría almacenar números binarios variando de 000000 a 111111 (0 a 63 en decimal). Esto representa la magnitud del número. En general, el acuerdo a que se ha llegado es que un 0 en el bit de signo representa un número positivo, y un 1 en el bit de signo representa un número negativo. El bit de signo se usa par aindicar la naturaleza positiva o negativa del número binario almacenado. Los números en la siguiente figura constan de un bit de signo y seis bits de magnitud. Los bits de magnitud son el equivalente binario verdadero del valor decimal que se representa. A esto se le llama sistema de para signo-magnitud representar número binarios con signo. El sistema de uso más común para representar números binarios con signo es el sistema de complemento a 2 .
FORMA DE COMPLEMENTO A 1 El complemento a 1 de un número binario se obtiene cambiando cada 0 a un 1 y cada 1 a un 0. en otras palabras, se cambia cada bit del número por su complemento. 101101 número binario original 010010 se complementa cada bit para formar el complemento a 1
FORMA DE COMPLEMENTO A 2 El complemento a 2 de un número binario se forma tomando el complemento a 1 del número y agregando 1 a la posición del bit menos significativo. 101101 equivale a 45
Por: Ing. Carlos Pillajo A.
1
Universidad Politécnica Salesiana
+
010010 1 010011
Electrónica Digital
se complementa cada bit para formar el complemento a 1 se agrega 1 para formar el complemento a 2 complemento a 2 del número binario original.
REPRESENTACION DE NÚMEROS CON SIGNO USANDO EL COMPLEMENTO A 2 El sistema de complemento a 2 para representar números con signo funciona de la siguiente manera: Si el número es positivo, la magnitud se representa en su forma binaria verdadera original y se coloca un bit de signo 0 después del bit más significativo. Si el número es negativo, la magnitud se representa en su forma de complemento a 2 y se coloca un bit de signo 1 después del bit más significativo Es sistema de complemento a 2 se usa para representar números con signo porque, como veremos, nos permite realizar la operación de resta mediante una suma. Esto es importante porque significa que una computadora digital puede usar la misma circuitería para sumar o para restar, con lo que se obtiene un ahorro en hardware. Ej.- Represente cada uno de los siguientes números decimales con signo como números binarios con signo empleando el sistema de complemento a 2. Use un total de cinco bits, incluyendo el bit de signo. a) + 13 sol: 01101 b) -9 sol: 10111 c) + 3 sol: 00011 d) -2 sol: 11110 e) - 8 sol: 11000 •
•
Negación.- es el hecho de convertir un número positivo a su equivalente negativo, o un número negativo a su equivalente positivo. Cuando se representan números binarios con signo en el sistema de complemento a 2, la negación se lleva a cabo simplemente realizando la operación de complemento a 2. Se inicia con ---01001 = + 9 Complemento a 2 (negar) ---10111 = - 9 Volver a negar --01001 = + 9 Así un número binario con signo se niega complementándolo a 2 Ej.- cada uno de los siguientes números es un número binario con signo en el sistema de complemento a 2. Determine el valor decimal en cada caso: a) 01100 Sol: +12 b) 11010 Sol: -6 c) 10001 Sol: -15
Caso especial sobre la representación en complemento 2 Siempre que un número con signo tenga un 1 en el bit de signo y todos los bits correspondientes a la magnitud sean ceros, su equivalente decimal será -2N, donde N es el número de bits en la magnitud. 3 Ej. 1000 = -2 = -8 4 10000 = -2 = -16 100000 = -25 = -32 De esta manera, se puede establecer que el rango completo de valores que se puede representar en el sistema de complemento a 2, el cual tiene N bits de magnitud, es: N N -2 a +(2 -1) Hay un total de 2N+1 valores diferentes, incluyendo el 0 EJ.- Que rango de valores decimales sin signo se pueden representar con un byte? 000000002 = 010 111111112 = 25510 EJ.- Que rango de valores decimales con signo se pueden representar con un byte? El valor negativo mayor es: 100000002 = -27 = - 12810 7 El valor positivo menor es: 011111112 = +2 = + 12710
SUMA EN EL SISTEMA COMPLEMENTO A 2 Ahora investigaremos como se realizan las operaciones de suma y resta en maquinas digitales que usan representación de complemento a 2 para números negativos Caso I : dos números positivos. La suma de dos números positivos es sencilla
Por: Ing. Carlos Pillajo A.
2
Universidad Politécnica Salesiana
Electrónica Digital
+ 9 ---0 1001 + 4 ---0 0100 +13 0 1101 Caso II : número positivo y número negativo menor.- considere que el número negativo estará en su forma complemento a 2 + 9 ---0 1001 - 4 ---1 1100 (4 en complemento a 2) +5 1 0 0101 En este caso se ignora el bit de acarreo. Caso III: número positivo y número negativo mayor.- 9 ---1 0111 (9 en complemento a 2) + 4 ---0 0100 -5 1 1011 Caso IV; dos números negativos - 9 ---1 0111 (9 en complemento a 2) - 4 ---1 1100 (4 en complemento a 2) -13 1 1 0011 Caso V: números iguales y opuestos - 9 ---1 0111 (9 en complemento a 2) + 9 ---0 1001 0 1 0 0000
RESTA EN EL SISTEMA DE COMPLEMENTO A 2
La operación de resta usando el sistema de complemento a 2 en realidad implica la operación de suma, y de hecho no es diferente a los diversos casos para suma, se sigue el siguiente procedimiento. 1. Se niega el sustraendo.- esto cambiará el sustraendo a su valor equivalente con signo opuesto. 2. Se suma al minuendo.- el resultado de esta suma representará la diferencia entre el sustraendo y el minuendo. Minuendo (+9) ----01001 Sustraendo (+4) ----00100 Minuendo (+9) ----Sustraendo - 4 ----
01001 11100 (4 en complemento a 2) 1 00101
Desbordamiento Aritmético.
En cada uno de los ejemplos anteriores de suma y resta, los números que se sumaron consistieron en un bit de signo y cuatro bits de magnitud. Las respuestas también constaron de un bit de signo y cuatro bits de magnitud. Cualquier acarreo en la sexta posición del bit fue ignorado. En todos los casos, la magnitud de la respuesta fue lo suficientemente pequeña como para caber en cuatro bits. Veamos la suma +9 y +8 (+9) ----(+8) -----
0 1001 0 1000 1 0001 Signo incorrecto magnitud incorrecta La respuesta tiene un bit de signo negativo, lo que obviamente es incorrecto puesto que se están sumando dos números positivos. La respuesta debe ser +17 pero la magnitud 17 requiere más de cuatro bits y por lo tanto se desborda en la posición del bit de signo. Esta condición de desborde sólo puede ocurrir cuando se suman dos números positivos o negativos, y siempre produce un resultado incorrecto. El desborde se puede detectar comprobando que el bit de signo del resultado sea igual a los bits de signo de los números que se suman. Debido a que la sustacción en el sistema de complemento a 2 se lleva a cabo negando el minuendo y sumándolo al sustraendo, el desborde sólo puede ocurrir cuando el minuendo y el sustraendo tienen signos diferentes. Por ejemplo, si restamos -8 de +9, el -8 se niega para convertirlo en +8 y se suma a +9 , igual que se mostró antes; el desbordamiento produce un resultado negativo erróneo, puesto que la magnitud es demasiado grande.
MULTIPLICACIÓN DE NÚMERO BINARIOS La multiplicación de números binarios se lleva a cabo de la misma manera que la multiplicación de números decimales. El proceso es más simple, puesto que los dígitos multiplicadores o son 0, o bien 1 y por ende siempre se multiplica por 0 y no por otros dígitos. 1001 multiplicando 910 1011 multiplicador 1110
Por: Ing. Carlos Pillajo A.
3
Universidad Politécnica Salesiana
Electrónica Digital
1001 1001 0000 1001 1100011 producto final 9910 En este ejemplo el multiplicando y el multiplicador están en forma binaria verdadera y no se usan bits de signo.
MULTIPLICACIÓN EN SISTEMA COMPLEMENTO A 2 En las computadoras que usan la representación de complemento a 2, la multiplicación se lleva a cabo en la forma antes descrita, siempre y cuando tanto el multiplicando como el multiplicador se pongan en forma binaria verdadera. Si los dos números son positivos, ya se encuentran en forma binaria positiva y se multiplican como están, y se agrega un bit de signo de 0 Cuando los dos números son negativos están en forma de complemento a 2. se toma el complemento a 2 de cada uno para convertirlo a un número positivo, y se agrega un bit de signo de 0 Cuando uno de los números es positivo y otro negativo, el número negativo se convierte primero a una magnitud positiva tomando su complemento a 2. el producto estará en forma de magnitud verdadera. Sin embargo, el producto debe ser negativo, puesto que los números originales tienen signos opuestos. Así, luego el producto se cambia a su forma de complemento a 2 y se le da un bit de signo 1. •
•
•
SUMA BCD Recuerde que este código toma cada dígito decimal y lo representa con un código de cuatro bits, que va de 0000 a 1001. Suma igual a nueve o menor.45 0100 0101 BCD para 45 +33 + 0011 0011 BCD para 33 78 0111 1000 BCD para 78 Cuando ninguna de las sumas de los pares de dígitos decimales excedió de 9; por lo tanto, no se produjeron acarreos decimales. Para estos casos el proceso de adición BCD es sensillo y en realidad es el mismo que para la adición binaria. Suma mayor que 9 110
BCD para 6 + 0111 BCD para 7 1101 suma inválida 0110 se suma 6 para corregir 0001 0011 BCD para 13 Como se muestra, se agrega 0110 a la suma inválida y produce el resultado BCD correcto. 47 0100 0111 + 35 0011 0101 82 0111 1100 1 0110 1000 0010 La suma de los códigos de cuatro bits para los dígitos 7 y 5 resulta en una suma inválida que se corrige agregando 0110. note que esto genera un acarreo de 1, el cual se efectúa para agregarse a la suma BCD de los dígitos de la segunda posición. Considere la suma de 59 y 38 en BCD 59 0101 1001 BCD para 47 + 38 0011 1000 BCD para 38 97 1001 0001 se realiza la suma 0110 se suma 6 para corregir 1001 0111 BCD para 97 El procedimiento de adición en BCD Empleando la adición binaria ordinaria se suman los grupos de códigos BCD para cada posición del dígito. Para las posiciones donde la suma sea 9 o menor no es necesario hacer la corrección. La suma está en forma BCD adecuada. Cuando la suma de dos dígitos es mayor que 9, se debe aplicar un factor de corrección de 0110 para obtener el resultado correcto en BCD. •
•
•
Por: Ing. Carlos Pillajo A.
4
Universidad Politécnica Salesiana
Ej.
275 + 641 916
0010 0111 0101 + 0110 0100 0001 1000 1011 0110 + 0110 1001 0001 0110
Electrónica Digital
BCD para 275 BCD para 641 se realiza la suma se suma 6 para corregir el segundo digito BCD para 916
ARITMÉTICA HEXADECIMAL Suma hexadecimal.- se lleva a cabo casi de la misma manera que la suma decimal, siempre y cuando recuerde que el número hexadecimal mayor es F en lugar de 9. Se sugiere seguir el siguiente procedimiento: 1. Se suman los dos números hexadecimales insertando mentalmente el equivalente decimal de estos dígitos mayores que 9 2. Si la suma es 15 o menos está se puede expresar directamente como un dígito hexadecimal. 3. Si la suma es mayor que o igual a 16 y se desplaza un 1 a la siguiente posición del dígito. Ej.58 58 3AF + 24 + 4B + 23C 7C A3 5EB Resta hexadecimal.- Recuerde que los números hexadecimales son una forma eficiente de representar números binarios. Así, podemos restar números hexadecimales usando el mismo método que empleamos para números binarios. Se toma el complemento a 2 del sustraendo hexadecimal, luego se suma al minuendo y se ignora cualquier acarreo de la posición MSB. Como encontramos el complemento a 2 de un número hexadecimal? 73A numero hexadecimal 0111 0011 1010 se convierte a binario 1000 1100 0110 se toma el complemento a 2 8C6 se convierte de regreso a hexadecimal. Hay un procedimiento más rápido: se resta cada dígito hexadecimal a F;luego se suma 1 F F F -7 -3 –A 8 C 5 + 1 8 C 6 Representación hexadecimal de números con signo.- Los datos que están en la memoria de trabajo interna de una microcomputadora, en un disco duro, o en un CD-ROM por lo general se almacenan en bytes. El byte de datos alamacenado en una ubicación de memoria determinada con frecuencia se expresa en notación hexadecimal, debido a que es una forma más eficiente y tiene menos posibilidad de error que su expresión en notación binaria. Cuando los datos constan de números con signo, es de mucha utilidad ser capaz de reconocer si un valor hexadecimal representa un número positivo o negativo En cada ubicación de memoria se almacena un solo byte, que es el equivalente binario de un número decimal binario. En la tabla se muestra el equivalente hexadecimal de cada byte. Para un valor de datos negativos, el bit de signo (MSB) del número binario será 1 esto siempre hará al MSD del número hexadecimal 8 o mayor. Cuando el valor de datos es positivo, el bit de signo será 0, y el MSD del número hexadecimal será 7 o menor. Lo anterior es válido, sin importar de cuántos digitos se componga el número hexadecimal. Cuando el MSD es 8 o mayor el número que se representa es negativo; cuando el MSD es 7 o menor el número es positivo . Datos binarios Valor hexadecimal Valor decimal 00111010 3A + 58 11100101 E5 - 29 01010111 57 + 87 10000000 80 -128
Por: Ing. Carlos Pillajo A.
5
Universidad Politécnica Salesiana
Electrónica Digital
CIRCUITOS ARITMÉTICOS Una función esencial de casi todas las computadoras y calculadoras es la realización de operaciones aritméticas, las cuales se efectúan en la unidad aritmética-lógica de una computadora, donde se combinan compuertas lógicas con flip-flop, de manera que puedan sumar, restar, multiplicar y dividir números binarios. Unidad aritmética-lógica Todas las operaciones aritméticas se llevan a cabo en la unidad aritmética-lógica ALU de una computadora, en la figura se muestra un diagrama de bloques con los elementos principales que se incluyen en una ALU común. El propósito principal de la ALU es aceptar los datos binarios que se almacenan en la memoria y ejecutar operaciones aritméticas y lógicas con estos datos, según las instrucciones de la unidad de control. La uniad aritmética lógica contiene cuando menos dos registros de flip-flop el registro B y el registro acumulador. También contiene lógica combinatoria, la cual realiza las operaciones aritméticas y lógicas con los números binarios que están almacenados en el registro B y en el acumulador. Una secuencia típica de operaciones puede ocurrir así: 1.- La unidad de control recibe una instrucción 2.- El número que se sumará se transfiere de la memoria al registro B 3.- El número en el registro B y el número en el registro acumulador se suman en los circuitos lógicos, la suma resultante se envía al acumulador para su almacenamieto. 4.- El nuevo número en el acumulador puede permanecer allí, de manera que se pueda sumar otro número, o si el proceso aritmético a terminado, se puede transferir a la memoria para ser almacenado.
SUMADOR BINARIO EN PARALELO. Las computadoras y las calculadoras realizan la operación de suma sobre dos números binarios a la vez, donde cada número binario puede tener varios dígitos binarios. En la siguiente figura se ilustra la suma de dos números de cinco bits. El cosumando se almacena en el registro acumulador; es decir, el acumulador contiene 5 FFs, almacenando los valores 10101 en FFs sucesivos. De manera similar, el sumando, el número que se sumará al cosumando, se almacena en el registro B (en el caso 00111) El proceso de adición se inicia sumando los bits menos significativos (LSB) del cosumando y del sumando. Así, 1+1=10, lo cual significad que la suma para esa posición es 0, con un acarreo de 1. En la siguiente figura se tiene las variables A4,A3,A2,A1 y A0 representan los bits del cosumando que están almacenados en el acumulador (al cual también se le llama registro A). las variables B4,B3,B2,B1 y B0 representan los bits del sumando almacenados en el registro B. Las variables C4,C3,C2;C1 y C0 representan los bits de acarreo en las posiciones correspondientes. Las variables S4,S3,S2,S1 y S0 son los bits de salida de la suma para cada posición. Los bits correspondientes del
Por: Ing. Carlos Pillajo A.
6
Universidad Politécnica Salesiana
Electrónica Digital
cosumando y del sumando se alimentan a un circuito lógico llamado sumador completo, junto con un bit de acarreo de la posición anterior.
DISEÑO DE UN SUMADOR COMPLETO. Ahora que conocemos la función del sumador completo, podemos proceder a diseñar un circuito lógico que realice esta función.
S = /A/BCent + /AB/Cent + A/B/Cent + ABCent
SUMADOR EN PARALELO DE CIRCUITOS INTEGRADO Existen varios sumadores en paralelo disponibles como circuitos integrados. El más común es un CI sumador en paralelo de cuatro bits, que contiene cuatro SCs interconectados y la circuitería de acarreo anticipado necesaria para la operación a alta velocidad. Los modelos 7483, 74283 son chips sumadores en paralelo de cuatro bits TTLs.
Por: Ing. Carlos Pillajo A.
7
Universidad Politécnica Salesiana
Electrónica Digital
SISTEMA DE COMPLEMENTO A 2 En la mayoría de las computadoras modernas se emplea el sistema de complemento a 2 para representar números negativos y para realizar la operación de sustracción. Las operaciones de suma y resta de números con signo se pueden llevar a cabo usando sólo la operación de suma, si se usa la forma de complemento a 2 para representar números negativos.
SUMA Los números positivos y negativos, incluyendo los bits de signo, se puede sumar en conjunto en el circuito de sumador paralelo básico cuando los números negativos están en su forma de complemento a 2. Esto se ilustra en la siguiente figura
RESTA Cuando se usa el sistema de complemento a 2, el número que se restará (el sustraendo) se cambia a su complemento a 2 y luego se suma al minuendo (el número del que se resta el sustraendo). Por ejemplo, se puede suponer que el minuendo ya se almacenó en el acumulador (registro A). Luego el sustraendo se coloca en el registro B (en una computadora se transferiría de aquí a la memoria ) y se cambia a su forma de complemento a 2 antes de ser sumada al número en el registro A. ahora las salidas de suma del circuito sumador representan la diferencia entre el minuendo y el sustraendo.
SUMADOR BCD El proceso de la aplicación BCD se analizó: 1. Se suma los grupos de código BCD para cada posición de dígito decimal; se usa la suma binaria ordinaria.
Por: Ing. Carlos Pillajo A.
8
Universidad Politécnica Salesiana
Electrónica Digital
2.
Para las posiciones donde la suma sea 9 o menor, la suma está en forma BCD apropiada y no es necesario hacer una corrección 3. Cuando la suma de dos dígitos es mayor que 9 se debe agregar una corrección de 0110 a la suma, con el fin de producir el resultado BCD correcto. Esto producirá un acarreo que se agregará a la siguiente posición decimal. Un sumador BCD debe ser capaz de operar de acuerdo con los pasos anteriores. En otras palabras, el circuito debe ser capaz de hacer lo siguiente: 1. Sumar grupos de códigos BCD de cuatro bits, usando suma binaria directa. 2. Determinar si el resultado de esta adición es mayor que 1001 (9 decimal); si lo es, se añade 0110(6) a esta suma y genera un acarreo de la siguiente posición decimal.
CIRCUITOS INTEGRADOS ALU Existen varios integrados disponibles que se denominan Unidades Aritméticas-Lógicas (ALU), aunque no tiene las capacidades totales de una unidad aritmética-lógica de una computadora. Estos chips son capaces de realizar diversas operaciones aritméticas y lógicas en entradas de datos binarios. La operación específica que realiza un CI ALU se determina mediante un código binario específico aplicado a sus entradas SELECT de función. Algunos circuitos integrados ALU son muy complejos. La ALU 74LS382 En la siguiente figura se muestra el símbolo de bloque para una ALU que está disponible como
74LS328 de 20 pines opera en dos números de entrada de 4 bits, A3A2A1A0 y B3B2B1B0, para producir un resultado de salida de cuatro bits F3F2F1F0. Esta ALU puede realizar ocho diferentes operaciones. En cualquier tiempo determinado, la operación que se realiza depende del código de entrada aplicado a las entradas SELECT de función S2S1S0.
Por: Ing. Carlos Pillajo A.
9