580 likes | 1.15k Views
Electrónica Básica. Aritmética Binaria Electrónica Digital. José Ramón Sendra 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
E N D
Electrónica Básica Aritmética BinariaElectrónica Digital José Ramón Sendra 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)
A i B i SUMA BINARIA Sumador sin acarreo o Half Adder Ai Ai 0 1 0 1 Ai Bi Suma Ac. Bi Bi 0 0 0 0 0 1 0 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 Ac. = Ai Bi Suma = Ai Bi + Ai Bi = Ai + Bi Suma Acarreo
A B Ci 00 01 11 10 0 0 1 0 1 1 1 0 1 0 SUMA BINARIA Sumador con acarreo o Full Adder A B Ci S Co 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 S 0 1 1 0 1 1 0 0 1 0 1 0 1 0 1 A B 1 1 0 0 1 1 1 1 1 1 Ci 00 01 11 10 0 0 0 1 0 Co 1 0 1 1 1 S = Ci xor A xor B Co = B Ci + A Ci + A B = CiA + CiB + A B
CO A Ci A B B S Ci Ci A B SUMA BINARIA Sumador con acarreo o Full Adder Implantación estándar: 6 puertas
SUMA BINARIA Sumador con acarreo o Full Adder Implantación alternativa: 5 puertas A + B A + B + Ci A S S S HA HA Ci (A + B) A B B Co Co Ci Co + A B + Ci (A + B) = A B + B Ci+ A Ci
SUMA BINARIA Sumador paralelo con acarreo serie A2 B2 Cin A1 B1 A0 B0 + + + Cout S2 C2 S1 C1 S0
SUMA BINARIA Sumador paralelo con acarreo paralelo (es más rápido) Necesitamos predecir el acarreo para cada término de la suma A2 B2 Cin A1 B1 A0 B0 Cout + + + S2 S1 S0
SUMA BINARIA Sumador paralelo con acarreo paralelo Se trata de predecir el acarreo para cada término de la suma C0 = Cin C1 = A0 B0 + C0 (A0+B0) = G0 + C0 P0 C2 = A1 B1 + C1 (A1+B1) = G1 + [G0 + C0 P0] P1 = G1 + G0 P1 + C0 P0 P1 C3 = ... = G2 + G1 P2 + G0 P1 P2 + C0 P0 P1 P2 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 + S B Co Ci 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 Ca1 (N) = N = (2 - 1) - N Ej: Ca1 (7) 4 2 = 10000 1 = - 00001 1111 7 = - 0111 1000 = -7 TRUCO: Cambiamos cada bit por su complementario 0111 -> 1000 Ej: Ca1 (7)
RESTA BINARIA Complemento a uno -0 +0 +1 -1 1111 0000 1110 0001 -2 +2 + 1101 0010 -3 +3 1100 0011 0 100 = + 4 -4 1011 1 011 = - 4 +4 0100 1010 0101 - -5 +5 1001 0110 +6 -6 1000 0111 +7 -7 Hay dos representaciones del cero (malo)
RESTA BINARIA Complemento a dos DEF: Si N es un número positivo: n Ca2 (N) = 2 - N = Ca1 (N) + 1 Ej: Ca2 (7) Ej: Ca2 (7) 4 4 2 = 10000 -(-7) = -1001 0111 = repr. de 7 2 = 10000 -7 = - 0111 1001 = repr. de -7
RESTA BINARIA Complemento a dos TRUCO1: Complementamos cada bit y al resultado le sumamos 1, es decir, le sumamos 1 al Ca1 del número 0111 -> 1000 + 1 -> 1001 (representación de -7) 1001 -> 0110 + 1 -> 0111 (representación de 7) TRUCO2: 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 + 3 7 00100 00011 00111 -4 + (-3) -7 11011 11100 110111 1 11000 Se suma el bit de acarreo Ca1 del resultado 4 - 3 1 00100 11100 100000 1 00001 -4 + 3 -1 11011 00011 11110
RESTA BINARIA Suma y resta de números en complemento a dos 4 + 3 7 00100 00011 00111 -4 + (-3) -7 11100 11101 111001 Se desprecia el bit de acarreo Ca2 del resultado 4 - 3 1 00100 11101 100001 -4 + 3 -1 11100 00011 11111 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 B3 B2 B1 B0 COMPL. A3 A2 A1 A0 0 = SUMA 1 = RESTA Co SUMADOR Ci M S3 S2 S1 S0
RESTA BINARIA Sumador/Restador en complemento a uno B3 B2 B1 B0 0 = SUMA 1 = RESTA COMPL. M A3 A2 A1 A0 Co SUMADOR Ci S3 S2 S1 S0
RESTA BINARIA Circuito complementador COMPL.
RESTA BINARIA Ejemplo de circuito complementador: 74487 B0 B1 B2 B3 L=0, M=0 B0 B1 B2 B3 B0 B1 B2 B3 L=0, M=1 B0 B1 B2 B3 B0 B1 B2 B3 L=1, M=0 1 1 1 1 B0 B1 B2 B3 L=1, M=1 0 0 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: -2n-1 resultado < 2n-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 -1 +0 +0 -2 -2 1111 0000 +1 1111 0000 +1 1110 1110 0001 0001 -3 -3 +2 +2 1101 1101 0010 0010 -4 -4 1100 +3 1100 +3 0011 0011 -5 -5 1011 1011 0100 +4 0100 +4 1010 1010 -6 -6 0101 0101 +5 +5 1001 1001 0110 0110 -7 -7 +6 +6 1000 0111 1000 0111 -8 -8 +7 +7 -7 - 2 = +7 ??? 5 + 3 = -8 ???
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 1000 = 8 5 = 0101 8 = 1000 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 8 = 1000 1101 = 13 en binario 6 = 0110 1 0011 = 1 3 en BCD 9 = 1001 7 = 0111 1 0000 = 16 en binario 6 = 0110 1 0110 = 1 6 en BCD
SUMA EN BCD Bloque sumador BCD A3 A2 A1 A0 B3 B2 B1 B0 SUMADOR BCD Co Ci S3 S2 S1 S0
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 Ca10 (N) = N = 10 - N Ej: Ca10 (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 Ca9 (N) = N = 10 - 1-N Ej: Ca9 (3291) = 104-1-3291 = 6708 = 0110 0111 0000 1000
RESTA EN BCD Resta de números en complemento a diez Ej: 5239 - 3291 = 5239 - Ca10 (3291) 1 1 0 0101 0010 0011 1001 1 0110 0111 0000 1001 10 1011 1001 0100 10010 110 110 10001 11000 Se desprecia el bit de acarreo 0001 1001 0100 1000 = 1948 OK positivo
RESTA EN BCD Resta de números en complemento a diez Ej: 3291 - 5239 = 3291 - Ca10 (5239) 1 1 0 0011 0010 1001 0001 1 0100 0111 0110 0001 1 1000 1010 1111 0010 110 110 10000 10101 1 1000 0000 0101 0010 = -1948 OK negativo Ca10 del resultado
RESTA EN BCD Resta de números en complemento a nueve Ej: 5239 - 3291 = 5239 - Ca9 (3291) 1 1 0 0101 0010 0011 1001 1 0110 0111 0000 1000 10 1011 1001 0100 10001 110 110 10001 10111 10 0001 1001 0100 0111 +1 0 0001 1001 0100 1000 = 1948 OK No se desprecia el bit de acarreo positivo
RESTA EN BCD Resta de números en complemento a nueve Ej: 3291 - 5239 = 3291 - Ca9 (5239) 1 1 0 0011 0010 1001 0001 1 0100 0111 0110 0000 1 1000 1010 1111 0001 110 110 10000 10101 1 1000 0000 0101 0001 = -1948 OK Ca9 del resultado negativo
RESTA EN BCD Resta BCD de 2 dígitos en complemento a nueve B3 B2 B1 B0 B7 B6 B5 B4 C9 C9 A3 A2 A1 A0 A7 A6 A5 A4 Co SUMADOR Ci Co SUMADOR Ci S3 S2 S1 S0 S7 S6 S5 S4
RESTA BCD Circuito complementador a nueve C9