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