Układy logiczne
7. Układy arytmetyczne
7.1. Sumatory
Zaczniemy omawianie sumatorów od półsumatora, układu, który dodaje 2 bity bez uwzględnienia przeniesienia z poprzedniej pozycji.
Układ dodający 2 bity powinien mieć 2 wyjścia: wyjście sumy i wyjście przeniesienia
. Łatwo zauważyć, że układ półsumatora opisują 2 funkcje boolowskie
oraz
, gdzie
jest sumą a
przeniesieniem. Układ realizujący półsumator pokazany jest na rys. 20.
Rys 1. Układ realizujący półsumator (bit sumy),
(bit przeniesienia)
Sumator jednobitowy pełny to układ kombinacyjny dodający 2 bity z uwzględnieniem przeniesień. Sumator jednobitowy pełny ma 3 wejścia (,
- bity sumowane oraz
przeniesienie z poprzedniej pozycji) oraz 2 wyjścia: wyjście sumy
i wyjście przeniesienia na następną pozycję
. Łatwo zauważyć, że układ sumatora opisują 2 funkcje boolowskie
gdzie jest sumą,
przeniesieniem na pozycję
a
przeniesieniem. na pozycję
. Układ realizujący sumator jednobitowy pełny pokazany jest na rys 2. Jeśli czas opóźnienia bramki oznaczymy przez
to czas po którym uzyskujemy w tym układzie poprawny bit sumy to
. Poprawny bit przeniesienia uzyskujemy po czasie
.
Rys. 2. Układ realizujący jednobitowy sumator pełny
Sumator równoległy jest układem kombinacyjnym o strukturze pokazanej na rys. 3. Dodajemy 2 liczby i
w zapisie NKB (o stałej długości
słowa kodowego). Liczby dodawane
i
reprezentowane są słowami binarnymi
Suma reprezentowana jest słowem
. Współpracujące ze sobą sumatory pełne realizują na kolejnych pozycjach słowa dodawanie
(z uwzględnieniem przeniesień) a więc
oraz
. Warto zauważyć, że słowo wyniku sumowania
(odczytywane w
bitowym w kodzie NKB) jest równe liczbie
wtedy i tylko wtedy gdy
. Jeśli
to mówimy, że wystąpił nadmiar przy dodawaniu w kodzie NKB. W typowych mikroprocesorach pojawienie się
jest zapamiętywane, powoduje ustawienie przerzutnika znacznika przeniesienia CF (ang. carry flag) na 1. Oczywiście słowo
bitowe
zawsze reprezentuje poprawnie w kodzie NKB (
bitowym) liczbę
.
Rys. 3. Sumator równoległy zbudowany z jednobitowych sumatorów pełnych
Ogólnie rzecz biorąc w systemach cyfrowych słowa binarne możemy przetwarzać równolegle (tak jest szybciej) lub szeregowo czyli bit po bicie (tak jest oszczędniej tzn. mniejsza ilość 2
bramek jest potrzebna do realizacji układu).
Sumator szeregowy jest typowym układem z szeregowym przetwarzaniem informacji. Schemat układu pokazany jest na rys. 4. Układ dodaje szeregowo dwa słowa binarne i
bit po bicie od strony najmniej znaczących bitów tzn. w pierwszym takcie zegara podajemy na wejścia sumatora bity
i
w drugim
i
itd. Dodawanie trwa więc
taktów zegara.
Rys. 4. Sumator szeregowy
Układ sumatora równoległego o strukturze pokazanej na Rys. 3. sumuje 2 liczby w czasie , gdzie
jest czasem opóźnienia bramki. Stosując układ przewidywania przeniesień (ang. look ahead) możemy znacznie przyśpieszyć działanie układu sumatora równoległego. Żeby opisać działanie układu przewidywania przeniesień wprowadzamy dla każdej i-tej pozycji 3 pomocnicze funkcje (określające stan pozycji) zdefiniowane następująco
-
wtedy i tylko wtedy gdy pozycja
jest w stanie propagacji
-
wtedy i tylko wtedy gdy pozycja
jest w stanie generacji
-
wtedy i tylko wtedy gdy pozycja
jest w stanie generacji 0
Zauważmy, że
Zatem gdybyśmy dysponowali bramkami o odpowiedniej ilości wejść, można by obliczyć każde przeniesienie w czasie . Układ sumatora wykorzystujący układ przewidywania przeniesień jest więc potencjalnie znacznie szybszy od zwykłego układu sumatora równoległego. Układ sumatora z przewidywaniem przeniesień pokazany jest na Rys.5.
Rys. 5. Sumator równoległy z układem przewidywania przeniesień