Elementy arytmetyczne - ztmapc.el.pcz.pl

advertisement
POLITECHNIKA CZĘSTOCHOWSKA
WYDZIAŁ ELEKTRYCZNY
INSTYTUT ELEKTRONIKI I SYSTEMÓW STEROWANIA
Instrukcja do ćwiczeń laboratoryjnych
TEMAT: Elementy arytmetyczne
Częstochowa 2012
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
1. Cel ćwiczenia:
Celem ćwiczenia jest zapoznanie się z budową i działaniem sumatorów, subtraktorów
i komparatorów cyfrowych.
2. Wprowadzenie:
2.1. Dodawanie i odejmowanie całkowitych liczb binarnych:
Całkowitą liczbę n-cyfrową przedstawia się jako:
(1)
Co odpowiada jej wartości:
A = a n-1 p n-1 + a n-2 p n-2 + … + a 1 p 1 + a 0 p 0
(2)
Gdzie p oznacza podstawę systemu liczbowego.
Uzupełnieniem do podstawy p liczby A nazywa się liczbę:
A (p) = pn – A
(3)
Uzupełnieniem do p-1 liczby A nazywa się liczbę:
A (p-1) = pn -1 –A
(4)
Podstawą dwójkowego systemu liczbowego jest liczba 2 (p=2).
Przykłady:
A2 = 101 = 1.22 + 0.21 + 1.20 = 5
A2(p) = 23 -5 = 3 = 011
A2(p-1) = 23 -1 -5 = 2 = 010
A10(p) = 101 -5 = 5
A10(p-1) = 101 -1 -5 = 4
Jeżeli przy zapisie liczby binarnej uwzględnia się znak to zapisujemy go w postaci bitu przed
kropką poprzedzającą MSB. Liczbie dodatniej odpowiada bit znaku (z) równy 0, dla liczby
ujemnej z = 1.
Liczby binarne przedstawia się w zapisach:
- znak-moduł (z,)
- uzupełnień do 1 (p-1)
- uzupełnień do 2 (p).
Liczba dodatnia ma w tych zapisach taką samą postać, liczba ujemna w każdym zapisie jest
odmienna.
2
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
Przykłady:
6 = 0.1102 we wszystkich podanych zapisach ma jednakową postać.
-6 = 1.1102(zm) = 1.0012(p-1) = 1.0102(p)
Dalej dla zapisów uzupełnień liczb będą używane także oznaczenia z gwiazdką np.: 1* uzupełnienie liczby binarnej do 1.
2.1.1. Zapis znak-moduł.
W zapisie zm liczby o równych wartościach bezwzględnych różnią się wyłącznie
bitem znaku. Liczba 0 ma tutaj podwójną postać:
+0 = 0.02(zm)
-0 = 1.02(zm).
W operacjach arytmetycznych nie biorą udziału bity znaków składników. Przy jednakowych
znakach składników sumowane są moduły a znak wyniku przyjmuje znak składników.
Przykłady:
Przy różnych znakach składników do modułu dodanej dodaje się uzupełnienie do 1 dodajnika
i jeżeli wystąpi przeniesienie cykliczne dodaje się je do ostatniego wyniku, jeżeli
przeniesienie cykliczne nie wystąpi należy wyznaczyć uzupełnienie do 1 otrzymanego
wyniku. Znak wyniku przyjmuje wartość równą znakowi składnika o większym module.
Przykłady:
3
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
2.1.2. Zapis uzupełnień do 1.
W zapisie uzupełnień do 1 każdą liczbę ujemną przedstawia się jako 1 a operację
dodawania przeprowadza się wraz z bitem znaku. Jeżeli występuje przeniesienie cykliczne to
dodajemy go do ostatniego wyniku. Przy ujemnym wyniku końcowym rezultatem jest 1*
modułu otrzymanego wyniku z zachowaniem bitu znaku.
W zapisie uzupełnień do 1 istnieją dwie interpretacje liczby 0:
+0 = 0.02(p-1)
-0 = 1.12(p-1)
Przykłady:
Z ostatniego przykładu wynika, że ujemne zero występuje w tym zapisie tylko przejściowo a
przy końcowej operacji tworzenia 1* należy także zmienić wartość bitu znaku z na 0, co jest
odstępstwem od reguł podanych na początku niniejszego podpunktu.
2.1.3. Zapis uzupełnień do 2.
Jest to w przypadku liczb binarnych zapis uzupełnienia do podstawy. W układach
sumatorów pracujących w zapisie uzupełnień do 2 wykorzystuje się równoważność 2* i sumy
1* tej liczby plus 1.
A2(p) = A2(p-1) + 1
(5)
Działania arytmetyczne przeprowadza się w tym zapisie wraz z bitem znaku, przeniesienie
cykliczne pomija się. Liczby ujemne przedstawia się jako 2*. Przy ujemnym wyniku
końcowym rezultatem jest 2* modułu otrzymanego wyniku z zachowaniem bitu znaku. W
zapisie uzupełnień do 2 liczba 0 przedstawiona jest jako 0.02(p).
4
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
Przykłady:
2.2. Działania dodawania i odejmowania arytmetycznego całkowitych liczb dziesiętnych
kodowanych dwójkowo:
Ograniczono się tutaj do rozważenia problemu dodawania i odejmowania liczb
dziesiętnych BCD przedstawionych w naturalnym kodzie o wagach 8421.
Zasadniczo działania dodawania i odejmowania liczb BCD 8421 przeprowadza się
w zapisach:
- znak-moduł
- uzupełnień do 9 (p-1)
- uzupełnień do 10 (p)
Istnieje również zapis wynikający z 4 bitowego przedstawienia cyfry BCD i nosi on nazwę
- uzupełnień do 15.
Dla otrzymania prawidłowego wyniku dodawania dwu liczb BCD stosuje się poprawkę w
każdej dekadzie, której wartość przekroczy 9. Poprawka ta polega na dodaniu cyfry 6 do
danej dekady z jednoczesnym przeniesieniem przepełnienia do następnej dekady.
Przykłady:
5
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
Odejmowanie liczb BCD 8421 zastępuje się dodawaniem uzupełnienia do (p) lub (p-1)
odjemnika. W tym przypadku jest to 10* lub 9*. Dla liczb BCD, odmiennie niż w przypadku
liczb BIN, bit znaku z równy 1 określa liczbę dodatnią a gdy z = 0 liczbę – ujemną.
Operacje odejmowania przeprowadza się podobnie jak dla liczb binarnych (por.
punkt 2.1).
Dla lepszego zrozumienia reguł rządzących operacjami dodawania i odejmowania
liczb BCD 8421, przykłady w większości przypadków przedstawiono dla liczb jedno i
dwucyfrowych.
2.2.1. Zapis znak – moduł.
Zapis zm liczb BCD 8421 odpowiada zapisowi zm liczb BIN (patrz p. 2.1.1).
Zmiana dotyczy zastąpienia uzupełnienia do 1 (BIN) uzupełnieniem do 9 (BCD).
Przykłady:
Wykonanie działania -5 -6 = -11 jest analogiczne, jedynie wynik przyjmuje znak „ – ” (bit
znaku sumy zS przyjmuje wartość 0).
Wykonanie działania -9 + 3 = -6 jest analogiczne, zS = 0.
6
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
2.2.2. Zapis uzupełnień do 9.
Zapis uzupełnień do 9 odpowiada zapisowi uzupełnień do 1 – patrz p. 2.1.2. Różnica
w stosunku do zapisu 1* polega na dodawaniu przeniesienia cyklicznego z sumowania dekad
a nie po zsumowaniu dekad i bitów znaku.
Przykłady:
2.2.3. Zapis uzupełnień do 10.
Zapis uzupełnień do 10 odpowiada zapisowi uzupełnień do 2 – patrz p. 2.1.3.
Uzupełnienie 10* liczby BCD tworzy się na podstawie wzoru (5):
A10(p) = A10(p-1) + 1
Przykłady:
A10 = 9
A10 = 12
A10(p) = 0 + 1 = 1
A10(p) = 87+1 = 88
7
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
A10 = 100
A10 = 0
A10(p) = 899+1 = 900
A10(p) = 9+1 = (1 ←) 0 przeniesienie pomija się
Powyższa interpretacja matematyczna liczby 0 jest zgodna z jej przedstawieniem jako
1.0000 w zapisie 10.
Dla liczb poprzedzonych zerami zapis wygląda następująco:
Przykłady:
2.2.4. Zapis uzupełnień do 15.
Zapis uzupełnień do 15 nosi również nazwę zapisu uzupełnień do 1 dla liczb BCD,
ponieważ 15 otrzymuje się przez zanegowanie wszystkich bitów liczby ujemnej. Nazwa
8
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
uzupełnienia do 15 wynika z czterobitowego przedstawienia liczby dziesiętnej, dla którego
maksymalna wartość wynosi 1111 = 15.
Przykłady:
A = 9 = 1001
A = 73 = 0111 0011
A = 05 = 0000 0101
ABCD(15*) = 0110 = 616 = 15 - 9
ABCD(15*) = 1000 1100 = 8C16 = (15-7)(15-3)
ABCD(15*) = 1111 1010 = FA16 = (15-0)(15-5)
Ze względu na duża komplikację algorytmu układu dodająco – odejmującego dla zapisu 15
rozpatrzony zostanie tylko przypadek układu odejmującego, wykonującego działanie
S = A – B. Operacja odejmowania jest w tym zapisie sprowadzona do dwustopniowego
dodawania. Pierwsza suma powstaje w wyniku dodania kolejnych bitów liczby, będącej
odjemną oraz uzupełnienia do 15 odjemnika z uwzględnieniem przeniesień i przeniesienia
cyklicznego. Jest to sumowanie analogiczne jak w zapisie uzupełnień do 1 liczb BIN, z tym,
że wynik podzielony jest na tetrady. Bit przeniesienia cyklicznego określa znak końcowego
wyniku i składnik drugiej sumy, którym jest pierwsza suma gdy zS = 1 (lub negacja jej bitów
gdy zS = 0). Druga suma zawiera również składnik korekcji dla tetrad, których wartość
przekroczyła liczbę 9.
Korekcja ta przyjmuje wartość +10 = 1010, co odpowiada uzupełnieniu do 2 liczby
Przeniesienia w sumowaniu korekcyjnym pomija się.
Przykłady:
Z ostatniego przykładu wynika, że liczba 0 w zapisie uzupełnień do 15 przyjmuje znak „ – ”.
9
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
2.3. Sumator:
Sumator jest układem wykonującym dodawanie dwu liczb. W przypadku
sumowania liczb binarnych podstawowy element sumatora liczb wielobitowych spełnia
funkcje logiczne zgodnie z tablicą 1, gdzie:
Ci-1 – przeniesienie z niższej pozycji,
Ai – bit dodajnej,
Bi – bit dodajnika,
Si – bit sumy,
Ci – przeniesienie do wyższej pozycji
Tablica 1. Tablica stanów sumatora
Ci - 1
Ai
Bi
Si
Ci
0
0
0
0
0
0
0
1
1
0
0
1
0
1
0
0
1
1
0
1
1
0
0
1
0
1
0
1
0
1
1
1
0
0
1
1
1
1
1
1
Rys. 1. Sumator 1-bitowy a) siatki Karnaugha , b) symbol , c) schemat
10
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
Na rys. 1a przedstawiono siatki Karnaugha dla sumy Si i przeniesienia Ci wg których
otrzymujemy funkcje:
Zależność (6) spełnia układ kombinacyjny z rys. 1c, przy czym możliwe są również inne
praktyczne realizacje sumatora, wynikające z różnorodnych przekształceń wzorów (6).
Uproszczoną postacią sumatora jest półsumator, który nie posiada wejścia Ci-1.
Podstawiając we wzorach (6) Ci-1 = 0 otrzymujemy:
Zależność (7) spełnia układ z rys. 2a.
Rys. 2. Półsumator a) schemat , b) realizacja sumatora z 2 półsumatorów
Sumatory wielobitowe można podzielić na:
- dwójkowe (sumowanie liczb binarnych),
- dziesiętne (sumowanie liczb dziesiętnych kodowanych dwójkowo).
Działanie sumatora może odbywać się szeregowo – rys. 3 (sumowane są kolejne bity dodajnej
i dodajnika) lub równolegle – rys. 3 (wszystkie bity sumowane są jednocześnie).
11
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
Rys. 3. Sumator szeregowy
Rys. 4. Sumator równoległy z przeniesieniami szeregowymi
Z układu sumatora szeregowego można wyeliminować rejestr sumy przez szeregowe
adresowanie rejestru jednego ze składników kolejnymi, częściowymi wynikami dodawania.
12
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
W wielobitowych sumatorach równoległych przeniesienia mogą być dokonywane
szeregowo lub równolegle. W tym ostatnim przypadku znacznie wzrasta szybkość działania
sumatora.
Sumator akumulujący jest układem, który zamiast dodajnika wprowadza do
sumatora wynik poprzedniego dodawania (rys. 5). Dodatkowy element sumatora
akumulującego, spełniający funkcję pamięci (np. rejestr, zespół przerzutników) nosi nazwę
akumulatora.
Rys. 5. Sumator akumulujący a) szeregowy , b) równoległy
2.4. Subtraktor:
Odejmowanie dwu liczb binarnych realizuje układ zwany subtraktorem.
Tablica 2. Tablica stanów subtraktora
Vi - 1
Ai
Bi
Di
Vi
0
0
0
0
0
0
0
1
1
1
0
1
0
1
0
0
1
1
0
0
1
0
0
1
1
1
0
1
0
1
1
1
0
0
0
1
1
1
1
1
W tablicy 2 oznaczono:
Vi-1 – pożyczka dla niższej pozycji,
Ai – bit odjemnej,
Bi – bit odjemnika,
Di – bit różnicy,
Vi – pożyczka z wyższej pozycji.
13
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
Rys. 6. Subtraktor 1-bitowy a)siatki Karnaugha , b) symbol
Na podstawie siatek Karnaugha z rys. 6 można napisać:
(6.8b)
Vi  AiBi  Ai Vi 1  Bi Vi 1
Porównując wzory (8) i (7) można stwierdzić, że dla Vi-1 = Ci-1 wyrażenie dla różnicy i sumy
są równoważne, tj. Di = Si ; w wyrażeniach dla pożyczki i przeniesienia różnica tkwi w
negacji argumentu Ai.
Subtraktor można więc nazwać pewnym przypadkiem sumatora ze zmianą Ai na jej
negację w funkcji pożyczki.
Jeżeli we wzorach (8) przyjmiemy Vi-1 = 0 to otrzymamy wyrażenie opisujące
półsubtraktor.
Układy wielobitowych subtraktorów budowane są analogicznie jak odpowiednie
sumatory – por. rys. 3 i 4. Praktycznie do budowy wielobitowych układów odejmujących
wykorzystuje się scalone sumatory uzupełnione dodatkowymi układami wejściowymi,
wyjściowymi i generującymi znak wyniku.
Analizując kolejne kroki podczas operacji dodawania i odejmowania liczb binarnych
(patrz p. 2.1) można narysować schematy funkcjonalne układów realizujących działania
S = ±A±B dla poszczególnych zapisów – rys. 7. Linią przerywaną zaznaczono bloki nie
występujące w układach uproszczonych, wykonujących działanie S = A±B. Z porównania
rysunków 7a, b i c widać, że największe komplikacje w budowie posiada układ dodająco –
odejmujący dla zapisu znak – moduł, dlatego też jest on bardzo rzadko realizowany.
14
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
Rys. 7. Schematy funkcjonalne sumatorów – subtraktorów liczb BIN a) dla zapisu znak –
moduł , b) dla zapisu uzupełnień do 1 , c) dla zapisu uzupełnień do 2
15
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
2.5. Sumator dziesiętny kodowany dwójkowo:
W przypadku dodawania i odejmowania liczb binarnych mamy zazwyczaj kłopoty z
szybką interpretacją wyniku, tzn. przetworzeniem go na powszechnie używany dziesiętny
system liczbowy. Rozwiązaniem tego zagadnienia jest albo budowa konwertera BIN → BCD
dla wyniku, albo bezpośrednie działania arytmetyczne na liczbach dziesiętnych kodowanych
dwójkowo.
W układach arytmetycznych stosuje się najczęściej następujące kody BCD:
- naturalny kod dziesiętny o wagach 8421,
- kod z nadmiarem 3 (”+3”),
- kod Aikena o wagach 2421
Ograniczmy się tutaj do najpopularniejszego kodu BCD 8421. Dodając do siebie
dwie liczby BCD i uwzględniając przeniesienie z poprzedniej dekady Cm-1 = 1 możemy co
najwyżej otrzymać liczbę 9+9+1 = 19. Sumator BCD będzie się więc różnił od sumatora liczb
binarnych wprowadzonym dodatkowo układem kombinacyjnym dla przeniesienia do
następnej dekady Cm oraz arytmetycznym układem korekcji (sterowanym z układu
przeniesienia) dodającym odpowiednią poprawkę, gdy wynik dla danej dekady przekroczy 9.
Z powyższego wynika schemat funkcjonalny sumatora BCD, przedstawiony na rys. 8.
Wszystkie możliwe wyniki występujące przy sumowaniu dwu liczb BCD i przeniesienia CM-1
ilustruje tablica 3.
Tablica 3
Suma
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
C’m
S’m3
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
BIN
S’m2
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
S’m1
S’m0
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Cm
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
1
1
BCD 8421
Sm3
Sm2
Sm1
0
0
0
00
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
0
0
0
0
0
0
0
0
1
0
0
1
0
1
0
0
1
0
0
1
1
0
1
1
1
0
0
1
0
0
Uwagi
Sm0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
Nie
wymaga
korekcji
Wymaga
korekcji
+6
16
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
Rys. 8. Schemat funkcjonalny jednodekadowego sumatora dziesiętnego.
Z tablicy tej wynika, że dla wyniku większego niż 9 przeniesienie Cm sumatora BCD powinno
przyjąć wartość 1, a wtedy do wyniku Sm należy dodać poprawkę +
Rys. 9. Jednodekadowy sumator BCD 8421 , a) siatka Karnaugha , b) schemat sumatora
zbudowanego z 2 sumatorów 4 – bitowych
Na podstawie siatki Karnaugha z rys. 9a można napisać funkcję jaką musi spełniać
przeniesienie Cm
Cm = C’m + S’m3 S’m2 + S’m3 S’m1
(10)
17
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
Schemat dekady sumatora BCD 8421 zbudowany w oparciu o sumatory 4-bitowe przedstawia
rys. 9b.
Wielodekadowy sumator BCD buduje się łącząc odpowiednio ze sobą
jednodekadowe sumatory BCD np. w sumator równoległy z przeniesieniami szeregowymi
(por. rys. 4) lub przyłączając do dekady sumatora BCD zespół rejestrów 4-bitowych (por. rys.
3). W tym drugim przypadku otrzymany sumator szeregowo – równoległy ze względu na
równoległe sumowanie liczb w każdej dekadzie i szeregowe podawanie przeniesienia.
Budowa dziesiętnego sumatora akumulującego jest analogiczna jak w przypadku
równoległego sumatora akumulującego przedstawionego na rys. 5b.
2.6. Subtraktor dziesiętny kodowany dwójkowo:
Istnieje możliwość zbudowania jednodekadowego subtraktora BCD, realizującego
odejmowanie bezpośrednie, jednak ze względu na jego skomplikowaną budowę nie stosuje
się praktycznie tego typu układów. Operacja odejmowania, podobnie jak dla liczb BIN,
sprowadzana jest do dodawania odjemnej i odpowiedniego uzupełnienia odjemnika, przy
zachowaniu reguł dotyczących przeniesienia opisanych w p.2.2 (rys. 10). W praktyce do
budowy wielodekadowych układów odejmujących wykorzystuje się scalone sumatory binarne
oraz kombinacyjne lub arytmetyczne bloki uzupełnień i generowania znaku
wyniku.
18
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
Rys. 10. Schematy funkcjonalne sumatorów – subtraktorów dziesiętnych BCD: a) dla zapisu
znak – moduł, b) dla zapisu uzupełnień do 9, c) dla zapisu uzupełnień do 10, d) dla zapisu
uzupełnień do 15
2.7. Komparator:
Komparator jest układem porównującym wartości dwu lub więcej liczb binarnych.
Komparator uniwersalny posiada wyjścia odpowiadające relacjom:
A < B, A = B, A > B. Komparator uproszczony daje nam zwykle informację wyjściową w
postaci: A = B, A ≠ B. Ze względu na sposób działania komparatory można podzielić na
równoległe i szeregowe, przy czym komparacji liczb można dokonywać poczynając od MSB
lub LSB. Komparatory równoległe mogą być budowane w postaci układów kombinacyjnych i
wtedy ich wyjścia realizują wielowymiarową funkcję logiczną wynikającą z metod
minimalizacji, bądź w postaci układów iteracyjnych, będących złożeniami komparatorów 1bitowych z elementami blokady następnych stopni i elementami wyjściowymi. Schematy
funkcjonalne komparatorów szeregowych i równoległych przedstawiają rys. 11 i 12.
Komparatory mogą być również budowane w oparciu o elementy arytmetyczne. Przykład
takiego komparatora, działającego na zasadzie badania wyniku odejmowania, przedstawia
rys. 13.
Najprostszym rodzajem komparatora jest komparator 1-bitowy, nie uwzględniający
przeniesień komparacji z wyższej pozycji. Taki komparator stanowi w powiązaniu z dwoma
przerzutnikami komparator szeregowy por. rys. 11 i rys. 14b. Funkcje komparatora 1bitowego przedstawia tablica 4.
19
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
Tablica 4. Tablica stanów komparatora jednobitowego
Na podstawie siatek Karnaugha (rys. 14a)
Przekształcając wzór 11b) otrzymujemy zależność:
Realizację komparatora według wzorów (11) przedstawia rys. 14b. Podstawowym elementem
wielobitowego komparatora iteracyjnego (patrz rys. 12b) jest komparator iteracyjny 1-bitowy.
Posiada on jedynie wejścia i wyjścia dla relacji większości i mniejszości a relacja równości
generowana jest w dodatkowym członie wyjściowym na podstawie (11d). Komparator
iteracyjny 1-bitowy spełnia funkcje logiczne zgodnie z tablicą 5.
20
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
Rys.11. Komparator szeregowy
a) porównujący liczby od MSB, b) porównujący liczby od LSB
Tablica 5. Tablica stanów jednobitowego komparatora iteracyjnego
21
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
Rys. 12. Komparator równoległy: a) kombinacyjny , b) iteracyjny
Rys. 13. Układ odejmujący jako komparator
Według siatek Karnaugha z rys . 15 a otrzymujemy zależności:
22
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
Schemat 1-bitowego komparatora iteracyjnego przedstawia rys. 15b. Zasadę konstruowania
komparatorów kombinacyjnych (patrz rys. 12a) przedstawiono na przykładzie komparatora 2bitowego. Komparator taki spełnia funkcje logiczne opisane w tablicy
Rys. 14. Komparator 1-bitowy: a) siatki Karnaugha, b) schemat
Rys. 15. Komparator iteracyjny 1-bitowy: a) siatki Karnaugha, b) schemat
Schemat 1-bitowego komparatora iteracyjnego przedstawia rys 15 b. rysunek 16 przedstawia
schemat montażowy 4 bitowego komparatora iteracyjnego.
23
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
Rys. 16. Schemat 4-bitowego komparatora iteracyjnego.
Zasadę konstruowania komparatorów kombinacyjnych ( patrz rys. 12 a) przedstawiono na
przykładzie komparatora 2-bitowego. Komparator taki spełnia funkcje logiczne opisane w
tablicy 6.
Tablica 6. Tablica stanów kombinacyjnego komparatora 2-bitowego
24
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
Rys. 17. Komparator kombinacyjny 2-bitowy: a) siatki Karnaugha, b)schemat
Na podstawie niepełnej minimalizacji siatek Karnaugha z rys. 17a otrzymujemy po
przekształceniach:
Powyższe zależności spełnia układ z rys. 17b.
W klasie TTL produkowany jest uniwersalny komparator kombinacyjny 4-bitowy (układ
7485), który praktycznie służy do budowy komparatorów wielobitowych.
3. Pytania sprawdzające:
1. Przedstawić liczby 3, 9, 10, 22, 39 oraz ich wszystkie uzupełnienia w zapisach BIN i
BCD 8421.
2. Przeprowadzić we wszystkich zapisach BIN i BCD 8421 następujące działania
arytmetyczne: 3+5, 7+11, 6-9, 9-6, 10-12, -7 -5.
3. Zbudować półsumator: a) z bramek NAND, b) z bramek NOR.
4. Dokonać klasyfikacji sumatorów i omówić działania poszczególnych grup.
5. W jaki sposób może być dokonywana operacja odejmowania liczb BIN oraz BCD
8421?
6. Dokonać syntezy subtraktora BCD wykonującego bezpośrednie odejmowanie liczb
BCD 8421, przedstawić jego realizację.
7. Dokonać syntezy kombinacyjnych oraz arytmetycznych układów wytwarzania
uzupełnień do 9 i do 10 dla jednodekadowej liczby BCD 8421 oraz przedstawić ich
realizację.
25
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
8. Jak można sklasyfikować komparatory pod względem szybkości działania?
9. Dokonać syntezy komparatora kombinacyjnego 3-bitowego, przedstawić jego
realizację.
4. Opis układu pomiarowego
Wybór badanego układu dokonuje się przełącznikiem klawiszowym PK1, który
uaktywnia odpowiednie wskaźniki stanów logicznych.
4.1. Sumator – subtraktor szeregowy (SSz), szeregowy sumator akumulacyjny (AkSSz):
Sumator i subtraktor szeregowy został zbudowany na podstawie schematu
blokowego z rys. 3. Jako rejestry R1, R2 składników zastosowano uniwersalne rejestry 4bitowe (które wykorzystuje się także do badania komparatora szeregowego). Przełączenie
zestyków przycisku PKS (WPISYWANIE) powoduje przeniesienie stanów wejść
równoległych rejestrów R1, R2 na wyjścia. Operacja dodawania lub odejmowania odbywa się
krokami (wyznaczonymi impulsami taktującymi) i rozpoczyna się od bitów o najniższych
wagach – przełącznik PK4 powinien znajdować się w pozycji PRZESUWANIE W PRAWO.
Rejestr sumy R3 jest w tym przypadku rejestrem 8-bitowym, co umożliwia wielokrotne
sumowanie liczb 4-bitowych w układzie szeregowego sumatora akumulującego. Przerzutnik
P1 typu D daje opóźnienie o 1 takt przeniesienia Ci lub pożyczki Vi.
Szeregowy sumator akumulujący uzyskuje się łącząc ostatnie wyjście Q7 rejestru
sumy R3 z wejściem Bi sumatora 1-bitowego – patrz rys. 5a.
Kolejność operacji dla dokonania działania arytmetycznego w układzie SSz jest
następująca: zerowanie, wpisanie składników do rejestrów, taktowanie. Dla układu AkSSz
zerowanie poprzedza szereg kolejnych cykli wpisywania i taktowania. W przypadku SSz
wynik uzyskuje się po 5 impulsach taktujących, dla AkSSz po 8 impulsach.
4.2. Sumator – subtraktor równoległy (SR):
Równoległy układ sumatora – subtraktora realizujący działanie S=±A±B
przedstawia rys. 21. Układ liczy w zapisie uzupełnień do 1 a w jego skład wchodzą wejściowe
i wyjściowy układ liczba / uzupełnienie do 1 oraz sumator. Jako elementy dające na wyjściu
liczbę lub jej uzupełnienie do 1 zastosowano bramki XIR sterowane bitem znaku danej liczby.
Do bezbłędnego przeprowadzenia operacji dodawania i odejmowania dwóch liczb 4-bitowych
niezbędne jest zarezerwowanie piątego bitu sumatora dla przeniesienia C4 i szóstego bitu dla
operacji na znakach. W tym przypadku do realizacji układu użyto dwa sumatory 4-bitowe
połączone szeregowo. Na bity 3 i 4 sumatora S2 wprowadzono stany 0 i 1 tak, aby
prawidłowo działało przeniesienie cykliczne z C4 sumatora S2 na C0 sumatora S1. Tak więc
pięć pierwszych bitów sumowania stanowi liczbę lub jej uzupełnienie do 1 a bit szósty jest
bitem znaku zS. Bit znaku steruje wyjściowym układem liczba / uzupełnienie do 1, skąd
otrzymuje się poprawną postać wyniku.
4.3. Sumator – subtraktor dziesiętny (SD):
Jednodekadowy, równoległy sumator – subtraktor dziesiętny przedstawiony na rys.
22 jest układem liczącym w kodzie BCD 8421 w zapisie uzupełnienia odjemnika do 9.
Sumator BCD zbudowany jest na podstawie rys. 9b (sumatory S4, S5 oraz układ
kombinacyjny dla przeniesienia). Sumator S3 wraz z bramkami XOR tworzy układ liczba /
26
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
uzupełnienie do 9 sterowany bitem znaku liczby B. W przypadku wykonywania przez układ
sumatora działania S = A + B na wejście C-1 należy podać 0 lub 1. Dla układu subtraktora (S
= A – B) przeniesienie C0 powinno być połączone z wejściem C-1 przy czym wynik S jest
poprawny dla S > 0 (C0 = 1) oraz jest uzupełnieniem do 9 dla s < 0 (C0 = 0). Sumator ten nie
zawiera bowiem wyjściowego układu liczba / uzupełnienie do 9.
4.4. Komparator szeregowy (KSz):
Komparator szeregowy zbudowano z przerzutników P2, P3 typu JK. Dla
uproszczenia układu wykorzystano tutaj funkcję iloczynu realizowanego na wejściach J
elementu 7472 (por. rys. 11a).
KSz współpracuje z rejestrami R1, R2 oraz układami taktowania i zerowania
wspólnymi dla SSz – patrz rys. 20. Komparator porównuje liczby od bitów o najwyższych
wagach (MSB) – przełącznik PK4 ustawiony w pozycji PRZESUWANIE W LEWO. Kolejne
operacje przy porównywaniu dwu liczb 4-bitowych to zerowanie i taktowanie (max. 4
impulsy taktujące). KSz zmienia odpowiednio stan wyjść gdy będzie spełniony którykolwiek
iloczyn J1 J2 J3 = 1, czyli gdy Ai ≠ Bi i dzięki sprzężeniom międzyprzerzutnikami stan ten
będzie stabilny.
4.5. Komparator równoległy (KR):
Komparator równoległy jest 4-bitowym komparatorem iteracyjnym. Komparator ten
zbudowano odmiennie do opisanego w p. 2.7 modelu komparatora iteracyjnego. Podstawowa
komórka KR dokonuje porównań Ai > Bi, Ai < Bi, a jednobitowe przeniesienie do następnego
stopnia określa relację Ai = Bi. Członem wyjściowym są w tym przypadku bramki NAND.
Jeżeli na którymkolwiek stopniu komparatora iteracyjnego, poczynając od stopnia dla MSB,
wystąpi nierówność bitów Ai ≠ Bi to wygenerowanie przeniesienia spowoduje blokadę
wszystkich następnych stopni; jednocześnie sygnałem 0 sterowana jest jedna z bramek
wyjściowych NAND określająca relację większości.
5. Program ćwiczenia:
5.1. Badanie sumatora i subtraktora 1-bitowego:
Połączyć układ pomiarowy sumatora – subtraktora 1-bitowego. Wcisnąć klawisz
SSz przełącznika wyboru układu. Do rejestrów A i B wpisać z zadajnika liczby A = 1100, B =
1010.
Przeanalizować działanie układu (stany wyjść Si (Di), Ci (Vi)) podając na wejście Ci-1 (Vi-1)
stan 0 a następnie stan 1. Na wejścia Ai i Bi sumatora / subtraktora dostarczana jest kolejno (z
rejestrów – TAKT) pełna kombinacja dwu bitów.
27
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
Rys. 18. Schemat pomiarowy dla: subtraktora-subtraktora 1 –bitowego, sumatora-subtraktora
szeregowego i szeregowego sumatora akumulującego
5.2. Badanie sumatora - subtraktora szeregowego (SSz):
Na podstawie rys. 3 połączyć układ pomiarowy sumatora – subtraktora szeregowego
– patrz rys. 18. Sprawdzić działanie SSz wpisując do rejestrów A i B dowolne 4-bitowe liczby
BIN. Wynika odczytać w rejestrze sumy S po odpowiedniej liczbie (5 lub 8) impulsów
taktujących (TAKT). Z kolei ustalając odpowiednie położenie przełącznika
SUMATOR/SUBTRAKTOR przeprowadzić następujące działania arytmetyczne: A + 0 = A,
A+B=8, A-0=A, A-B=0, A-B=S>0, A-B=S<0, 0-B = -B.
Przed wykonaniem każdego działania sumator szeregowy należy wyzerować.
5.3. Badanie szeregowego sumatora akumulującego (AkSSz):
Na podstawie rys. 5a połączyć układ pomiarowy szeregowego sumatora
akumulującego – patrz rys. 18. Wpisując do rejestru A kolejne 4-bitowe składniki sumowania
oraz ustalając odpowiednie położenie przełącznika SUMATOR – SUBTRAKTOR
przeprowadzić następujące działania: A+A+A = 3A, A1+A2+A3=S A1-A2+A3=S>0,
(A1>|A2|), A1+A2+...+An=S<29.
Szeregowy sumator akumulujący należy zerować przed każdą operacją
wielokrotnego sumowania. W przypadku AkSSz wynik uzyskuje się po 8 impulsach
taktujących.
5.4. Badanie sumatora - subtraktora równoległego (SR):
Przy pomocy układu sumatora – subtraktora równoległego, przedstawionego na rys.
19, przeprowadzić na liczbach BIN 4-bitowych następujące działania arytmetyczne: A+0=A,
A+B = S, A-B=S > 0, -A+B=S<0, -A-B=S, A-B=0, 0-B = -B
28
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
Rys. 19. Schemat pomiarowy dla subtraktora-subtraktora równoległego
5.5. Badanie sumatora - subtraktora dziesiętnego (SD):
Sprawdzić działanie układu sumatora – subtraktora dziesiętnego (rys. 20) przez
wykonanie następujących obliczeń na dwu jednodekadowych liczbach BCD 8421. Dla układu
sumatora: A+0=A, A+B=S<10, A+B=S >10 z uwzględnieniem obu przypadków podłączenia
wejścia C-1, następnie zmieniając konfigurację na subtraktor (por. rys. 10b) wykonać
działania: A-B = S>0 (S<10), A-B = S<0 (|S|<10).
Rys. 20. Schemat pomiarowy sumatora-subtraktora BCD 8421
5. Badanie komparatora szeregowego (KSz):
Połączyć układ komparatora szeregowego zgodnie z rys. 21. Przeanalizować kolejne
kroki działania KSz wpisując do rejestrów A i B 4-bitowe liczby BIN o relacji A = B oraz
liczby o relacji A≠B, różniące się kolejno bitami od MSB do LSB.
29
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
Rys. 21. Schemat pomiarowy komparatora szeregowego
5.7. Badanie komparatora równoległego (KR):
Przy pomocy układu komparatora równoległego, przedstawionego na rys. 22,
sprawdzić otrzymane w punkcie 5.5 wyniki.
Rys. 22. Schemat pomiarowy kompensatora równoległego
Tematy do opracowania:
1. Narysować tablice stanów sumatora i subtraktora 1-bitowego, porównać je z tablicami 1 i 2.
2. Na podstawie przykładów podanych w p. 2.1.2 [przedstawić działania arytmetyczne
wykonane w p. 5.2, 5.1 i 5.4. W przypadku układu subtraktora szeregowego zaznaczyć
fakt otrzymania nieprawidłowego wyniku odejmowania jako niepełnego uzupełnienia
do 2 (por. wzór (5)). Podać sposób znalezienia prawidłowego wyniku.
3. Na podstawie przykładów podanych w p. 2.2.2. przedstawić działania arytmetyczne
wykonane przez układ sumatora – subtraktora dziesiętnego. W przypadku układu
subtraktora dziesiętnego zaznaczyć fakt otrzymania wyniku jako uzupełnienia do 9.
2.4. Dla układów komparatora szeregowego i równoległego wypełnić podaną niżej tablicę. W
przypadku komparatora szeregowego zaznaczyć numer taktu, w którym uzyskuje się już
poprawny wynik.
Tablica. Analiza działania komparatora szeregowego i równoległego
30
aktualizacja dr inż. S. Gryś – 24 lutego 2012 r.
Literatura:
1. Gryś S. Arytmetyka komputerów – w praktyce, PWN, Warszawa 2007.
2. Kalisz J.: Podstawy elektroniki cyfrowej, WKŁ, Warszawa 2007.
3. Lisiecka-Frąszczak J: Synteza układów cyfrowych, Wydawnictwa Politechniki Poznańskiej,
Poznań 2000.
4. Majewski W.: Układy logiczne, WNT, Warszawa 1976.
5. Misiurewicz P., Grzybek H.: Półprzewodnikowe układy logiczne, WNT, Warszawa
1975, str. 83-177.
6. Pieńkos J., Turczyński J.: Układy scalone TTL w systemach cyfrowych, WKŁ,
Warszawa 1980.
7. Traczyk W.: Układy cyfrowe. Podstawy teoretyczne i metody syntezy, WNT
Warszawa 1986.
8. Zieliński C.: Podstawy projektowania układów cyfrowych, PWN, Warszawa 2003.
31
Download