Sumator jest cyfrowymukładem kombinacyjnym, który wykonuje operacje dodawnia dwóch (lub więcej) liczb dwójkowych.
Rozróżnia się dwa główne rodzaje sumatorów:
z przeniesieniami szeregowymi (ang.ripple-carry adder)
z przeniesieniami równoległymi (ang.carry look-ahead adder)
Teoria
Tabelka dodawnia dwóch liczb dwójkowych przedstawia się następująco:
ai
bi
ci-1
si
ci
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
1
0
0
1
1
0
0
1
1
0
1
1
0
1
0
1
1
1
1
1
1
gdzie:
ai -- pierwszy składnik sumy
bi -- drugi składnik sumy
ci-1 -- przeniesienie z poprzedniej pozycji
si -- suma
ci -- przeniesienie
Wyrażenia boolowskie opisujące sumę i przeniesienie:
::
::
Wprowadza się jeszcze oznaczenia:
:: -- grupa generacyjna
:: -- grupa propagacyjna
Można wówczas zapisać:
::
::
Sumator z przeniesieniami szeregowymi
Sumator ten zbudowany jest z bloków funkcjonalnych, które realizują funkcje i . Bloki są połączone kaskasowo (ripple), tzn. wyjście jest łączone z wejściem bloku następnego.
Aby np. otrzymać bit sumy uprzednio muszą zostać wyznaczone sygnały przeniesień , oraz ( zależy od , a ten zależy od ).
Czas otrzymania ostatecznego wyniku jest więc ograniczony do dołu przez , gdzie to liczba elementarnych bloków z których zbudowanych jest sumator.
Sumator z przeniesieniami równoległymi
W sumatorze przeniesieniami równoległymi bity przeniesień są wyznaczane równolegle. Wyrażenia opisujące są [rekursywnie] rozwijane, tzn. występujęce w nim składnik jest zastępowany stosownym wyrażeniem, np.:
::
::
::
Układ buduje się z dwóch głównych części:
bloków wyznaczających sumę oraz grupy generacyjne i propagacyjne (które są liczone niezależnie!)
bloku generującego przeniesienia, zgodnie z rozwiniętymi wyrażeniami
W praktyce buduje się 4-bitowe sumatory tego typu, ze względu na znaczne skomplikowanie wyrażeń (a więc obwodów elektrycznych bloku nr 2).
Sumator z przeniesieniami równoległymi jest ok. 20-40% szybszy niż sumator z przeniesieniami szeregowymi