Circuitos combinacionales aritméticos (Parte II) © Luis Entrena, Celia López, Mario García, Enrique San Millán Universidad Carlos III de Madrid 1 Contenidos 1. Circuitos sumadores y restadores Ø Sumadores con propagación de acarreo serie • Semisumador. Sumador total. Sumador de n bits con acarreo serie Ø Sumadores con acarreo anticipado Ø Sumador/Restador en complemento a 2 2. Circuitos de multiplicación Ø Circuito multiplicador básico 3. Unidades Aritmético-Lógicas (ALUs) Ø Concepto de ALU © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 2 Circuitos sumadores y restadores A(n) B(n) Carry_In SUMA S(n) Carry_Out A(n) B(n) RESTA R(n) Borrow_In © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 Borrow_Out 3 Sumador con propagación de acarreo serie. Suma decimal y binaria 1 1 86d 25d 111d à à à 1010110b 0011001b 11011111b Bn-1 An-1 Bn An Cn bit n Sn Ø Operandos: n bits Ø Resultado: n+1 bits Cn-1 bit n-1 Sn-1 B1 A1 … C1 bit 1 C0 S1 © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 B0 A0 bit 0 S0 4 Sumador con propagación de acarreo serie. Semisumador A A B Half-Adder (SS) 0 0 1 1 Carry S B 0 1 0 1 S 0 1 1 0 Carry 0 0 0 1 A B Carry S © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 5 Sumador con propagación de acarreo serie. Sumador completo A A B 0 0 0 0 1 1 1 1 C_out Full-Adder (SC) S C_in A B B 0 0 1 1 0 0 1 1 C_in 0 1 0 1 0 1 0 1 S C_out 0 1 1 0 1 0 0 1 C_out SS C_in 0 0 0 1 0 1 1 1 SS S © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 6 Sumador con propagación de acarreo serie. Sumador completo A A B 0 0 0 0 1 1 1 1 C_out Full-Adder (SC) S C_in B C_in 0 0 1 1 0 0 1 1 S 0 1 0 1 0 1 0 1 0 1 1 0 1 0 0 1 C_out 0 0 0 1 0 1 1 1 S 0 1 0 1 1 0 1 0 Cout 0 0 1 0 0 1 1 1 © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 7 Sumador con propagación de acarreo serie. Sumador completo A A Full-Adder (SC) B 0 0 0 0 1 1 1 1 C_out S C_in BCin ACin B C_in 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 S 0 1 1 0 1 0 0 1 C_out 0 0 0 1 0 1 1 1 Carry AB A B C_in S © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 8 Sumador con propagación de acarreo serie. Sumador de varios bits B(0) B(1) A(1) SS bit 0 C_in(1) C_out(0) B(2) B(3) A(3) C_in(3) C_in(2) S(2) S(0) SC bit 1 C_out(1) SC bit 2 C_out(2) SC bit 3 C_out(3) A(2) A(0) S(1) LRetraso = f(#bits) S(3) © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 9 Sumador con propagación de acarreo serie. Sumador de varios bits B(3) A(3) B(2) A(2) B(1) A(1) B(0) A(0) C_in C_out S(3) S(2) S(1) © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 S(0) 10 Sumador con acarreo anticipado. B3 A3 B2 A2 B1 A1 C_out B0 A0 SC S3 SC S2 SC S1 SC S0 Carry look-ahead © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 11 Sumador con acarreo anticipado. B(3) A(3) B(2) A(2) B(1) A(1) B(0) A(0) Lógica de acarreo C_in C_out Lógica de suma S(3) S(2) S(1) © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 S(0) 12 Sumador/restador en CA2. Complemento a 2 • Números positivos 01010 +10d • Números negativos 10110 -10d A + CA2(A) 1 © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 13 Sumador/restador en CA2. A – B = A + (-B) A B 1 CA2 + Res 0 S/R © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 14 Sumador/restador en CA2. SR B(0) C_in B(1) B B(2) Sumador 4 bits S A B(3) A(0) A(1) A(2) A(3) S(0) S(1) S(2) S(3) C_out B(4) C_in B B(5) B(6) B(7) A(4) A(5) A(6) A(7) Sumador A 4 bits S C_out S(4) S(5) S(6) S(7) Detector de desbordamiento © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 OV 15 Sumador/restador en CA2. Ejercicio A(7) B (7) S(7) Detector de desbordamiento OV © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 16 Multiplicador. A B Multiplicador 86d 15d 30 40 6 8 1290 S Multiplicador 86d 15d 1290d decimal y binario à 1010110b à 0001111b à 10100001010b Decimal 5x6 5x8 desplazado a izqda 1 p. 6x1 desplazado a izqda 1 p. 8x1 desplazado a izqda 2 p. Ø Operandos: n bits Ø Resultado: 2*n bits © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 17 Multiplicador. Binario A * B = A * (bn-1*2n-1+ bn-2*2n-2+…+ b1*21+ b0*20 ¡¡ 1s o 0s !! La multiplicación binaria de dos números A (m bits) y B (n bits) consiste en una suma de tantos elementos como bits tenga B (n). Cada elemento i es el número A desplazado a la izquierda i veces si el peso correspondiente de B vale 1 . En caso contrario el elemento i es 0 . © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 18 Multiplicador. A * B = A * (4*B(2)+2*B(1)+1*B(0)) *1 A 1 0 SHL(1) *2 1 0 SHL(1) + B(0) B(1) *4 Res + 1 0 0 B(2) © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 19 Multiplicador. A * 7 = A * (4+2+1) *1 A SHL(1) SHL(1) + *2 *4 Res + © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 20 Multiplicador. A * 5 = A * (4+0+1) *1 A SHL(1) SHL(1) + *2 *4 Res + 0 © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 21 Multiplicador. B4 A4 A1B4 A2B4 A2B3 A3B4 A3B3 A2B2 A4B4 A4B3 A4B2 A4B1 P8 P7 P6 P5 P4 B3 B2 B1 A3 A2 A1 A1B3 A1B2 A1B1 A2B2 A2B1 A3B1 P3 P2 P1 © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 22 Multiplicador. © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 23 Unidad Aritmético-Lógica CarryIn A Res Overflow A>B A<B A=B CarryOut B Sel_Op © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 24 Unidad Aritmético-Lógica Combinacional Bloque para la realización de operaciones aritmético-lógicas: Ø Suma Operaciones lógicas (bit a bit) A+B Ø AND Ø Resta Ø OR A-B Ø XOR Ø Complemento a 2 Ø XNOR -B Ø NOT Ø Comparación A>B A<B RESTA A=B A A A A A A A A Ø Desplazamiento a la izquierda SHL(A) ß Ø Desplazamiento a la derecha A A A A A A A A SHR (A) à 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 25 Referencias l l l “Circuitos y Sistemas Digitales”. J. E. García Sánchez, D. G. Tomás, M. Martínez Iniesta. Ed. Tebar-Flores Electrónica Digital , L. Cuesta, E. Gil, F. Remiro, McGraw-Hill Fundamentos de Sistemas Digitales , T.L Floyd, Prentice-Hall © Luis Entrena, Celia López, Mario García, Enrique San Millán. Universidad Carlos III de Madrid, 2008 26 26