Electrnica Bsica Aritmtica Binaria Electrnica Digital Jos Ramn
Electrónica Básica Aritmética Binaria Electrónica Digital José Ramón Sendra Dpto. de Ingeniería Electrónica y Automática ULPGC
ARITMÉTICA BINARIA Operaciones en el sistema Binario Natural Suma Binaria Resta Binaria Unidad Aritmética Lógica (ALU) Operaciones en BCD Natural Suma en BCD Resta en BCD
ARITMÉTICA BINARIA Operaciones en el sistema Binario Natural Suma Binaria Sumador sin acarreo o Half Adder (HA) Sumador con acarreo o Full Adder (FA) Sumador paralelo con acarreo serie Sumador paralelo con acarreo paralelo Sumador serie Resta Binaria Representación de los números negativos Operaciones en Complemento a 1 Operaciones en Complemento a 2 Desbordamientos (Overflow) Circuito complementador 74487 Comparadores binarios en magnitud Unidad Aritmética Lógica (ALU)
SUMA BINARIA Sumador sin acarreo o Half Adder Ai Bi Suma Ac. 0 0 0 1 1 0 1 0 1 Ai 0 Bi 0 0 1 1 0 Suma = Ai Bi + Ai Bi = Ai + Bi Ai Suma Bi Acarreo Ai 0 Bi 0 0 1 0 1 Ac. = Ai Bi
SUMA BINARIA Sumador con acarreo o Full Adder A 0 0 1 1 B Ci 0 0 0 1 1 S 0 1 1 0 0 1 Co 0 0 0 1 1 1 AB Ci 00 01 11 10 S 0 0 1 1 1 0 AB Ci 00 01 11 10 Co 0 0 0 1 0 1 1 1 S = Ci xor A xor B Co = B Ci + A B = Ci. A + Ci. B + A B
SUMA BINARIA Sumador con acarreo o Full Adder Implantación estándar: 6 puertas A B S Ci A Ci B Ci A B CO
SUMA BINARIA Sumador con acarreo o Full Adder Implantación alternativa: 5 puertas A S HA B Co A+B AB S HA Co A + B + Ci S Ci (A + B) Ci + A B + Ci (A + B) = A B + B Ci+ A Ci Co
SUMA BINARIA Sumador paralelo con acarreo serie A 2 B 2 A 1 B 1 + A 0 B 0 + + Cout S 2 C 2 S 1 C 1 S 0 Cin
SUMA BINARIA Sumador paralelo con acarreo paralelo (es más rápido) Necesitamos predecir el acarreo para cada término de la suma A 2 B 2 Cout + A 1 B 1 + S 2 A 0 B 0 + S 1 S 0 Cin
SUMA BINARIA Sumador paralelo con acarreo paralelo Se trata de predecir el acarreo para cada término de la suma C 0 = Cin C 1 = A 0 B 0 + C 0 (A 0+B 0) = G 0 + C 0 P 0 C 2 = A 1 B 1 + C 1 (A 1+B 1) = G 1 + [G 0 + C 0 P 0] P 1 = G 1 + G 0 P 1 + C 0 P 1 C 3 =. . . = G 2 + G 1 P 2 + G 0 P 1 P 2 + C 0 P 1 P 2 Las variables son las entradas al sumador y el acarreo de la primera etapa
SUMA BINARIA Sumador paralelo con acarreo paralelo El circuito es más complejo pero es más rápido
SUMA BINARIA Sumador serie A + B Ci S Co CLK Célula de memoria
SUMA BINARIA Sumadores comerciales 7480 sumador completo de 1 bit 7482 sumador completo de 2 bit 7483 sumador completo de 4 bit 74182 generador de acarreo previo
RESTA BINARIA En principio se pueden diseñar circuitos restadores de la misma forma a como lo hicimos con los sumadores Sin embargo lo que se suele hacer es usar los mismos circuitos sumadores para hacer las restas Para ello tenemos que ver primero como se representan los números binarios negativos
RESTA BINARIA Representación de números negativos Representación de números positivos es similar en la mayoría de los sistemas Mayores diferencias surgen en la representación de los valores negativos Dos esquemas fundamentales: Complemento a uno Complemento a dos Especificaciones iniciales: Trabajaremos con palabras de cuatro bits Podemos representar 16 valores distintos Aproximadamente la mitad serán positivos y la mitad negativos
RESTA BINARIA Complemento a uno DEF: Si N es un número positivo, N es su negativo de tal forma que: n Ca 1 (N) = N = (2 - 1) - N Ej: Ca 1 (7) 2 4 1 = 10000 = - 00001 1111 7 = - 0111 1000 = -7 TRUCO: Cambiamos cada bit por su complementario Ej: Ca 1 (7) 0111 -> 1000
RESTA BINARIA Complemento a uno -0 -1 -2 1111 1110 +0 0001 1101 +1 0010 +2 + -3 1100 0011 +3 0 100 = + 4 -4 1011 0100 +4 1 011 = - 4 -5 1010 0101 1001 -6 0110 1000 -7 0111 +5 +6 +7 Hay dos representaciones del cero (malo) -
RESTA BINARIA Complemento a dos DEF: Si N es un número positivo: n Ca 2 (N) = 2 - N = Ca 1 (N) + 1 Ej: Ca 2 (7) 2 = 10000 4 2 = 10000 -7 = - 0111 -(-7) = -1001 4 1001 = repr. de -7 0111 = repr. de 7
RESTA BINARIA Complemento a dos TRUCO 1: Complementamos cada bit y al resultado le sumamos 1, es decir, le sumamos 1 al Ca 1 del número 0111 -> 1000 + 1 -> 1001 (representación de -7) 1001 -> 0110 + 1 -> 0111 (representación de 7) TRUCO 2: Ir de izquierda a derecha, respetar el primer 1 que nos encontremos y complementar el resto de bits 0111 -> 1001 (representación de -7) 1001 -> 0111 (representación de 7)
RESTA BINARIA Complemento a dos Hay una única representación para el cero (bueno) Hay un número negativo más Es menos intuitivo el obtener el negativo de un número
RESTA BINARIA Suma y resta de números en complemento a uno 4 00100 -4 11011 +3 00011 + (-3) 11100 7 00111 -7 110111 1 Se suma el bit de acarreo 11000 4 00100 -4 11011 -3 11100 +3 00011 1 100000 -1 11110 1 00001 Ca 1 del resultado
RESTA BINARIA Suma y resta de números en complemento a dos 4 00100 -4 11100 +3 00011 + (-3) 11101 7 00111 -7 111001 Se desprecia el bit de acarreo 4 00100 -4 11100 -3 11101 +3 00011 1 100001 -1 11111 Ca 2 del resultado La simplicidad de las operaciones aritméticas en la notación de complemento a dos hace que esta notación sea la más utilizada en sistemas digitales
RESTA BINARIA Sumador/Restador en complemento a dos B 3 B 2 B 1 B 0 A 3 A 2 A 1 A 0 Co COMPL. SUMADOR S 3 S 2 S 1 S 0 Ci M 0 = SUMA 1 = RESTA
RESTA BINARIA Sumador/Restador en complemento a uno B 3 B 2 B 1 B 0 A 3 A 2 A 1 A 0 Co COMPL. SUMADOR S 3 S 2 S 1 S 0 M Ci 0 = SUMA 1 = RESTA
RESTA BINARIA Circuito complementador COMPL.
RESTA BINARIA Ejemplo de circuito complementador: 74487 B 0 B 1 B 2 B 3 L=0, M=0 B 0 B 1 B 2 B 3 L=0, M=1 B 0 B 1 B 2 B 3 L=1, M=0 1 1 B 0 B 1 B 2 B 3 L=1, M=1 0 0
DESBORDAMIENTO (OVERFLOW) Si estamos trabajando con n bits (1 bit de signo y n-1 bits de magnitud) los resultados de las operaciones no deben superar el siguiente rango: -2 n-1 resultado < 2 n-1 -1 Por ejemplo, si trabajamos con n = 4 bits -24 -1 resultado < 24 -1 -1 -8 resultado < 7 Si nos saliese un número mayor que 7 o menor que -8 es que se ha producido un desbordamiento y el resultado no será correcto.
DESBORDAMIENTO (OVERFLOW) Condición de desbordamiento Sumar dos números positivos y obtener uno negativo o viceversa -1 -2 -3 1101 -4 -5 1111 1110 -1 +0 0001 0010 1100 0100 1010 0101 1001 -7 1000 -8 0110 0111 -3 +2 0011 1011 -6 -2 +1 0000 +3 +4 +5 +6 +7 5 + 3 = -8 ? ? ? 1101 -4 -5 1111 1110 +0 +1 0000 0001 0010 1100 1011 1010 -6 0011 +3 0100 +4 0101 1001 -7 +2 1000 -8 -7 - 2 = +7 ? ? ? 0110 0111 +7 +6 +5
COMPARADORES BINARIOS DE MAGNITUD
COMPARADORES BINARIOS DE MAGNITUD COMPARADOR 7485
UNIDAD ARITMÉTICO-LÓGICA (ALU) ALU 74181
SUMA EN BCD Representación de números en formato BCD Los dígitos decimales del 0 al 9 se representan como 0000 a 1001 en binario Suma: 5 = 0101 3 = 0011 8 = 1000 = 8 1101 = 13 Los problemas surgen cuando el resultado es mayor que nueve Solución: sumar 6 (0110) si el resultado es mayor que 9 5 = 0101 9 = 1001 8 = 1000 7 = 0111 1101 = 13 en binario 6 = 0110 1 0011 = 1 3 en BCD 1 0000 = 16 en binario 6 = 0110 1 0110 = 1 6 en BCD
SUMA EN BCD Bloque sumador BCD A 3 A 2 A 1 A 0 Co B 3 B 2 B 1 B 0 SUMADOR BCD S 3 S 2 S 1 S 0 Ci
RESTA EN BCD Igual que con la resta binaria, la resta en BCD se hará sumando una cantidad negativa a otra positiva Para ello tenemos que ver primero como se representan los números BCD negativos
RESTA EN BCD Complemento a diez DEF: Si N es un número positivo, N es su negativo de tal forma que: n Ca 10 (N) = N = 10 - N Ej: Ca 10 (3291) = 104 -3291 = 10000 -3291 = 6709 = 0110 0111 0000 1001 Complemento a nueve DEF: Si N es un número positivo, N es su negativo de tal forma que: n Ca 9 (N) = N = 10 - 1 -N Ej: Ca 9 (3291) = 104 -1 -3291 = 6708 = 0110 0111 0000 1000
RESTA EN BCD Resta de números en complemento a diez Ej: 5239 - 3291 = 5239 - Ca 10 (3291) Se desprecia el bit de acarreo 1 0101 0010 0011 1001 1 0110 0111 0000 1001 10 1011 1001 0100 10010 10001 positivo 0001 1001 0100 11000 = 1948 OK
RESTA EN BCD Resta de números en complemento a diez Ej: 3291 - 5239 = 3291 - Ca 10 (5239) 1 0 0011 1 0010 1001 0001 1 0100 0111 0110 0001 1 1000 1010 1111 0010 110 10000 10101 1 negativo 1000 0101 Ca 10 del resultado 0010 = -1948 OK
RESTA EN BCD Resta de números en complemento a nueve Ej: 5239 - 3291 = 5239 - Ca 9 (3291) No se desprecia el bit de acarreo positivo 1 0101 0010 0011 1001 1 0110 0111 0000 10 1011 1001 0100 10001 10 110 10001 10111 0001 1001 0100 0111 +1 0 0001 1001 0100 1000 = 1948 OK
RESTA EN BCD Resta de números en complemento a nueve Ej: 3291 - 5239 = 3291 - Ca 9 (5239) 1 0 0011 1 0010 1001 0001 1 0100 0111 0110 0000 1 1000 1010 1111 0001 110 10000 10101 1 1000 negativo 0000 0101 Ca 9 del resultado 0001 = -1948 OK
RESTA EN BCD Resta BCD de 2 dígitos en complemento a nueve B 3 B 2 B 1 B 0 B 7 B 6 B 5 B 4 A 7 A 6 A 5 A 4 Co C 9 SUMADOR S 7 S 6 S 5 S 4 A 3 A 2 A 1 A 0 Ci Co C 9 SUMADOR S 3 S 2 S 1 S 0 Ci
RESTA BCD Circuito complementador a nueve C 9
- Slides: 41