Laboratorium elektroniki i miernictwa Ćwiczenie EL2
Transkrypt
Laboratorium elektroniki i miernictwa Ćwiczenie EL2
150946 Numer indeksu 151021 Numer indeksu Michał Moroz Imię i nazwisko Paweł Tarasiuk Imię i nazwisko kierunek: Informatyka semestr 2 grupa II rok akademicki: 2008/2009 Laboratorium elektroniki i miernictwa Ćwiczenie EL2 Realizacja logicznych układów kombinacyjnych z bramek NAND Ocena: Streszczenie Sprawozdanie z ćwiczenia, którego celem było udowodnienie tautologii oraz zbudowanie układów logicznych za pomocą bramek NAND. 1 Teoria W tym rozdziale zostaną omówione pokrótce poszczególne zagadnienia związane z tematem przeprowadzanego ćwiczenia. 1.1 Tablice Karnaugha i minimalizacja funkcji logicznej Istnieje wiele metod minimalizacji funkcji logicznej – dla przykładu można wymienić tablice Karnaugha, metodę Espresso (rozwiązanie bazujące na heurystyce) bądź metodę Quine’aMcCluskeya (metodę identyczną do tablic Karnaugha, ale znacznie prostszą w implementacji dla komputerów). W ogólności służą one do zbudowania układu opisanego pewną funkcją jego wejść za pomocą jak najmniejszej ilości bramek. W metodzie Karnaugh korzystamy z tablicy, w której kolumny i rzędy to kolejne możliwe stany logiczne poszczególnych wejść układu (część wejść jest kolumnami, a część rzędami) poukładane za pomocą kodu Graya, czyli tak, aby za każdym razem zmieniał się tylko jeden bit. Dla przykładu, w układzie o trzech wejściach A, B oraz C, tablica ta będzie wyglądała tak: 00 C AB 01 11 10 0 1 Następnie taką tablicę wypełniamy wartościami znajdującymi się w tabeli prawdy funkcji, którą chcemy zminimalizować. Po czym zaznaczamy jak największe obszary jedynek (lub zer) stosując się do kilku prostych zasad - obszary muszą być prostokątne lub kwadratowe, mogą nachodzić na siebie, możliwe jest także ‘sklejanie krawędzi’ – dla przykładu, łączenie pierwszego i ostatniego elementu w danym wierszu/kolumnie jest dozwolone. Po zaznaczeniu jak najmniejszej ilości jak największych obszarów wystarczy potraktować taki obszar jako jedną funkcję logiczną a następnie zsumować wszystkie takie funkcje. Sama metoda jest dość intuicyjna i przeznaczona dla ludzi, nie dla komputerów. Problemem jest mała ilość zmiennych, dla których jest ona skuteczna – przy bardziej skomplikowanych układach obliczanie tą metodą jest żmudne i czasochłonne, niekoniecznie też dojdziemy do całkowitego minimum. Innym problemem jest to, że metoda ta pozwala minimalizować pojedynczą funkcję – układ z jednym wyjściem. Metoda ta nie daje automatycznie rozwiązania dla układu o kilku różnych wyjściach. 1.2 Bramka NAND i realizacja innych bramek za jej pomocą Bramka NAND jest odwróceniem bramki AND, tj. F (A, B) = AB (1) Zatem stworzenie bramki AND jest banalnie prostym zadaniem – wystarczy jedynie podłączyć inwerter na wyjściu bramki NAND. Michał Moroz, Paweł Tarasiuk, ćw. EL2 2 / 10 Inwerter jest też bardzo prosty do wykonania za pomocą bramki NAND, można dokonać tego łącząc wszystkie wejścia bramki ze sobą. Zauważamy, że układ ten jest dokładnie taki sam jak w przypadku analizowanej wcześniej bramki NOR. Bramkę OR można osiągnąć za pomocą praw de Morgana, które zostały przedstawione poniżej: A + B = AB (2) A·B =A+B (3) Dzięki tym prawom możemy wyznaczyć wzór funkcji dla bramki OR, który wynosi: A+B =A·B (4) co, na podstawie wzoru (1) możemy osiągnąć za pomocą bramki NAND z odwróconymi obydwoma wejściami. Schemat tej bramki pokazany jest na rysunku 1. IN C IC1D 9 J1 IN D J2 8 74LS06D IC1E 11 10 IC2A 1 3 2 J3 OUT D 74ALS00D 74LS06D Rysunek 1: OR skonstruowany za pomocą bramek NAND i NOT. Identycznie wygląda sprawa dla większej ilości wejść. Tablice Karnaugha operują tylko na negacjach oraz na sumie i iloczynie, więc pozostałe bramki moglibyśmy spokojnie pominąć, jednak metoda, której użyliśmy do stworzenia jednego z układów znacznie się upraszcza, kiedy zdefiniujemy jeszcze bramkę EXOR. Funkcja wyznaczona za pomocą metody Karnaugha dla bramki EXOR wygląda tak: F (A, B) = AB + BA (5) Negację w postaci F (A, B) = AB możemy w trywialny sposób uzyskać za pomocą bramki NAND i inwertera. Spoglądając na opisaną we wzorze (4) funkcję zauważamy, że wejścia bramki NAND w układzie OR muszą być zanegowane. Wiążąc oba fakty ze sobą, bramki NAND rozwiązują nam problem konieczności użycia dodatkowych inwerterów w układzie bramki OR. Określamy końcowy wzór bramki EXOR: F (A, B) = BA · AB (6) co przekłada się na schemat zaprezentowany na rysunku 2. Michał Moroz, Paweł Tarasiuk, ćw. EL2 3 / 10 IN C IC1D 9 IC2A 8 1 74LS06D 2 3 J1 IC3A 1 74ALS00D 3 2 IC4A IN D J2 1 IC1E 11 3 10 J3 OUT D 74ALS00D 2 74LS06D 74ALS00D Rysunek 2: EXOR skonstruowany za pomocą bramek NAND i NOT zrealizowany na przykładowych układach z serii 74xx. 2 Zadania Wszystkie doświadczenia wykonywane były z użyciem zasilacza DF1731SB3A, nr J3–T6– 261/1 oraz układów EL2-02, EL3-03 oraz EL2-01. 2.1 Zadanie 8 Do tego zadania podeszliśmy nieco odmienną metodą, nie korzystając z tablic Karnaugha, zatem najpierw ją opiszemy a potem udowodnimy za pomocą tablic. Do zrealizowania był czterowyjściowy układ sterujący linijką świetlną. Jego możliwe stany wejściowe i wyjściowe zostały opisane w tabeli 1. Tabela 1: Tabela prawdy dla sterownika linijki świetlnej. IN D IN C IN B IN A OUT D OUT C OUT B OUT A 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 1 0 0 1 1 0 1 1 1 0 1 0 0 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 0 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 0 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 0 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 Okazuje się że układ spełnia poniższe wzory: F D(A, B, C, D) = C + D Michał Moroz, Paweł Tarasiuk, ćw. EL2 (7) 4 / 10 F C(A, B, C, D) = C + D + AB = F D(A, B, C, D) + AB (8) F B(A, B, C, D) = C + D + B = F C(A, B, C, D) + B (9) F A(A, B, C, D) = C + D + B + A = F B(A, B, C, D) + A (10) Wzory te można łatwo przekształcić w schemat ideowy, który został przedstawiony na rysunku 3. IC2B IN A 4 J1 6 IC8A 5 3 74LS32D 2 74ALS08D IC3B IN B 4 J6 6 J2 5 OUT B 74LS32D IC7B 4 J7 6 IN C 5 IC1B J3 J5 OUT A 1 4 OUT C 74LS32D 6 J8 5 OUT D IN D 74LS32D J4 Rysunek 3: Schemat ideowy układu z wykorzystaniem bramek AND i OR. Następnie korzystając ze wzoru (4) bardzo prosto przekształcamy układ do postaci pokazanej na rysunku 4. Po raz kolejny zrezygnowaliśmy z inwertera wejściowego bramki IC4D na rzecz negacji w bramce IC4B. IC6A IN A 1 J1 IC4B 2 IC5A 74LS06D 4 IC6F 6 5 13 IC4C 74ALS00D IC6B IN B 3 J2 IC6C 5 74LS06D IC9A IC6D 9 J3 IN D J4 74LS06D IC6E 11 1 8 10 IC4A 2 74LS06D 1 8 10 1 3 2 J5 OUT A 74ALS00D J6 OUT B 6 74ALS00D IC4D IN C 74LS06D 9 4 12 74LS06D 12 11 13 J7 OUT C 74ALS00D 3 2 J8 OUT D 74ALS00D 74LS06D Rysunek 4: Schemat sterownika linijki świetlnej. Brakujące bramki NOT zastąpiliśmy bramkami NAND którym połączono wejścia. Wykorzystując 12 bramek nie było celu użycia żadnej trójwejściowej bramki, cały układ wykonaliśmy na bramkach dwuwejściowych oraz czterech dostępnych inwerterach. Podczas tworzenia schematu układu popełniliśmy błąd który spowodował, że zamiast wejść poszczególnych bramek OR negowaliśmy wyjścia, dzięki czemu układ dawał całkowicie błędne wyniki. Po dokładniejszym przeanalizowaniu schematu udało nam się wykryć błąd i wyeliminować go. Spróbujmy teraz sporządzić układ metodą Karnaugha. Michał Moroz, Paweł Tarasiuk, ćw. EL2 5 / 10 Tabela 2: Tablica Karnaugha dla wyjścia D AB 00 01 11 10 00 0 0 0 0 01 1 1 1 1 CD 11 1 1 1 1 10 1 1 1 1 Tabela 3: Tablica Karnaugha dla wyjścia C AB 00 01 11 10 00 0 0 1 0 01 1 1 1 1 CD 11 1 1 1 1 10 1 1 1 1 Tabela 4: Tablica Karnaugha dla wyjścia B AB 00 01 11 10 00 0 1 1 0 01 1 1 1 1 CD 11 1 1 1 1 10 1 1 1 1 Tabela 5: Tablica Karnaugha dla wyjścia A AB 00 01 11 10 00 0 1 1 1 01 1 1 1 1 CD 11 1 1 1 1 10 1 1 1 1 Wzór (7) jest naturalną konsekwencją tabeli 2. Podobnie jest ze wzorem (8) i tabelą 3 oraz wzorem (10) i tabelą 8. Jeśli chodzi zaś o tabelę 7, może być ona interpretowana wzorem (9), jak i poniższym: F B(A, B, C, D) = C + D + B = F D(A, B, C, D) + B (11) W obecnym układzie nie ma większego znaczenia, czy wykorzystamy F C czy F D, ponieważ obie funkcje w tym przypadku dają spójne wyniki, aczkolwiek korzystając z wzoru (11) moglibyśmy osiągnąć minimalnie mniejsze opóźnienia na wyjściu układu względem jego wejścia. Michał Moroz, Paweł Tarasiuk, ćw. EL2 6 / 10 2.1.1 Wnioski Powyższy układ był prosty do zbudowania i ręcznie i za pomocą map Karnaugha, oba podejścia dawały nieznacznie inne schematy wynikowe. Otrzymany układ zbadany doświadczalnie daje dokładnie takie takie wyniki jak przedstawione w tabeli 1. 3 Zadanie 9 Do otrzymania był układ sumatora jednobitowego wraz z wejściem i wyjściem przeniesienia. Jego tablica prawdy przedstawiona jest w tabeli 6. Tabela 6: Tabela prawdy dla sumatora. CI IN B IN A OUT CO 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 Podczas wykonywania doświadczenia próbowaliśmy doprowadzić układ do działania, ale nie zdążyliśmy – część schematu była nie do końca poprawnie zaprojektowana. Chcieliśmy skorzystać z map Karnaugha do stworzenia poprawnego układu i udało nam się narysować układ na kartce papieru, jednak zabrakło czasu aby go przetestować. Poniżej przedstawione są mapy Karnaugha dla sumatora: Tabela 7: Tablica Karnaugha dla wyjścia OUT AB 00 01 11 10 0 0 1 0 1 C 1 1 0 1 0 Tabela 8: Tablica Karnaugha dla wyjścia CO AB 00 01 11 10 0 0 0 1 0 C 1 0 1 1 1 Ciekawostką jest fakt, że w zależności od wejścia C układ dla wejść A oraz B można przedstawić za pomocą czterech bramek. Dla C = 0 OUT to EXOR po A i B, a CO to AND z A i B. Z kolei dla C = 1 OUT to EXNOR po A i B, a CO to OR z A i B. Zapiszemy to teraz jako wzory wyczytane z tablic Karnaugha: F OU T (A, B, C) = (AB + BA)C + (AB + AB)C Michał Moroz, Paweł Tarasiuk, ćw. EL2 (12) 7 / 10 F CO(A, B, C) = (A + B)C + AB (13) co łatwo można przekształcić w schemat przedstawiony na rysunku 5. IN A IC6A J1 1 3 IN B IC6B 2 4 J2 J5 6 74LS86D 5 CI OUT 74LS86D J3 IC8B IC7A 4 1 6 3 5 IC7B 2 4 74ALS08D J4 6 74LS32D 5 IC8A CO 1 74LS32D 3 2 74ALS08D Rysunek 5: Schemat ideowy sumatora. Po przekształceniu bramek AND, OR oraz EXOR otrzymujemy schemat przedstawiony na rysunku 6. IN A IC4A 1 IC1D 2 12 74AC06D 13 11 J1 IC2C 74ALS00D IC4C 9 8 IC2A IN B 1 IC4B 3 3 4 5 IC2D 6 12 74AC06D 13 10 11 74ALS00D 74ALS00D 2 IC1A 1 J2 74AC06D 3 74ALS00D 2 IC3A 9 OUT 1 IC4D CI 3 8 J3 J5 74ALS00D 2 74AC06D 74ALS00D IC1C IC5B 9 4 8 6 10 5 74ALS00D 74ALS00D IC2B IC1B 4 4 6 6 5 J4 CO 5 74ALS00D 74ALS00D Rysunek 6: Schemat sumatora. Zauważyliśmy, że układ ten da się jeszcze uprościć, ze względu na fakt, że równoważny jest wzór (13) oraz (14). F CO(A, B, C) = (AB + BA)C + AB (14) Możemy zastosować tą metodę ponieważ AB obsługuje nam wypadek który nie jest obsługiwany przez bramkę EXOR. Dzięki temu zamiast bramki OR możemy wykorzystać bramkę EXOR użytą do konstrukcji układu dla OUT. Schemat ideowy tego układu znajduje się na rysunku 7, a po niezbędnych przekształceniach końcowy schemat znajduje się na rysunku 8. Michał Moroz, Paweł Tarasiuk, ćw. EL2 8 / 10 IN A IC6A J1 1 3 IN B 2 J2 IC6B 4 74LS86D J5 6 CI 5 J3 OUT 74LS86D IC8B 4 6 5 IC8A IC7B 4 74ALS08D 1 J4 6 3 5 CO 2 74LS32D 74ALS08D Rysunek 7: Schemat ideowy sumatora – zoptymalizowany. IN A IC4A 1 IC1D 2 12 74AC06D 13 11 J1 IC2C 74ALS00D IC4C 9 8 IC2A IN B 1 IC4B 3 3 4 5 IC2D 6 12 74AC06D 13 10 11 74ALS00D 74ALS00D 2 IC1A 1 J2 74AC06D 3 74ALS00D 2 IC3A 9 OUT 1 IC4D CI 3 8 J3 J5 74ALS00D 2 74AC06D 74ALS00D IC1C 9 8 10 74ALS00D IC1B IC2B 4 4 6 6 5 J4 CO 5 74ALS00D 74ALS00D Rysunek 8: Schemat końcowy sumatora – zoptymalizowany. 3.1 Wnioski Wykorzystując symulator załączony razem z niniejszym sprawozdaniem, przetestowaliśmy nasz układ. Otrzymane wyniki są identyczne z tablicą prawdy znajdującą się w tabeli 6. 4 Wnioski końcowe Oba układy okazały się bardzo podatne na budowę metodą Karnaugha. Drugi ze skonstruowanych układów tą metodą okazał się jednak być nieoptymalnym i wymagał dalszej analizy. Żródłami błędów w ćwiczeniu (poza błędem studenta) mogły być niestykające połączenia i uszkodzone kable połączeniowe – jednak przy odrobinie uwagi i uprzednim sprawdzaniu połączeń można byłoby wyeliminować, przynajmniej częściowo, to zagrożenie. Zastosowanie symulatora całkowicie wyklucza błąd w połączeniach oraz funkcjonowaniu bramek – zatem pozwala na sprawdzenie, czy badany układ ma nieprawidłową konstrukcję, czy też problem wynikał z niedoskonałości użytych urządzeń. Michał Moroz, Paweł Tarasiuk, ćw. EL2 9 / 10 Literatura [1] Bogdan Żółtowski, Wprowadzenie do zajęć laboratoryjnych z fizyki, Skrypt Politechniki Łódzkiej, Łódź 2002. [2] David Halliday, Robert Resnick, Jearl Walker, Podstawy fizyki, Tom 3., Wydawnictwo Naukowe PWN, Warszawa 2005. Michał Moroz, Paweł Tarasiuk, ćw. EL2 10 / 10