В электронике, сумматор с выбором переноса — это особый способ реализации сумматора , который является логическим элементом, вычисляющим -битную сумму двух -битных чисел. Сумматор с выбором переноса прост, но довольно быстр, имея глубину уровня вентиля .
Сумматор с выбором переноса обычно состоит из сумматоров с последовательным переносом и мультиплексора . Сложение двух n-битных чисел с сумматором с выбором переноса выполняется с помощью двух сумматоров (следовательно, двух сумматоров с последовательным переносом), чтобы выполнить вычисление дважды, один раз с предположением, что перенос равен нулю, а другой раз предполагая, что он будет равен единице. После вычисления двух результатов правильная сумма, а также правильный перенос затем выбираются с помощью мультиплексора, как только становится известен правильный перенос.
Число бит в каждом блоке выбора переноса может быть равномерным или переменным. Оптимальная задержка возникает, когда применяется переменный размер блоков [1] . При переменном размере блок должен иметь задержку от входов сложения A и B до переноса, равную задержке цепи мультиплексора, ведущей в него, так что перенос вычисляется точно вовремя. Задержка выводится из равномерного размера, где идеальное число элементов полного сумматора на блок равно квадратному корню из числа добавляемых бит, поскольку это даст равное число задержек MUX.
Выше представлен базовый строительный блок сумматора с выбором переноса, где размер блока равен 4. Два 4-битных сумматора с последовательным переносом мультиплексируются вместе, где результирующие биты переноса и суммы выбираются с помощью переноса. Поскольку один сумматор с последовательным переносом предполагает перенос 0, а другой предполагает перенос 1, выбор сумматора с правильным предположением с помощью фактического переноса дает желаемый результат.
16-битный сумматор с выбором переноса с равномерным размером блока 4 может быть создан с тремя такими блоками и 4-битным сумматором с последовательным переносом. Поскольку перенос известен в начале вычисления, блок выбора переноса не нужен для первых четырех бит. Задержка этого сумматора составит четыре полных задержки сумматора плюс три задержки MUX.
Аналогичным образом можно создать 16-битный сумматор с выбором переноса и переменным размером. Здесь мы показываем сумматор с размерами блоков 2-2-3-4-5, это особый тип сумматора с выбором переноса переменного размера, называемый сумматором с выбором переноса квадратного корня. [2] Такое разделение идеально, когда задержка полного сумматора равна задержке MUX, что маловероятно. Общая задержка составляет две задержки полного сумматора и четыре задержки мультиплексора. Мы пытаемся сделать задержку через две цепи переноса и задержку предыдущего этапа переноса одинаковой.
Условный сумматор [3] — это рекурсивная структура, основанная на сумматоре с выбором переноса. В условном сумматоре уровень MUX выбирает между двумя n/2 -битными входами, которые сами по себе построены как условный сумматор. Нижний уровень дерева состоит из пар 2-битных сумматоров (1 полусумматор и 3 полных сумматора) плюс 2 однобитных мультиплексора.
Сумматор условной суммы страдает от очень большого разветвления выходов промежуточного переноса. Разветвление может достигать n/2 на последнем уровне, где управляет всеми мультиплексорами от до .
Конструкцию сумматора с выбором переноса можно дополнить структурой сумматора с опережающим переносом для генерации входов MUX, что позволит получить еще большую производительность в качестве параллельного префиксного сумматора при потенциальном сокращении площади.
Пример показан в статье о сумматоре Когге–Стоуна .