Laboratorium elektroniki i miernictwa Ćwiczenie EL3
Transkrypt
Laboratorium elektroniki i miernictwa Ćwiczenie EL3
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 EL3 Realizacja logicznych układów kombinacyjnych z bramek NOR Ocena: Streszczenie Sprawozdanie z ćwiczenia, którego celem było udowodnienie tautologii oraz zbudowanie układów logicznych za pomocą bramek NOR. 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 NOR i realizacja innych bramek za jej pomocą Bramka NOR jest odwróceniem bramki OR, tj. F (A, B) = A + B (1) Zatem stworzenie bramki OR jest banalnie prostym zadaniem – wystarczy jedynie podłączyć inwerter na wyjściu bramki NOR. Michał Moroz, Paweł Tarasiuk, ćw. EL3 2 / 10 Inwerter jest też bardzo prosty do wykonania za pomocą bramki NOR, można dokonać tego łącząc wszystkie wejścia bramki ze sobą. Bramkę AND 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 AND, który wynosi: AB = A + B (4) co, na podstawie wzoru (1) możemy osiągnąć za pomocą bramki NOR z odwróconymi obydwoma wejściami. 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) Korzystając z praw de Morgana wyznaczamy: AB = A + B (6) i określamy końcowy wzór bramki EXOR: F (A, B) = B + A + A + B (7) co przekłada się na schemat zaprezentowany na rysunku 1. IN A IC2A 1 J3 2 74AC04D IC1A 2 1 IC1C 3 IC2C 8 10 74ALS02D 5 6 9 IC1B J1 OUT 74AC04D 5 4 74ALS02D 6 IN B J2 IC2B 3 4 74ALS02D 74AC04D Rysunek 1: EXOR skonstruowany za pomocą bramek NOR 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– 210–1 oraz układów EL3-02 oraz ZSL-01. Michał Moroz, Paweł Tarasiuk, ćw. EL3 3 / 10 2.1 Sprawdzanie prawa de Morgana Wyprowadziliśmy w równaniu (4) wzór na bramkę AND, który odpowiada schematowi przedstawionemu na rysunku 2. IC2A IN A 1 J3 2 74AC04D IC1A 2 1 3 IC2B IN B 3 J2 4 J1 OUT 74ALS02D 74AC04D Rysunek 2: AND skonstruowany za pomocą bramek NOR i NOT. Na podstawie tego schematu zbudowaliśmy układ zastępczy bramki AND i sprawdziliśmy jego stany. Jego tabela prawdy znajduje się w tabeli 1. Tabela 1: Tabela prawdy dla zastępczego układu AND. IN A IN B OUT 0 0 0 0 1 0 1 0 0 1 1 1 2.1.1 Wnioski Tabela prawdy zbadanego układu pokrywa się z tabelą prawdy bramki AND, z czego wynika prawdziwość prawa de Morgana dla iloczynu. Zaprezentowany układ jest najprostszą możliwą realizacją bramki AND. 2.2 Zadanie 10 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ł układ inkrementatora szesnastkowego bez wyjścia i wejścia przeniesienia. Jego możliwe stany wejściowe i wyjściowe zostały opisane w tabeli 2. Michał Moroz, Paweł Tarasiuk, ćw. EL3 4 / 10 IN A 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 Tabela 2: Tabela prawdy dla inkrementatora. IN B IN C IN D OUT A OUT B OUT C 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 1 0 1 1 0 1 0 1 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 1 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 0 OUT D 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 OUT D J1 OUT C J2 VCC OUT IN D J6 CI IN CO J5 CI IN CO OUT U1 INC IN C IN CI J7 J8 IN A CO IN B CI IN CO U2 INC OUT U3 INC OUT U4 INC OUT B J3 OUT A J4 Zauważyliśmy, że układ ten można rozłożyć na cztery jednakowe inkrementatory binarne z wejściem i wyjściem przeniesienia tak jak zostało to przedstawione na rysunku 3. Rysunek 3: Schemat blokowy układu. Przyjrzyjmy się pojedynczemu blokowi nazwanemu INC. Rozpatrujemy układ, który posiada następującą tabelę prawdy: Tabela 3: Tabela prawdy dla układu INC. CI IN OUT CO 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 Wystarczy szybki rzut oka na powyższą tabelę aby zauważyć, że wyjście OUT zachowuje się jak wyjście bramki EXOR o wejściach w CI oraz IN, a CO zachowuje się jak AND o wejściach Michał Moroz, Paweł Tarasiuk, ćw. EL3 5 / 10 CI oraz IN. Zatem wystarczy połączyć obie bramki ze sobą, aby uzyskać układ INC. Schemat tego układu został zaprezentowany na rysunku 4. CI IC2A 1 J3 2 74AC04D IC1A 2 1 IC1C 3 IC2C 8 10 74ALS02D 5 6 9 IC1B J1 OUT 74AC04D 5 74ALS02D 4 6 IN J2 IC2B 3 4 74ALS02D 74AC04D IC1D 11 13 12 J4 CO 74ALS02D Rysunek 4: Schemat pojedynczego układu INC. Jeśli wejście CI pierwszego układu podłączymy na stałe do VCC, okazuje się, że układ minimalizuje się nam do pojedynczego inwertera dla wyjścia OUT i do wejścia IN dla wyjścia CO, z czego skorzystamy w końcowym schemacie: Tabela 4: Tabela prawdy dla układu INC z CI ustawionym na VCC. CI IN OUT CO 1 0 1 0 1 1 0 1 Podobnie, nie korzystając z wyjścia CO ostatniego układu INC, możemy z końcowego schematu usunąć bramkę IC1D przy ostatnim układzie INC. Uwzględniając powyższe modyfikacje otrzymujemy schemat przedstawiony na rysunku 5. Michał Moroz, Paweł Tarasiuk, ćw. EL3 6 / 10 IC4A IN D 1 J3 2 J7 74AC04D OUT D IC3A 2 1 IC3C 3 IC4C 8 10 74ALS02D 5 6 9 IC3B J5 OUT C 74AC04D 5 74ALS02D 4 6 IC4B IN C 3 74ALS02D 4 J6 74AC04D 74ALS02D 12 13 11 IC3D IC2A 1 2 74AC04D IC1A 2 1 IC1C 3 IC2C 8 10 74ALS02D 5 6 9 IC1B J1 OUT B 74AC04D 5 74ALS02D 4 6 IC2B IN B 3 74ALS02D 4 J2 74AC04D 74ALS02D 12 13 11 IC1D IC6A 1 2 74AC04D IC5A 2 1 IC5C 3 IC6C 8 10 74ALS02D 5 6 9 IC5B J9 OUT A 74AC04D 5 4 74ALS02D 6 IN A J10 IC6B 3 4 74ALS02D 74AC04D Rysunek 5: Schemat inkrementatora. Brakujące bramki NOT zastąpiliśmy bramkami NOR którym połączono wejścia. W podobny sposób zastąpiliśmy brakujące dwuwejściowe bramki NOR trójwejściowymi tak, aby zmieścić się w limicie 20 bramek (4xNOT, 8xNOR dwuwejściowa, 8xNOR trzywejściowa). Otrzymaliśmy układ który ma identyczną tablicę prawdy z tą przedstawioną w tabeli 2. Podczas rysowania schematu układu popełniliśmy błąd który spowodował nieprawidłowe stany na wyjściu A. Sprawdzając doświadczalnie działanie wyjść B, C oraz D, nie znaleźliśmy w nich żadnych problemów, dzięki czemu mogliśmy zawęzić miejsce występowania problemu do ok. 6 bramek. Po przetestowaniu połączeń pomiędzy nimi, sprawdziliśmy jeszcze raz schemat i odkryliśmy tam nieprawidłowe połączenie – bramka IC5A była podłączona do wyjścia IC6B a nie do jego wejścia. Po zastosowaniu odpowiedniej poprawki układ zaczął działać poprawnie. Spróbujmy teraz sporządzić układ metodą Karnaugha. Michał Moroz, Paweł Tarasiuk, ćw. EL3 7 / 10 Tabela 5: Tablica Karnaugha dla wyjścia D AB 00 01 11 10 00 1 1 1 1 01 0 0 0 0 CD 11 0 0 0 0 10 1 1 1 1 Tabela 6: Tablica Karnaugha dla wyjścia C AB 00 01 11 10 00 0 0 0 0 01 1 1 1 1 CD 11 0 0 0 0 10 1 1 1 1 Tabela 7: Tablica Karnaugha dla wyjścia B AB 00 01 11 10 00 0 1 1 0 01 0 1 1 0 CD 11 1 0 0 1 10 0 1 1 0 Tabela 8: Tablica Karnaugha dla wyjścia A AB 00 01 11 10 00 0 0 1 1 01 0 0 1 1 CD 11 0 1 0 1 10 0 0 1 1 Poszczególne funkcje reprezentują minimalne funkcje wyczytane z tablic. Dla uproszczenia będziemy się posługiwać indeksami macierzowymi tablicy, od a11 do a44 . F D(A, B, C, D) = D (8) gdzie pierwszy wyraz to pierwszy i czwarty wiersz tabeli 5. F C(A, B, C, D) = CD + CD (9) gdzie pierwszy wyraz to drugi wiersz tabeli 6 a drugi wyraz to czwarty wiersz tej tabeli. F B(A, B, C, D) = BC + BD + BCD Michał Moroz, Paweł Tarasiuk, ćw. EL3 (10) 8 / 10 gdzie pierwszy wyraz to kwadrat a12 – a23 tabeli 7, drugi wyraz to kwadrat złożony z a12 – a13 oraz a42 i a43 , a trzeci wyraz to prostokąt a31 i a34 . F A(A, B, C, D) = AB + AC + AD + ABCD (11) gdzie pierwszy wyraz to czwarta kolumna tabeli 8, drugi wyraz to kwadrat a13 – a24 , trzeci wyraz to kwadrat a13 – a14 oraz a43 – a44 , a czwarty wyraz to a32 . Otrzymujemy układ analogiczny, ale nietrywialny do minimalizacji ze względu na brak jawnych zależności pomiędzy konkretnymi funkcjami. Wcale nie jest prosto wpaść na taką definicję funkcji A, aby zawierała w sobie wywołania funkcji lub podfunkcji B, C, oraz D. Niejasne jest także istnienie wyjścia przeniesienia. Schemat będący dokładną kalką tych czterech funkcji prezentuje się na rysunku 6. IC6A IN D 1 J1 2 OUT D J5 74AC04D IC1A 1 3 IC5B 2 4 5 IC1B 4 IC6B IN C 3 J2 6 74ALS08D OUT C 74LS32D 6 5 4 74ALS08D J6 IC1C 8 74ALS08D 9 10 74AC04D IC1D 12 11 13 74ALS08D IC2A IC6C IN B 5 IC4A 1 1 6 3 2 J7 IC5A 3 2 1 3 74AC04D 74ALS08D 2 74LS32D IC2B J3 OUT B 74LS32D 4 6 5 IC2C 8 74ALS08D 9 10 74ALS08D IC2D 12 11 13 IC4B 74ALS08D 4 IC3A 5 6 IC4D 1 3 2 IC6D IN A 9 J8 74AC04D 11 13 IC4C 74ALS08D 8 12 74LS32D 9 IC3B 8 4 J4 OUT A 74LS32D 10 6 5 74LS32D 74ALS08D IC3C 9 8 10 74ALS08D Rysunek 6: Schemat układu wyznaczonego z tablic Karnaugha. 2.2.1 Wnioski Mimo że każda z pojedynczych funkcji wyznaczonych metodą Karnaugha jest zminimalizowana, to ich połączenie nie jest, co prowadzi do konieczności dalszego minimalizowania funkMichał Moroz, Paweł Tarasiuk, ćw. EL3 9 / 10 cji, które nie jest prostym zadaniem. Porównując obydwa podejścia okazuje się, że rozdzielanie skomplikowanego układu na czynniki pierwsze okazało się być trafionym pomysłem, a brutalne korzystanie z tablic Karnaugha nie poskutkowało. 3 Wnioski końcowe Metoda Karnaugha okazała się problematyczną dla układów kombinacyjnych z kilkoma wyjściami. Korzystanie z niej znacząco upraszcza tworzenie prostych, podstawowych układów, jednak może prowadzić do nadmiernie skomplikowanych układów podczas prób łączenia poszczególnych funkcji w większe całości. Ż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. 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. EL3 10 / 10