Badanie sumatorów cyfrowych., Klasa


  • Klasa

  • Imię i nazwisko

Nr w dzienniku

Zespół Szkół Łączności w Krakowie

    • 3M

33

      • Pracownia elektroniczna

  • Nr ćw.

  • Temat ćwiczenia

  • Data

  • Ocena

  • Podpis

        • 24.

        • Badanie sumatorów cyfrowych.

2000-02-22

  1. Zapoznać się z zasadą dodawania liczb przedstawionych w naturalnym kodzie binarnym.

  1. Zapisać tabelę stanów dla półsumatora i na jej podstawie opisać zasadę działania układu, narysować schemat oraz sprawdzić jego działanie.

  1. Zapisać tabelę stanów dla sumatora dwóch liczb jednobitowych (z uwzględnieniem bitu przeniesienia).

  1. Zapisać funkcję logiczną opisującą działanie układu sumatora i dokonać minimalizacji funkcji dowolną metodą.

  1. W oparciu o zminimalizowaną funkcję narysować schemat i zestawić układ sumatora oraz sprawdzić jego działanie.

  1. Zestawić układ odejmujący dwie liczby binarne jednobitowe (z uwzględnieniem bitu pożyczki). Zapisać tabelę stanów dla tego układu i opisać działanie układu funkcją logiczną.

  1. Zapoznać się ze sposobami realizacji sumatorów liczb wielobitowych (szeregowy, równoległy, sumator akumulacyjny) oraz metodami odejmowania liczb w systemie binarnym.

  1. W sprawozdaniu zamieścić opracowanie powyższych punktów i wnioski z przeprowadzonego ćwiczenia.

Zasada dodawania liczb w kodzie binarnym.

Zasada dodawania liczb binarnych jest niezwykle prosta. Sumuje się odpowiednie dwa bity dwóch dodawanych liczb. Sumowanie rozpoczyna się od najmniej znaczących bitów, a więc przesuwamy się w lewo. Wynik sumowania dwóch bitów jest równy 1, wtedy i tylko wtedy, gdy jeden z nich ma wartość 0, a drugi 1. Wynik sumowania jest równy 0, gdy oba bity są zerami, albo jedynkami. W tym drugim przypadku generowany jest dodatkowo bit przeniesienia równy 1, który jest następnie dodawany do wyniku sumy dwóch następnych bitów. W ten sposób można dodawać dwie liczby binarne o dowolnej długości.

Półsumator

Półsumator jest najprostszym układem arytmetycznym. Umożliwia dodanie do siebie dwóch liczb jednobitowych i może ewentualnie zasygnalizować, iż nastąpiło przeniesienie. Jego podstawową wadą jest to, że nie uwzględnia bitów przeniesień z poprzednich pozycji.

0x08 graphic

Do wejść A i B dołączone są dodawane bity, suma pojawia się na wyjściu Y, natomiast sygnalizacja przeniesienia na wyjściu CO (ang. Carry Out - przeniesienie wyjściowe).

Półsumator (jak i sumator pełny) są układami kombinacyjnymi, zatem można je zbudować z bramek. Podstawę do projektu stanowi zawsze tablica stanów (prawdy), stworzona na podstawie zasad dodawania liczb binarnych. Dla półsumatora przedstawia się następująco :

A

B

CO

Y

0

0

0

0

0

1

0

1

1

0

0

1

1

1

1

0

Jak widać Y = 1 wtedy, gdy tylko jeden z bitów jest równy 1 (czyli gdy dodawane bity są przeciwne). Funkcja Y to inaczej suma modulo 2 zmiennych A i B. Do jej realizacji wystarczy 1 bramka ExOR.

W przypadku CO sprawa jest jeszcze prostsza. CO = 1 wtedy, gdy obydwa bity są równe 1. Jest to iloczyn logiczny, zatem do realizacji funkcji CO wystarczy 1 bramka AND.

Uwaga !!! W zapisie funkcji logicznych dla wygody i przejrzystości przyjęto konwencję : a = A, b = B, CI (Carry In dla sumatora pełnego - c)

0x08 graphic

Schemat logiczny półsumatora :

0x08 graphic

Powyższy układ zestawiono i działał bez zarzutów.

Sumator pełny

