Sumador Ripple-Carry • Sumador de N bits conectando en cascada N circuitos sumadores completos (FA) conectando Co,k-1 a Ci,k para k=1 a N1 y con Ci,0 conectado a 0 Sumador Ripple-Carry • El retardo del circuito depende del número de etapas lógicas que haya que recorrer, y estará en función de las señales de entrada aplicadas Sumador Ripple-Carry • Para algunas señales de entrada no se produce ningún efecto de propagación, mientras que para otras el acarreo tiene que propagarse a lo largo de todo el circuito desde el bit LSB hasta el bit MSB Sumador Ripple-Carry •El retardo de propagación en este caso (camino crítico) se define como el retardo de caso peor para todos los posibles patrones de entrada •tp = (N-1)tcarry + tsum Propagación en un RCA 0 1 0 1 3tcarry 3tcarry +tsum 0 1 2tcarry 2tcarry +tsum 1 1 tcarry tcarry +tsum •tRCA = 3tcarry + tsum tsum Propagación en un RCA 0 1 0 0 2tcarry 2tcarry +tsum 0 1 2tcarry 2tcarry +tsum 1 1 tcarry tcarry +tsum •tRCA = 2tcarry + tsum tsum Propagación en un RCA • El retardo de propagación del sumador RCA es linealmente proporcional a N. Este sumador resulta adecuado para la implementación de sumas con longitud de palabra relativamente pequeña. • Al diseñar la celda de sumador completo para un sumador rápido con propagación de acarreo, es mucho más importante optimizar tcarry que tsum. Sumador Carry Lookahead Ejemplo 2 Ejemplo 1 Sumar: 3456789876543 + 6543210123456 Sumar: 3456789876543 + 6544210123456 propaga acarreo • Sumador con acarreo anticipado Sumador Carry Lookahead Ejemplo 1 Ejemplo 2 Sumar: 3456789876543 + 6543210123456 Sumar: 3456789876543 + 6544210123456 propaga acarreo propaga acarreo genera acarreo • Sumador con acarreo anticipado Sumador Carry Lookahead • Sumador con acarreo anticipado Sumador Carry Lookahead • Para evitar el retardo de la cadena de acarreo, se generan directamente los acarreos intermedios a partir de las entradas Sumador Carry Lookahead Co,k = f ( Ak , Bk , Co,k −1 ) = Gk + Pk ⋅ Co,k −1 ⇒ Co,k = Gk + Pk ⋅ (Gk −1 + Pk −1 ⋅ Co,k −2 ) ⇒ ( Co,k = Gk + Pk ⋅ Gk −1 + Pk −1 ⋅ (K + P1(G0 + P0 ⋅ Ci ,0 )) ) Sumador Carry Lookahead • Para cada bit, las salidas de acarreo y de suma son independientes de los bits anteriores. • Por tanto, el efecto de propagación se ha eliminado y el tiempo de suma debería ser independiente del número de bits. • Sin embargo, el alto fan-in del circuito hace que sea prohibitivamente lento para valores grandes de N. Además, el fan-out de algunas señales crece en exceso. Sumador Carry-Select • Principio: Precalcular los acarreos de un grupo de bits intermedios para los dos posibles valores de acarreo de entrada evitando así el tiempo de espera de su llegada. • Cuando llega el acarreo de entrada definitivo, los acarreos siguientes ya están preparados y sólo hay que seleccionar el correcto mediante una etapa multiplexora. Sumador Carry-Select Se generan las Setup señales G y P para calcular los acarreos intermedios de cada bloque P,G "0" "1" Co,k-1 "0" Carry Propagation "1" Carry Propagation Selecciona los acarreos precalculados en función del acarreo de entrada recibido Multiplexer C o,k+3 Carry Vector Sum Generation Generada con la señal P y los acarreos Topología de un módulo de selección de acarreo Sumador Carry-Select Bit 0–3 Bit 4–7 Bit 8–11 Bit 12–15 Setup Setup Setup Setup 0 0-Carry 0 0-Carry 0 0-Carry 0 0-Carry 1 1-Carry 1 1-Carry 1 1-Carry 1 1-Carry Ci,0 Multiplexer Co,3 Multiplexer Co,7 Multiplexer Co,11 Multiplexer Sum Generation Sum Generation Sum Generation Sum Generation S0–3 S4–7 S8–11 S12–15 Sumador lineal de 16 bits con carry-select Co,15 Sumador Carry-Select Se puede construir un sumador completo de N bits con carry-select encadenando una serie de etapas sumadoras de igual longitud, de M bits cada una, como en la técnica de carry-bypass. El retardo de propagación de caso peor será: tp = tsetup + M·tcarry + N/M·tmux + tsum Sumador Carry-Select - Retardo El retardo es también linealmente proporcional a N, porque la señal de selección de bloque que elige entre las soluciones correspondientes a los casos 0 y 1 continúa teniendo que propagarse a través de todas las etapas en el caso peor. Sumador Carry-Select - Desventajas Se duplican los recursos (doble generación de acarreo) → Hardware adicional: extra camino de generación de carry + un multiplexor → 30% extra área y mayor coste Sumadores- Retardos 50 Ripple adder tp (in unit delays) 40 30 Linear select 20 10 0 Square root select 0 20 40 N 60