Sumator (układ logiczny)
Sumator – cyfrowy ukł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
[edytuj | edytuj kod]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
[edytuj | edytuj kod]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
[edytuj | edytuj kod]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.