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ń