Sumator pełny w odróżnieniu od półsumatora posiada dodatkowe wejście CI (ang. Carry Input - przeniesienie wejściowe), dzięki któremu sumator pełny jest „informowany” o zaistniałych przeniesieniach na poprzednich pozycjach i uwzględnia je generowaniu wyniku. Jest on podstawową częścią składową układów arytmetycznych. Za pomocą sumatora pełnego, łącząc go na różne sposoby, stosując dodatkowe elementy, jak np. konwertery kodu, inwertery, liczniki, rejestry, czy nawet bramki można wykonać dowolny układ arytmetyczny. Wszystkie podstawowe działania można wykonać w oparciu o sumator. Odejmowanie - dodawanie liczby przeciwnej; mnożenie - wielokrotne dodawanie, dzielenie - wielokrotne odejmowanie, czyli wielokrotne dodawanie liczby przeciwnej; potęgowanie - wielokrotne mnożenie, czyli wielokrotne dodawanie itd. Oczywiście można budować układy mnożące, dzielące, potęgujące na różne sposoby, ale doświadczenie pokazuje, że budowanie ich na bazie sumy zwiększa szybkość i niezawodność (stąd coraz większa popularność np. procesorów RISC - „powrót” do zredukowanej do minimum listy rozkazów, większy trud przy programowaniu, ale za to większa szybkość w porównaniu z innymi układami).

0x08 graphic

Tabela stanów dla sumatora pełnego:

0x08 graphic
A

B

CI

CO

Y

0

0

0

0

0

0

1

0

0

1

1

0

0

0

1

1

1

0

1

0

0

0

1

0

1

0x08 graphic
0

1

1

1

0

1

0

1

1

0

1

1

1

1

1

Zaprojektowany przez nas sumator pełny :

0x08 graphic

Funkcje logiczne upraszczano w ten sposób, aby zminimalizować liczbę bramek, starając się wykorzystywać wyjścia już istniejących. Zauważyliśmy te same rodzaje bramek, co w półsumatorze i podobnie podłączone. Wywnioskowaliśmy, że nasz sumator pełny składa się praktycznie z dwóch półsumatorów i jednej bramki OR. Bramki należące do jednego półsumatora składowego oznaczono S1, natomiast drugiego - S2. Półsumator S1 pracuje normalnie, natomiast S2 „sumuje” wyjście S1 z bitem CI. Jego wyjście jest wyjściem całego układu. Bit przeniesienia CO jest tworzony przez sumę logiczną bitów CO1 i CO2.

Układ ten także sprawdził się w praktyce.

Układ odejmujący dwie liczby jednobitowe (z uwzględnieniem pożyczki).

Budowę układu rozpoczynamy od tabeli stanów (a - b):

CI - bit pożyczki wejściowej (informacyjnej dla układu)

CO - bit pożyczki wyjściowej (generowanej przez układ)

A

B

CI

Y

CO

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

0x08 graphic

Jak widać funkcja Y jest identyczna jak dla sumatora, więc od razu możemy podać jej postać zminimalizowaną :

0x08 graphic

0x08 graphic

Schemat układu odejmującego :

0x08 graphic

Układ odejmujący różni się od sumatora tylko tym, że zawiera dwie dodatkowe bramki NOT. Funkcja Y jest identyczna, natomiast jako że przy odejmowaniu obowiązują inne zasady przy pożyczkach niż przy dodawaniu, funkcja CO różni się tylko w dwóch miejscach.

Ćwiczenie wykazało jak stosunkowo prosto można zrobić z dwóch sumatorów sumator pełny (dodając bramkę OR), a z sumatora pełnego układ odejmujący pełny (dodając dwie bramki NOT) - („odejmator pełny ?”  [;-)). W praktyce jednak takie kombinacje nie są potrzebne, gdyż mamy sumatory scalone, a bramkami można operować dla zabawy.

Budowane przez nas z bramek układy działały poprawnie, ale podejrzewam, że w praktyce taki układ nie zdałby egzaminu. Korzystaliśmy z różnych bramek, czyli z różnych układów scalonych. W zastosowaniach praktycznych (np. duże częstotliwości) dałyby o sobie takie zjawiska jak hazard, różnice czasów propagacji itp.

Sumowanie i odejmowanie liczb wielobitowych

Rozróżniamy dwa sposoby sumowania liczb wielobitowych : równoległy i szeregowy (akumulacyjny).

W pierwszym z nich sumowanie dwóch liczb następuje jak gdyby w jednym czasie. Aby dodać dwie n - bitowe liczby, należy dysponować sumatorami elementarnymi (pełnymi) w liczbie nie mniejszej od n. Sumatory te łączy się w sposób, że w każdym sumatorze następuje sumowanie dwóch bitów z dodawanych liczb. Odpowiednie bity sumowanych liczb są wprowadzane równolegle do wejść sumatorów. Wyjście przeniesienia CO jednego sumatora łączy się z wejściem CI sumatora bitów o większej wadze. Wynik dodawania pojawia się jako kombinacja stanów na wyjściach SUM poszczególnych sumatorów, przy czym należy pamiętać o kierunku odczytu. Ten sposób ma zasadniczą wadę : długość sumowanych liczb jest ograniczona ilością sumatorów, którą dysponujemy. Mając np. sumator zbudowany z 4 sumatorów elementarnych możemy wykorzystywać go tylko do dodawania liczb 4 - bitowych. Chcąc powiększyć jego możliwości musimy dokładać kolejne układy.

