Subsistemas aritméticos y lógicos Tema 8
Qué sabrás al final del capítulo? Diseño de Sumadores Binarios Semisumadores Sumador completo Sumador con acarreo serie Sumador con acarreo anticipado Sumador / Restador Sumador BCD Diseño de Multiplicadores aritméticos Funcionamiento de los módulos lógicos Comparadores Generadores y detectores de paridad Conversores de códigos Diseño de una unidad aritmético-lógica elemental
Sumador Binario
Semisumador (Half Adder) La operación de suma aritmética tiene como resultado suma y acarreo No podemos propagar acarreos con semisumadores A B C S 0 0 0 0 0 1 0 1 1 0 0 1 1 1 1 0 S = A B C = A B Propagación (Pi) Generación (Gi)
Sumador Completo (Full Adder) Funcionamiento similar al semisumador añadiendo el acarreo de entrada A i B i C i C i+1 S i 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 S i = A i B i C i = P i C i C i+1 = (A i + B i ) C i + (A i B i ) =(A i B i ) C i + (A i B i ) = P i C i + G i
Sumador completo Podemos diseñarlo a partir de dos semisumadores
Sumador Completo Cuál será el camino crítico? semisumador semisumador
Sumador Completo tpo. retardo por puerta = 5 ns La salida S i llega 10 ns de retardo respecto a las entradas A y B y sólo 5 ns respecto a la entrada C semisumador semisumador camino crítico La salida C i+1 llega 15 ns de retardo respecto a las entradas A y B y sólo 10 ns respecto a la entrada C Ai Bi Ci Si Ci+1
Sumador paralelo con acarreo serie A n-1 B n-1 A 2 B 2 A 1 B 1 A 0 B 0 C n FA C n-1 C 3 FA C 2 FA C 1 FA C 0 S n S n-1 S 2 S 1 S 0
Sumador paralelo con acarreo serie Cada sumador completo realiza una suma Genera un acarreo que se le transmite al sumador siguiente Los tiempos se van acumulando Si t s es el tiempo para realizar una suma y t c el tiempo para realizar un acarreo, resulta: Dato en S 0 C 1 S 1 C 2 S n-1 S n = C n Tiempo t s t c t s + t c 2 t c t s + (n-1) t c n t c
Sumador con acarreo anticipado Los acarreos se evalúan anticipadamente con lógica de 2 niveles de puertas Las sumas se realizan posteriormente en paralelo En primer lugar se obtienen los términos de generación y propagación Pi = Ai Bi Gi = Ai Bi Todos los términos se calculan en paralelo desde el primer momento
Sumador con acarreo anticipado Cálculo del acarreo desarrollando la fórmula iterativa Ci+1 = Pi Ci + Gi todos los acarreos dependen de propagaciones, generaciones y acarreo inicial C1 = P0 C0 + G0 C2 = P1 C1 + G1 = P1 (P0 C0 + G0) + G1 = P1P0C0 + P1G0 + G1... cualquier función booleana puede expresarse con lógica de 2 niveles de puertas Cálculo de las sumas Si = Pi Ci
Sumador con acarreo anticipado t 1.- Propagación y Generación t 3.- Sumas 2t 2.- Acarreos
Sumadores de 4 bits
Sumador / Restador El uso del complemento a 2 permite realizar sumas y restas con un sumador y un poco de lógica adicional A3 A2 A1 A0 B3 B2 B1 B0 S/R sumador S/R = 0 suma S/R = 1 resta S4 S3 S2 S1 S0 Complementador a 2
Código BCD El código BCD es un código de 4 bits que representa los 10 dígitos decimales como si fueran binarios naturales Cada dígito decimal se sustituye por sus cuatro bits El código BCD, al igual que el binario, es un código ponderado de pesos 8 4 2 1 Puede haber otros códigos BCD con otra relación de ponderación o, incluso, no ponderados
Otros códigos BCD autocomplementarios Decimal Código BCD Código BCD exceso3 Código BCD Aiken 0 0000 0011 0000 1 0001 0100 0001 2 0010 0101 0010 3 0011 0110 0011 4 0100 0111 0100 5 0101 1000 1011 6 0110 1001 1100 7 0111 1010 1101 8 1000 1011 1110 9 1001 Ponderado 8 4 2 1 1100 No Ponderado 1111 Ponderado 2 4 2 1
Sumador BCD Suma números codificados en BCD, y genera otro BCD Si el resultado es > 10 es necesario corregir restando 10 A3 A2 A1 A0 B3 B2 B1 B0 Z4 sumador Z3 Z2 Z1 Z0 corrección corregir? 0 corregir = 0 0000 corregir = 1 0110 sumador últimos 4 bits de +6 = últimos 4 bits de -10 S4 S3 S2 S1 S0
Multiplicadores combinacionales
Multiplicadores La multiplicación aritmética coincide con el producto lógico FA FA FA FA FA FA
Módulos lógicos
Comparadores Comparan dos números en binario, activando únicamente la salida que corresponda
Comparador 7485(comparador de 4 bits)
Comparador Diseño de un comparador de 8 bits a partir de dos 7485
Generador de paridad La suma (descartando acarreos) de un número par de unos siempre es 0 La suma (descartando acarreos) de un número impar de unos siempre es 1 Para 3 variables Para 3 variables P Para 4 variables Para 4 variables = x1 x2 x3 x4 I = x1 x2 x3 x4
Conversores de código Pueden haber conversores para cualquier pareja de códigos Se pueden construir con un codificador y un decodificador Ejemplo:
Conversores de código 74184. Conversor de un número en BCD de 6 bits (hasta 39) a binario 21 1 0 0 0 0 1 F E D C B A 74184 X5 X4 X3 X2 X1 X0 0 1 0 1 0 1
Diseño de una ALU elemental
Diseño de una ALU elemental Trataremos de diseñar una unidad aritmético-lógica sencilla Características: Datos de entrada: A y B de 4 bits 4 líneas de selección (hasta 16 operaciones diferentes) Operaciones lógicas y aritméticas A 4 B 4 ALU 5 F S3 S2 S1 S0
Diseño de una ALU elemental Operaciones: S3 = 0 LÓGICA S3 = 1 ARITMÉTICA S2 S1 Operación S2 S1 S0 Operación 0 0 A and B 0 0 0 A+B 0 1 A or B 0 0 1 A+B+1 1 0 NOT A 0 1 0 A-1 1 1 A xor B 0 1 1 A+1111+1 1 0 0 A 1 0 1 A+1 1 1 0 A-B-1 1 1 1 A-B
Diseño de una ALU elemental Diagrama de bloques de la ALU
Diseño de una ALU elemental Parte lógica: A B and 0 A B or 1 MUX 4x1 F A not 2 A B xor 3 S2 S1
Diseño de una ALU elemental Parte aritmética: b 3 b 2 b 1 b 0 C0 = S0 S 2 S 1 BLOQUE B S 2 d 3 d 2 d 1 S 1 d 0 SUMAR 0 0 B 0 1 1111 1 0 0000 1 1 B
Bloque B S 2 S 1 b i d i S 2 S 1 b i 00 01 11 10 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 d = S b i 2 bi + S1 Para i desde 0 hasta 3 i 1 0 1 0 1 1 0 1
Bloque B
Hemos aprendido. Diseño de Sumadores Binarios Semisumadores Sumador completo Sumador con acarreo serie Sumador con acarreo anticipado Sumador/Restador Sumador BCD Diseñar Multiplicadores aritméticos Funcionamiento de los módulos lógicos Comparadores Generadores y detectores de paridad Conversores de códigos Diseñar una Unidad Aritmético-Lógica elemental
Final del tema 8