ĆWICZENIE nr 6 UKAADY ARYTMETYCZNE cz. I Poltechnika CzÄ™stochowska 1.1 Cel ćwiczenia. Celem ćwiczenia jest zapoznanie siÄ™ z budowÄ… i dziaÅ‚aniem sumatorów, subtraktorów i komparatorów cyfrowych. 1.2 Wprowadzenie. UkÅ‚ady cyfrowe mogÄ… przetwarzać tylko informacjÄ™ binarnÄ…, tj. dwuwartoÅ›ciowÄ…. Wynika stÄ…d konieczność przejÅ›cia z ogólnie przyjÄ™tego systemu dziesiÄ™tnego na system binarny. Liczby dziesiÄ™tne zazwyczaj przedstawia siÄ™ w naturalnym kodzie dwójkowym, w kodzie ósemkowym (oktalnym), szesnastkowym (heksadecymalnym) lub w kodzie BCD. Jeżeli przy zapisie liczby binarnej uwzglÄ™dnia siÄ™ znak to zapisujemy go w postaci bitu przed najstarszym bitem liczby. Liczbie dodatniej odpowiada bit znaku równy 0, dla liczby ujemnej równy 1. Liczby binarne przedstawia siÄ™ w zapisach: znak-moduÅ‚, uzupeÅ‚nieÅ„ do 1 (p.-1), uzupeÅ‚nieÅ„ do 2 (p.). Liczba w postaci znak-moduÅ‚. Liczba ujemna daje siÄ™ Å‚atwo przedstawić, jeżeli na najstarszej pozycji zostanie umieszczony bit znaku s. Zero oznacza liczbÄ™ dodatniÄ…, a jedynka ujemnÄ…. Poprawna interpretacja znaku liczby może nastÄ…pić tylko przy staÅ‚ej dÅ‚ugoÅ›ci sÅ‚owa. PrzykÅ‚ad dla sÅ‚owa 8-bitowego: +11810 = 0 1 1 1 0 1 1 02 - 11810 = 1 1 1 1 0 1 1 02 Liczba w postaci uzupeÅ‚nienia do dwóch (two s complement). Przedstawienie liczby w postaci znak-moduÅ‚ ma tÄ™ wadÄ™, że nie uÅ‚atwia dodawania liczb o przeciwnych znakach. W przypadku wystÄ…pienia znaku minus sumator musi być przestawiony na odejmowanie. Przy zapisie w postaci uzupeÅ‚nienia do dwóch nie jest to potrzebne. W zapisie w postaci uzupeÅ‚nienia do dwóch najstarszy bit ma wagÄ™ ujemnÄ…. PozostaÅ‚a część liczby jest normalnym kodem dwójkowym. Również w tym zapisie dÅ‚ugość sÅ‚owa musi być staÅ‚a, aby można byÅ‚o jednoznacznie zdefiniować najstarszy bit. W przypadku liczby dodatniej wartość najstarszego bitu wynosi 0. Dla liczby ujemnej bit ten ma wartość 1, bo tylko ta pozycja ma ujemnÄ… wagÄ™. PrzykÅ‚ad dla sÅ‚owa 8-bitowego: +11810 = 0 1 1 1 0 1 1 0 = BN - 11810 = 1 0 0 0 1 0 1 0 = X PrzejÅ›cie z liczby dodatniej na równÄ… co do moduÅ‚u liczbÄ™ ujemnÄ… jest oczywiÅ›cie nieco trudniejsze niż przy zapisie znak-moduÅ‚. Załóżmy, że liczba dwójkowa BN ma bez bitu znaku dÅ‚ugość N. StÄ…d waga pozycji znaku wynosi -2N. LiczbÄ™ -BN przedstawia wzór: -BN = -2N + X StÄ…d wartość dodatniej reszty X X = 2N - BN To wyrażenie nosi nazwÄ™ uzupeÅ‚nienia do dwóch BN(2) liczby BN. Można je Å‚atwo wyliczyć na podstawie BN. Rozważmy najwiÄ™kszÄ… liczbÄ™, jakÄ… można przedstawić za pomocÄ… N pozycji. Ma ona wartość 11111......=2N - 1. OdejmujÄ…c od niej dowolnÄ… liczbÄ™ dwójkowÄ… BN otrzymujemy również liczbÄ™ - 2 - Poltechnika CzÄ™stochowska dwójkowÄ…, w której wszystkie bity sÄ… negacjami odpowiednich bitów BN. Liczba taka nazywa siÄ™ uzupeÅ‚nieniem do jednoÅ›ci BN(1) liczby BN. StÄ…d mamy: BN(1) = 2N -1 - BN i BN(2) = BN(1) + 1 Zapis liczby dwójkowej w postaci uzupeÅ‚nienia do dwóch otrzymujemy wiÄ™c przez negacjÄ™ wszystkich jej pozycji oraz dodanie 1. PrzykÅ‚ad 8-bitowej liczby dwójkowej w uzupeÅ‚nieniu do dwóch: 11810 = 01110110 uzupeÅ‚nienie do jednoÅ›ci 10001001 + 1 uzupeÅ‚nienie do dwóch 10001010 = - 11810 PrzejÅ›cie odwrotne: uzupeÅ‚nienie do jednoÅ›ci 01110101 + 1 uzupeÅ‚nienie do dwóch 01110110 = + 11810 Sumatory sÄ… ukÅ‚adami dodajÄ…cymi dwie liczby binarne. Najprostszy przypadek wystÄ™puje wówczas, gdy trzeba dodać dwie liczby jednobitowe. Aby móc zaprojektować odpowiedni ukÅ‚ad logiczny, należy rozpatrzyć wszystkie możliwe przypadki i utworzyć tablice funkcji logicznych. Przy dodawaniu dwóch liczb jednobitowych mogÄ… wystÄ…pić nastÄ™pujÄ…ce przypadki: 0+0=0, 0+1=1, 1+0=1, 1+1=10. ai bi si ci 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 Rys. 1. Tablica prawdy półsumatora. Jeżeli zarówno A, jak i B sÄ… jedynkami, przy dodawaniu wystÄ™puje przeniesienie do starszej pozycji. Wobec tego sumator musi mieć dwa wyjÅ›cia: jedno wyjÅ›cie dla sumy na odpowiadajÄ…cej sumatorowi pozycji i jedno wyjÅ›cie przeniesienia do nastÄ™pnej pozycji. DochodzÄ…c do tablicy prawdy przedstawionej na Rys. 1. przydzielamy liczbom A i B zmienne logiczne ai i bi. Przeniesienie oznaczmy przez ci, a sumÄ™ jako si. Otrzymujemy stÄ…d funkcje Boole`owskie w postaci normalnej sumy ci = aibi oraz si = aibi + aibi = ai •" bi . Rys. 2. UkÅ‚ad półsumatora. - 3 - Poltechnika CzÄ™stochowska Przeniesienie jest iloczynem zmiennych wejÅ›ciowych (funkcja AND), suma zaÅ› funkcjÄ… nierównoważnoÅ›ci (EXOR). UkÅ‚ad, który realizuje te dwie zależnoÅ›ci, nazywamy półsumatorem (Rys. 2 ). W przypadku dodawania liczb dwójkowych wielopozycyjnych półsumator można zastosować tylko na najmÅ‚odszej pozycji. Na wszystkich pozostaÅ‚ych trzeba dodawać nie dwa, ale trzy bity z powodu przeniesienia z mÅ‚odszej pozycji. W ogólnym przypadku dla każdego bitu jest potrzebny ukÅ‚ad logiczny o trzech wejÅ›ciach ai, bi, ci-1 oraz dwóch wyjÅ›ciach si i ci. UkÅ‚ad taki nosi nazwÄ™ peÅ‚nego sumatora. Można go zrealizować w sposób pokazany na Rys. 3. za pomocÄ… dwóch półsumatorów. Tablica prawdy peÅ‚nego sumatora jest przedstawiona na Rys. 4. Funkcje Boole`owskie sÄ… nastÄ™pujÄ…ce ci = aibi + aici-1 + bici-1 oraz si = ai •" bi •" ci-1. Rys. 3. UkÅ‚ad peÅ‚nego sumatora. WejÅ›cie WyjÅ›cie 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 Rys. 4. Tablica prawdy peÅ‚nego sumatora. Aby móc dodawać dwie wielopozycyjne liczby dwójkowe potrzeba na każdÄ… pozycjÄ™ jeden peÅ‚ny sumator. Sumatory wielobitowe można podzielić na dwójkowe (sumowanie liczb binarnych) i dziesiÄ™tne (sumowanie liczb dziesiÄ™tnych kodowanych dwójkowo). DziaÅ‚anie sumatora może odbywać siÄ™ szeregowo (sumowane sÄ… kolejne bity dodajnej i dodajnika) lub równolegle (wszystkie bity sumowane sÄ… jednoczeÅ›nie). Subtraktor jest ukÅ‚adem realizujÄ…cym odejmowanie dwu liczb binarnych. Subtraktor można nazwać pewnym przypadkiem sumatora ze zmianÄ… ai na ai w funkcji pożyczki. UkÅ‚ady wielobitowe subtraktorów budowane sÄ… analogicznie - 4 - Poltechnika CzÄ™stochowska jak odpowiednie sumatory. 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. WejÅ›cie WyjÅ›cie ai bi vi-1 di vi 0 0 0 0 0 0 1 0 1 1 1 0 0 1 0 1 1 0 0 0 0 0 1 1 1 0 1 1 0 1 1 0 1 0 0 1 1 1 1 1 Rys. 5. Tablica prawdy peÅ‚nego subtraktora. Komparatory to ukÅ‚ady logiczne, które porównujÄ… ze sobÄ… liczby. Najważniejsze kryteria porównania to A=B, A>B i Adwóch liczb dwójkowych to identyczność wszystkich bitów. Komparator powinien dawać na wyjÅ›ciu 1 wówczas, gdy dwie porównywane liczby sÄ… sobie równe. W przypadku dwóch liczb 1-bitowych wystarczy użyć bramki EXOR. Bardziej uniwersalne komparatory prócz wykrywania równoÅ›ci wskazujÄ…, która z porównywanych liczb jest wiÄ™ksza. OkreÅ›la siÄ™ je mianem komparatora A B A>B A=B A0 0 0 1 0 0 1 0 0 1 1 0 1 0 0 1 1 0 1 0 Rys. 6. Tablica stanu komparatora 1-bitowego. wartoÅ›ci. Dla utworzenia funkcji logicznych należy skorzystać z przedstawionej na Rys. 6. tablicy stanu. Na jej podstawie otrzymamy bezpoÅ›rednio ukÅ‚ad realizujÄ…cy tÄ™ funkcjÄ™, przedstawiony na Rys. 7. 1.3 Pytania sprawdzajÄ…ce. 1. Omówić uzupeÅ‚nienie do dwóch liczb ujemnych. 2. Przedstawić liczby 5, 9, 15, 28, 42 oraz ich uzupeÅ‚nienie do dwóch. 3. Omówić dziaÅ‚anie i narysować sumator i subtraktor 1-bitowy. 4. Dokonać klasyfikacji sumatorów. 5. Omówić budowÄ™ zasadÄ™ dziaÅ‚ania komparatora 1- bitowego. - 5 - Rys. 7. Schemat komparatora 1-bitowego. Poltechnika CzÄ™stochowska 1.4 Opis ukÅ‚adu pomiarowego. Ćwiczenie skÅ‚ada siÄ™ z dwóch osobnych części. Na stanowisko laboratoryjne należy naÅ‚ożyć pÅ‚ytÄ™ czoÅ‚owÄ… zatytuÅ‚owanÄ… Elementy arytmetyczne cz. I , a po wykonaniu części pierwszej naÅ‚ożyć pÅ‚ytÄ™ Elementy arytmetyczne cz. II . Część pierwsza ćwiczenia skÅ‚ada siÄ™ z ukÅ‚adu sumatora- subtraktora 1-bitowego, komparatora szeregowego oraz ukÅ‚adów pomocniczych takich jak rejestry przesuwne, przerzutnik D oraz rejestr sumy. Na Rys. 8. przedstawiony jest schemat sumatora-subtraktora 1-bitowego wykorzystywanego w ćwiczeniu, a na Rys. 9 schemat komparatora szeregowego. PrzeÅ‚Ä…cznik Rys. 8. Schemat ukÅ‚adu sumatora-subtraktora 1-bitowego. Wybór grupy sÅ‚uży do ustawienia przesuwania rejestrów w prawo lub w lewo w zależnoÅ›ci czy jest wykorzystywany sumator czy komparator. Przy pomocy przeÅ‚Ä…cznika SUB można wykorzystywać ukÅ‚ad jako sumator lub subtraktor. Taktowania dokonuje ćwiczÄ…cy przy pomocy przeÅ‚Ä…cznika TAKT. Diody LED, wyÅ›wietlacze oraz zadajniki zostaÅ‚y wykorzystane zgodnie z opisem na pÅ‚ycie czoÅ‚owej. Rys. 9. Schemat ukÅ‚adu komparatora szeregowego. 1.5 Program ćwiczenia. Przed rozpoczÄ™ciem ćwiczenia prowadzÄ…cy nakÅ‚ada pÅ‚ytÄ™ czoÅ‚owÄ… na stanowisko laboratoryjne oraz ustawia kod ćwiczenia na przeÅ‚Ä…czniku ćwiczeÅ„. PodÅ‚Ä…cza zasilanie. - 6 - Poltechnika CzÄ™stochowska 1.5.1 Sumator-subtraktor 1-bitowy. Zmontować ukÅ‚ad wedÅ‚ug Rys. 10, wyzerować ukÅ‚ad (RESET), ustawić przeÅ‚Ä…cznikiem Wybór grupy numer 0 (na wyÅ›wietlaczu W1). PoÅ‚Ä…czyć punkty E, SUB i Ci-1 ze stanem L. Ustawić na zadajnikach ZA=1100 i ZB 1010. Wcisnąć przeÅ‚Ä…cznik WPIS i podać jeden impuls zegarowy (TAKT). NastÄ™pnie wcisnąć ponownie WPIS i podawać impulsy zegarowe przy pomocy przeÅ‚Ä…cznika TAKT. Wyniki należy wpisać do Tabela 1 (Ai - LED 12, Bi - LED 11, Si - LED 10, Ci - LED 9, Ci-1 - LED 8). NastÄ™pnie powtórzyć badanie dla Ci-1=H. Rys. 10. UkÅ‚ad do badania sumatora-subtraktora 1-bitowego. Tabela 1. WejÅ›cie WyjÅ›cie ai bi si ci 0 0 0 1 1 0 1 1 Po wykonaniu badania sumatora 1-bitowego należy poÅ‚Ä…czyć punkt SUB ze stanem H (zaÅ‚Ä…czenie substraktora) i dla różnych wartoÅ›ci Ci-1 powtórzyć badanie jak dla sumatora.. 1.5.2 Sumator-subtraktor szeregowy. Zmontować ukÅ‚ad wedÅ‚ug Rys. 11, wyzerować ukÅ‚ad. PoÅ‚Ä…czyć punkt SUB ze stanem L. Ustawić na zadajnikach ZA=1100 i ZB 1010. Wcisnąć przeÅ‚Ä…cznik WPIS i podać jeden impuls zegarowy (TAKT). NastÄ™pnie wcisnąć ponownie WPIS i podawać impulsy zegarowe przy pomocy przeÅ‚Ä…cznika TAKT. Podczas taktowania należy zwrócić uwagÄ™ na stan wskazników LED (Ai - LED 12, Bi - LED 11, Si - LED 10, Ci - LED 9, Ci-1 - LED 8). Wynik odczytać w rejestrze sumy (wyÅ›wietlacze W3 i W2 heksadecymalnie) po odpowiedniej liczbie impulsów taktujÄ…cych. Z kolei Å‚Ä…czÄ…c punkt SUB ze stanem L - 7 - Poltechnika CzÄ™stochowska (sumowanie) lub H (odejmowanie) przeprowadzić nastÄ™pujÄ…ce dziaÅ‚ania arytmetyczne dla dwóch różnych liczb A i dwóch różnych liczb B: A+0=A, A+B=7, A+B=S, A-0=A, A-B=S (S>0), A-B=S (S<0), 0-B= -B. Przed wykonaniem każdego dziaÅ‚ania ukÅ‚ad należy wyzerować. Wyniki przedstawić w Tabela 2. (A - LED0-3, B - LED4-7, S - W3 i W2). Rys. 11. UkÅ‚ad sumatora-subtraktora szeregowego. Tabela 2. Binarnie A Binarnie B DziaÅ‚anie Binarnie S Hex S Ilość A3 A2 A1 A0 B3 B2 B1 B0 S7 S6 S5 S4 S3 S2 S1 S0 Taktów A+0=A ... 0-B = -B 1.5.3 Akumulacyjny sumator szeregowy. Zmontować ukÅ‚ad wedÅ‚ug Rys. 12, wyzerować ukÅ‚ad. PoÅ‚Ä…czyć punkt SUB ze stanem L. Ustawić na zadajniku ZA=0001. Wcisnąć przeÅ‚Ä…cznik WPIS i podać jeden impuls zegarowy (TAKT). NastÄ™pnie wcisnąć ponownie WPIS i podawać impulsy zegarowe przy pomocy przeÅ‚Ä…cznika TAKT. Podczas taktowania należy zwrócić uwagÄ™ na stan wskazników LED (Ai - LED 12, Bi - LED 11, Si - LED 10, Ci - LED 9, Ci-1 - LED 8). Wynik należy odczytać w rejestrze sumy (wyÅ›wietlacze W3 i W2 heksadecymalnie) po oÅ›miu impulsach taktujÄ…cych. Przed 8 impulsem należy wcisnąć WPIS, na zadajniku ZA zadać nastÄ™pny skÅ‚adnik sumowania i podać ósmy takt. Po nim ponownie wcisnąć WPIS. Z kolei Å‚Ä…czÄ…c punkt SUB ze stanem L (sumowanie) lub H (odejmowanie) przeprowadzić nastÄ™pujÄ…ce dziaÅ‚ania arytmetyczne dla dwóch różnych liczb A: A+A=2A, A1+A2+A3=S, A1-A2+A3=S , A1+A2+...+An=S oraz wÅ‚asne trzy dziaÅ‚ania. Przed wykonaniem każdego dziaÅ‚ania ukÅ‚ad należy wyzerować. Wyniki przedstawić w Tabela 3 (A - LED0-3, S - W3 i W2). - 8 - Poltechnika CzÄ™stochowska Rys. 12. UkÅ‚ad sumatora akumulujÄ…cego. Tabela 3. Binarnie A DziaÅ‚anie Binarnie S Hex S Ilość A3 A2 A1 A0 S7 S6 S5 S4 S3 S2 S1 S0 Taktów A+0=S A+S=2A ... A1+0=S ... An+S =Sn 1.5.4 Komparator szeregowy. Zmontować ukÅ‚ad wedÅ‚ug Rys. 13, wyzerować ukÅ‚ad. Ustawić na zadajnikach ZA=0011 i ZB=0010. Wcisnąć przeÅ‚Ä…cznik WPIS i podać jeden impuls zegarowy (TAKT). NastÄ™pnie wcisnąć ponownie WPIS i podawać impulsy zegarowe przy pomocy przeÅ‚Ä…cznika TAKT. Podczas taktowania należy zwrócić uwagÄ™ na stan wskazników LED (Ai - LED 12, Bi - LED 11, A>B - LED10, A=B - LED 9, ATabela 4. A B Ai Bi A>B A=B A0011 0010 0 0 1 0 0 2 1 1 3 1 0 4 ... ... - 9 - Poltechnika CzÄ™stochowska Rys. 13. UkÅ‚ad komparatora szeregowego MSB. - 10 -