0x08 graphic

Schemat szeregowego sumatora n - bitowego

0x08 graphic
Praktycznym przykładem sumatora jest układ '83. Jest to czterobitowy sumator równoległy. Składa się z 4 sumatorów elementarnych połączonych jak na powyższym rysunku. Posiada on również wejście przeniesienia CO i wyjście przeniesienia C4, co umożliwia łączenie go w taki sposób, aby sumować liczby 8, 16 - bitowe itd.… Na poniższym rysunku przedstawiono sumator 8 - bitowy złożony z dwóch układów 7483.

0x08 graphic
0x08 graphic
Skoro mowa o układach arytmetycznych, to do sumowania dwóch liczb można użyć również jednostki ALU `181, która umożliwia wykonywanie 16 operacji arytmetycznych i logicznych na dwóch 4 - bitowych argumentach. Wyboru funkcji dokonuje się przez odpowiednią kombinację bitów S3-S0, natomiast rodzaju (arytmetyczna, czy logiczna) za pomocą bitu M. Układu tego można użyć również do odejmowania liczb. Operacje na liczbach więcej niż 4 - bitowych wykonuje się łącząc układy podobnie jak '83. Rozwiązanie takie (stosowanie `181) jednak wg mnie ma sens tylko w bardziej skomplikowanych układach, gdzie na dwóch argumentach dokonuje się wielu operacji w zależności od potrzeby. Samo sumowanie można zrealizować na 7483 - tańszym, bardziej niezawodnym i o mniejszej liczbie końcówek układzie.

Innym sposobem dodawania liczb jest sposób szeregowy (akumulacyjny). Jest on zbudowany w oparciu tylko o 1 sumator elementarny, ale posiada pamięć, rejestr przesuwający oraz układ sterujący. Schemat funkcjonalny sumatora szeregowego przedstawia się następująco :

0x08 graphic

Przed wykonaniem działań pamięć jest zerowana. Najpierw na wejście ai podaje się pierwszy bit. Zostaje on przepisany na wyjście sumatora, a następnie pojawi się na wejściu a. Z chwilą pojawienia się drugiego bitu na wejściu ai zostaną one zsumowane i z pamięci PCP przesłane do rejestru przesuwającego. Pamięć PP służy do przechowywania bitu przeniesienia i do podawania go na wejście CI w następnym cyklu. Całością steruje układ sterujący.

Widać, że dodawane składniki są podawane na wejście sumatora jeden po drugim oraz, że układ może dodawać ciągle nowe składniki (czyli gromadzić - akumulować), stąd nazwa takiego układu. Główną zaletą takiego układu jest to, że jedynym ograniczeniem długości sumowanych liczb jest jedynie pamięć. Łatwiej wymienić ją na bardziej pojemną, czy dołączyć nowy układ niż dokładać i łączyć sumatory w sposób równoległy. Zamiast sumatora elementarnego można zawsze użyć np. 7483 i dodawać w każdym cyklu liczby czterobitowe, co przyspieszy operacje.

Przyrządy wykorzystane w ćwiczeniu :

- układ do badania sumatorów jednobitowych (zestaw bramek)





















Wyszukiwarka

Podobne podstrony:
inne1, Badanie parametrow wyswietlaczy cyfrowych, Klasa
Badanie parametrow wyswietlaczy cyfrowych, Klasa
Badanie układów wpisywania i odczytu informacji cyfrowej, Klasa
badanie oscyloskopu cyfrowego
Badanie przerzutników monostabilnych., Klasa
Badanie multimetru cyfrowego sprawozdnie psk na
Badanie funktorów logicznych., Klasa
inne1, Badanie diod Zenera, Klasa
Badanie funktorów logicznych., Klasa
inne1, Badanie diod Zenera, Klasa
Badanie stabilizatorow trojpunktowych, Klasa
Badanie diod prostowniczych, Klasa
Badanie multimetru cyfrowego sp Protokol uzupelniony id 630720 (2)
Badanie ukladow cyfrowych
Badanie przerzutników bistabilnych., Klasa
Badanie diod Zenera, Klasa
Badanie funktorów logicznych, KLASA
Badanie multimetru cyfrowego sprawozdnie psk ?danie multimetru
Badanie parametrów elektrycznych cyfrowych układów TTL i MOS, Klasa

więcej podobnych podstron