Wolna encyklopedia

Sumatorcyfrowy układ kombinacyjny, który wykonuje operacje dodawania dwóch (lub więcej) liczb dwójkowych.

Rozróżnia się dwa główne rodzaje sumatorów:

Teoria

Tabela prawdy dla sumatora 1-bitowego:

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:

Wyrażenia boolowskie opisujące sumę i przeniesienie:

s_i = c_{i-1} \oplus a_i \oplus b_i
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

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 n \cdot \textrm{czas\ generacji\ przeniesienia\ c}, gdzie n 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 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:

  1. bloków wyznaczających sumę si oraz grupy generacyjne gi i propagacyjne pi (które są liczone niezależnie!)
  2. 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