En electrónica, un sumador de acarreo-selección es una forma particular de implementar un sumador , que es un elemento lógico que calcula la suma de dos números de dos bits. El sumador de acarreo-selección es simple pero bastante rápido, y tiene una profundidad de nivel de compuerta de .
El sumador de acarreo-selección generalmente consta de sumadores de acarreo de ondulación y un multiplexor . La suma de dos números de n bits con un sumador de acarreo-selección se realiza con dos sumadores (por lo tanto, dos sumadores de acarreo de ondulación), para realizar el cálculo dos veces, una vez asumiendo que el acarreo de entrada es cero y la otra asumiendo que será uno. Después de calcular los dos resultados, la suma correcta, así como el acarreo de salida correcto, se seleccionan con el multiplexor una vez que se conoce el acarreo de entrada correcto.
El número de bits en cada bloque de selección de acarreo puede ser uniforme o variable. El retardo óptimo se produce cuando se aplica un tamaño variable de los bloques [1] . Cuando es variable, el tamaño del bloque debe tener un retardo, desde las entradas de adición A y B hasta el acarreo de salida, igual al de la cadena de multiplexores que lo lleva, de modo que el acarreo de salida se calcule justo a tiempo. El retardo se deriva del tamaño uniforme, donde el número ideal de elementos sumadores completos por bloque es igual a la raíz cuadrada del número de bits que se agregan, ya que eso producirá un número igual de retardos MUX.
Arriba se muestra el bloque de construcción básico de un sumador de selección de acarreo, donde el tamaño del bloque es 4. Se multiplexan juntos dos sumadores de acarreo de ondulación de 4 bits, donde los bits de acarreo y suma resultantes son seleccionados por el acarreo de entrada. Dado que un sumador de acarreo de ondulación supone un acarreo de entrada de 0 y el otro supone un acarreo de entrada de 1, al seleccionar qué sumador tenía la suposición correcta a través del acarreo de entrada real se obtiene el resultado deseado.
Se puede crear un sumador de acarreo-selección de 16 bits con un tamaño de bloque uniforme de 4 con tres de estos bloques y un sumador de acarreo-onda de 4 bits. Dado que el acarreo de entrada se conoce al comienzo del cálculo, no se necesita un bloque de acarreo-selección para los primeros cuatro bits. El retardo de este sumador será de cuatro retardos de sumador completos, más tres retardos de MUX.
De manera similar, se puede crear un sumador de selección de acarreo de 16 bits con tamaño variable. Aquí mostramos un sumador con tamaños de bloque de 2-2-3-4-5, este es el tipo especial de sumador de selección de acarreo de tamaño variable, llamado sumador de selección de acarreo de raíz cuadrada. [2] Esta división es ideal cuando el retraso del sumador completo es igual al retraso del MUX, lo cual es poco probable. El retraso total es dos retrasos del sumador completo y cuatro retrasos del mux. Tratamos de hacer que el retraso a través de las dos cadenas de acarreo y el retraso del acarreo de la etapa anterior sean iguales.
Un sumador condicional [3] es una estructura recursiva basada en el sumador de acarreo-selección. En el sumador condicional, el nivel MUX elige entre dos entradas de n/2 bits que están construidas como sumadores condicionales. El nivel inferior del árbol consta de pares de sumadores de 2 bits (1 medio sumador y 3 sumadores completos) más 2 multiplexores de un solo bit.
El sumador condicional sufre de una gran dispersión de las salidas de acarreo intermedias. La dispersión puede ser tan alta como n/2 en el último nivel, donde todos los multiplexores pasan de a .
El diseño del sumador de selección de acarreo se puede complementar con una estructura de sumador de acarreo con anticipación para generar las entradas MUX, obteniendo así un rendimiento aún mayor como sumador de prefijo paralelo y al mismo tiempo reduciendo potencialmente el área.
Un ejemplo se muestra en el artículo sobre el sumador Kogge-Stone .