Sumator (układ logiczny)

Z testwiki
Przejdź do nawigacji Przejdź do wyszukiwania
1-bitowy pełny sumator uzyskany za pomocą dwóch półpełnych sumatorów.
półpełny sumator.
Pełny sumator 1-bitowy.

Sumatorcyfrowy układ kombinacyjny, który wykonuje operacje dodawania dwóch (lub więcej) liczb dwójkowych. Sumatory można podzielić na:

  1. szeregowe (ang. serial adder): podczas każdej operacji dodają one dwa bity składników oraz bit przeniesienia;
  2. 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:
    1. Sumator pełny (ang. full adder)
    2. Sumator półpełny (ang. half adder).

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:

  1. z przeniesieniami szeregowymi (ang. ripple-carry adder),
  2. 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
ai bi ci si
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0
Wejścia Wyjścia
ai bi ci1 ci si
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:

  • ai – pierwszy składnik sumy,
  • bi – drugi składnik sumy,
  • ci1 – przeniesienie z poprzedniej pozycji,
  • si – suma,
  • ci – przeniesienie.

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

si=ci1aibi,
ci=aibi+ci1(aibi).

Wprowadza się jeszcze oznaczenia:

gi=aibi – grupa generacyjna,
pi=aibi – grupa propagacyjna.

Można wówczas zapisać przeniesienie:

ci=gi+ci1pi.

Sumator z przeniesieniami szeregowymi

Sumator ten zbudowany jest z bloków funkcjonalnych, które realizują funkcje si i ci. Bloki są połączone kaskadowo (ang. ripple), tzn. wyjście ci jest łączone z wejściem ci+1 bloku następnego.

Aby na przykład otrzymać bit sumy s4, uprzednio muszą zostać wyznaczone sygnały przeniesień c1, c2 oraz c3, ponieważ c3 zależy od c2, a ten zależy od c1. Czas otrzymania ostatecznego wyniku jest więc ograniczony od dołu przez n × 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 z przeniesieniami równoległymi bity przeniesień są wyznaczane równolegle. Wyrażenia opisujące cirekursywnie rozwijane, tzn. występujący w nich składnik ci1 jest zastępowany stosownym wyrażeniem, np.:

c0=const,
c1=g1+c11p1=g1+c0p1,
c2=g2+c21p2=g2+c1p2=g2+(g1+c0p1)p2.

Układ buduje się z dwóch głównych części:

  1. bloków wyznaczających sumę si oraz grup generacyjnych gi i propagacyjnych 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 i obwodów elektrycznych bloku nr 2).

Sumator z przeniesieniami równoległymi jest ok. 20–40% szybszy niż sumator z przeniesieniami szeregowymi.

Zobacz też

Szablon:Kontrola autorytatywna