Двоичный каскадный сумматор — различия между версиями
Bobrov (обсуждение | вклад) (→Схема) |
Bobrov (обсуждение | вклад) |
||
Строка 11: | Строка 11: | ||
Рассмотрим один элемент [[Каскадный сумматор|линейного каскадного сумматора]]. В некоторых случаях бит переноса <tex>C_{i+1}</tex> зависит только от значений <tex>X_{i}</tex> и <tex>Y_{i}</tex>: | Рассмотрим один элемент [[Каскадный сумматор|линейного каскадного сумматора]]. В некоторых случаях бит переноса <tex>C_{i+1}</tex> зависит только от значений <tex>X_{i}</tex> и <tex>Y_{i}</tex>: | ||
− | * Generate(g): <tex>X_{i} = Y_{i} = 1</tex>, | + | * Generate(g): если <tex>X_{i} = Y_{i} = 1</tex>, то <tex>C_{i+1} = 1</tex> |
− | * Kill(k): <tex>X_{i} = Y_{i} = 0</tex>, | + | * Kill(k): если <tex>X_{i} = Y_{i} = 0</tex>, то <tex>C_{i+1} = 0</tex>, |
− | * Propagate(p): <tex>X_{i} \ne Y_{i}</tex>, | + | * Propagate(p): если <tex>X_{i} \ne Y_{i}</tex>, то <tex>C_{i+1} = C_{i}</tex>, |
− | Обозначим композицию действий над переносами значком <tex>\bigotimes</tex> и | + | Обозначим композицию действий над переносами значком <tex>\bigotimes</tex> и построим таблицу значений(в столбце первый аргумент, в строке — второй): |
{| border="1" cellpadding="5" | {| border="1" cellpadding="5" | ||
!<tex>\bigotimes</tex> | !<tex>\bigotimes</tex> | ||
Строка 46: | Строка 46: | ||
[[Файл:Пример компазиции.png|430px|Пример композиции]] | [[Файл:Пример компазиции.png|430px|Пример композиции]] | ||
− | + | ''' Замечание: ''' так как значение <tex>x \otimes p = x</tex>, функцию <tex>\bigotimes</tex> можно определить как последнее не "p". | |
Версия 05:49, 25 ноября 2011
Определение: |
Двоичный каскадный сумматор — цифровая схема, осуществляющая сложение двух многоразрядных двоичных чисел. |
Содержание
Принцип работы
Обозначения:
- — i-ый разряд суммируемых чисел
- — биты переноса
- — результат сложения.
Рассмотрим один элемент линейного каскадного сумматора. В некоторых случаях бит переноса зависит только от значений и :
- Generate(g): если , то
- Kill(k): если , то ,
- Propagate(p): если , то ,
Обозначим композицию действий над переносами значком и построим таблицу значений(в столбце первый аргумент, в строке — второй):
k | p | g | |
---|---|---|---|
k | k | k | g |
p | k | p | g |
g | k | g | g |
Пример
Замечание: так как значение
, функцию можно определить как последнее не "p".
Схема
Сумматор состоит из двух частей. Первая часть — это группа полных сумматоров, вычисляющих ответ. Вторая часть — дерево отрезков, с помощью которого вычисляется бит переноса.
Обозначения
- — полный сумматор, вычисляет результат сложения.
- вычисляет композицию двух переносов.
- возвращает , старший бит сумматора.
Схемная сложность
Дерево отрезков вычисляет биты переноса за
, оставшиеся действия выполняются за . Суммарное время работы — .