Sumator (układ logiczny)
Z Wikipedii
Spis treści |
[edytuj] Wstęp
Sumator jest cyfrowym układem kombinacyjnym, który wykonuje operacje dodawania 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)
[edytuj] 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:
-
- ci = aibi + ci − 1(ai + bi)
Wprowadza się jeszcze oznaczenia:
-
- gi = aibi -- grupa generacyjna
- pi = ai + bi -- grupa propagacyjna
Można wówczas zapisać:
-
- ci = gi + ci − 1pi
[edytuj] Sumator z przeniesieniami szeregowymi
Sumator ten zbudowany jest z bloków funkcjonalnych, które realizują funkcje si i ci. Bloki są połączone kaskadowo (ripple), tzn. wyjście ci jest łączone z wejściem ci − 1 bloku następnego.
Aby np. otrzymać bit sumy s4 uprzednio muszą zostać wyznaczone sygnały przeniesień c1, c2 oraz c3 (c3 zależy od c2, a ten zależy od c1).
Czas otrzymania ostatecznego wyniku jest więc ograniczony do dołu przez , gdzie n to liczba elementarnych bloków z których zbudowanych jest sumator.
[edytuj] Sumator z przeniesieniami równoległymi
W sumatorze przeniesieniami równoległymi bity przeniesień są wyznaczane równolegle. Wyrażenia opisujące ci są [rekursywnie] rozwijane, tzn. występujęce w nim składnik ci − 1 jest zastępowany stosownym wyrażeniem, np.:
-
- c0 = const
- c1 = g1 + c1 − 1p1 = g1 + c0p1
- c2 = g2 + c2 − 1p2 = g2 + c1p1 = g2(g1 + c0p1)p2
Układ buduje się z dwóch głównych części:
- bloków wyznaczających sumę si oraz grupy generacyjne gi i propagacyjne pi (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