Sumator – cyfrowyukład kombinacyjny, który wykonuje operacje dodawania dwóch (lub więcej) liczb dwójkowych. Sumatory można podzielić na:
szeregowe (ang.serial adder): podczas każdej operacji dodają one dwa bity składników oraz bit przeniesienia;
równoległe (ang.parallel adder): wielopozycyjne, dodają do siebie jednocześnie bity ze wszystkich pozycji, a przeniesienie realizowane jest w zależności od sposobu połączenia sumatorów jednobitowych. Każdy sumator charakteryzuje się typem ukończenia:
Każdy pełny sumator pełny składa się z dwóch sumatorów półpełnych.
Sumatory równoległe z kolei obejmują dwie grupy:
z przeniesieniami szeregowymi (ang.ripple-carry adder),
z przeniesieniami równoległymi (ang.carry look-ahead adder).
Teoria
Tablica prawdy dla sumatora półpełnego i 1-bitowego sumatora pełnego:
Wejścia
Wyjścia
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
0
Wejścia
Wyjścia
0
0
0
0
0
0
0
1
0
1
0
1
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
1
1
0
1
0
1
1
1
1
1
gdzie:
– pierwszy składnik sumy,
– drugi składnik sumy,
– przeniesienie z poprzedniej pozycji,
– suma,
– przeniesienie.
Wyrażenia boolowskie opisujące sumę i przeniesienie:
Wprowadza się jeszcze oznaczenia:
– grupa generacyjna,
– grupa propagacyjna.
Można wówczas zapisać przeniesienie:
Sumator z przeniesieniami szeregowymi
Sumator ten zbudowany jest z bloków funkcjonalnych, które realizują funkcje i Bloki są połączone kaskadowo (ang. ripple), tzn. wyjście jest łączone z wejściem bloku następnego.
Aby na przykład otrzymać bit sumy uprzednio muszą zostać wyznaczone sygnały przeniesień oraz ponieważ zależy od a ten zależy od Czas otrzymania ostatecznego wyniku jest więc ograniczony od dołu przez × czas generacji przeniesienia gdzie to liczba elementarnych bloków, z których zbudowanych jest sumator.
Sumator z przeniesieniami równoległymi
W sumatorze z przeniesieniami równoległymi bity przeniesień są wyznaczane równolegle. Wyrażenia opisujące są rekursywnie rozwijane, tzn. występujący w nich 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 grup generacyjnych i propagacyjnych (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 i obwodów elektrycznych bloku nr 2).
Sumator z przeniesieniami równoległymi jest ok. 20–40% szybszy niż sumator z przeniesieniami szeregowymi.