1
Mateusz Macięga
Informatyka
Grupa 11
Laboratorium Technik Cyfrowych
nr 3
Funkcja logiczna może być w ogólnym przypadku przedstawiona za pomocą wielu
różnych mniej lub bardziej skomplikowanych funkcji logicznych. Zagadnienie
minimalizacji polega na wyznaczeniu dla danej funkcji tej formuły, która jest
najprostsza. Zagadnienie to formułuje się też inaczej – dla danej funkcji logicznej
należy wyznaczyć możliwą najprostszą funkcję równoważną.
Minimalizacja funkcji logicznej wiąże się z porównaniem stopnia skomplikowania
funkcji.
Metody minimalizacji funkcji logicznych można podzielić na dwie grupy. Do pierwszej
grupy należą metody przekształceń algebraicznych. Metody te nie są zbyt przydatne w
praktyce. Do drugiej grupy należą metody algorytmiczne.
Podstawową rzeczą jest stworzenie tabeli prawdy, z której korzystamy niezależnie od
wybranego przez nas sposobu.
Układy cyfrowe to rodzaj układów elektronicznych, w których sygnały napięciowe
przyjmują tylko określoną liczbę poziomów, którym przypisywane są wartości
liczbowe. Najczęściej (choć nie zawsze) liczba poziomów napięć jest równa dwa, a
poziomom przypisywane są cyfry 0 i 1, wówczas układy cyfrowe realizują operacje
zgodnie z algebrą Boole’a i z tego powodu nazywane są też układami logicznymi.
Obecnie układy cyfrowe budowane są w oparciu o bramki logiczne realizujące
elementarne operacje znane z algebry Boola: iloczyn logiczny (AND, NAND), sumę
logiczną (OR, NOR), negację NOT, różnicę symetryczną (XOR) itp. Ze względu na
stopień skomplikowania współczesnych układów wykonuje się je w postaci układów
scalonych.
Bramka logiczna 9 element konstrukcyjny maszyn i mechanizmów (dziś zazwyczaj:
układ scalony, choć podobne funkcje można zrealizować również za pomocą innych
rozwiązań technicznych, np. hydrauliki czy pneumatyki), realizujący fizycznie pewną
prostą funkcję logiczną, której argumenty (zmienne logiczne) oraz sama funkcja mogą
przybierać jedną z dwóch wartości, np. 0 lub 1 (zob. algebra Boole’a).
Podstawowymi elementami logicznymi, stosowanymi powszechnie w budowie układów
logicznych, są elementy realizujące funkcje logiczne: sumy (alternatywy), iloczynu
(koniunkcji) i negacji. Są to odpowiednio bramki OR, AND i NOT. Za pomocą dwóch
takich bramek (np. OR i NOT lub AND i NOT) można zbudować układ, realizujący
dowolną funkcję logiczną.
Bramki NAND (negacja koniunkcji), oraz NOR (negacja sumy logicznej) nazywa się
funkcjonalnie pełnymi ponieważ przy ich użyciu (tzn. samych NAND lub samych NOR)
można zbudować układ realizujący dowolną funkcję logiczną.
Dowolną bramkę logiczną można też skonstruować za pomocą pary bramek, np. za
pomocą OR i NOT lub AND i NOT. Układy takie nazywamy układami zupełnymi.
Bramkę logiczną XOR często wykorzystujemy w układach arytmetyki takich jak
sumatory czy subtraktory.
2
1.
Zagadnienie
Zadaniem w tym ćwiczeniu jest sporządzenie układu logicznego obsługującego
poniższy schemat:
Założenia:
9 X
1
, X
2
, X
3
oznaczają czujniki, które informują układ czy dana temperatura została
osiągnięta
9 G
1
, G
2
to są grzałki, które uruchamiają się jeśli zostanie osiągnięta odpowiednia dla
nich temperatura,
9 przyjąłem, że czujnik X
1
(dla pozostałych tak samo) emituje „1” jeśli temperatura
osiągnie lub będzie większa od T
1
,
9 grzałki uruchamiają się gdy otrzymają sygnał „1”, a wyłączają przy sygnale „0”,
9 moc grzewcza G
1
jest większa od G
2
.
2.
Analiza schematu
W przypadku zadań 3 i 4 mamy zbudować układ logiczny na podstawie tabeli prawdy.
W zadaniu 4 należy zminimalizować układ kombinacyjny wg. tabeli Karnaugha. W
zadaniu 6 musimy zbudować układ logiczny odporny na awarie. Przyjąć założenie, że
może być uszkodzony jeden czujnik i pokazywać wtedy trwale stan „0” albo „1”.Należy
przeanalizować ponownie tabelę prawdy i w niejasnych sytuacjach wpisać wartość „0”
lub „1”. Awarię jednego z czujników rozpoznamy wtedy, gdy czujnik wyższej
temperatury pokazuje, że temperatura została osiągnięta, a czujnik niższej pokazuje,
że ta nie została osiągnięta. Nie jesteśmy jednak w stanie rozpoznać czy czujnik X
3
uległ awarii i zwraca stale wartość „0”. Przyjmuje, że maksymalnie jeden czujnik może
ulec awarii a także że w przypadku niejednoznacznym ważniejsze jest by nie
przekroczyć mocy grzewczej układu.
X
1
X
2
X
3
G
1
G
2
0 0 0 1 1
0 0 1 1 0
0 1 1 0 1
1 1 1 0 0
3
Zbudować wariant nieoptymalny (wg tabeli prawdy).
Wariant nieoptymalny wg tabeli prawdy:
G
1
= (~X
1
AND ~X
2
AND ~X
3
) OR (~X
1
AND ~X
2
AND ~X
3
) OR (X
1
AND ~X
2
AND ~X
3
)
OR (~X
1
AND ~X
2
AND ~X
3
)
G
2
= (~X
1
AND ~X
2
AND ~X
3
) OR (X
1
AND X
2
AND ~X
3
) OR (~X
1
AND X
2
AND X
3
)
OR (~X
1
AND ~ X
2
AND ~X
3
)
Tabela prawdy dla G
1
:
X
1
X
2
X
3
~X
1
~X
2
~X
3
~X
1
* ~X
2
* ~X
3
~X1 * ~X2 * ~X3 X1 * ~X2 * ~X3 CAŁOŚĆ
0 0 0
1
1
1
1
0
0
1
0 0 1
1
1
0
0
1
0
1
0 1 1
1
0
0
0
0
0
0
1 1 1
0
0
0
0
0
0
0
Tabela prawdy dla G
2
:
X
1
X
2
X
3
~X
1
~X
2
~X
3
~X
1
* ~X
2
* ~X
3
X1 * X2 * ~X3 ~X1 * X2 * X3 CAŁOŚĆ
0 0 0
1
1
1
1
0
0
1
0 0 1
1
1
0
0
0
0
0
0 1 1
1
0
0
0
0
1
1
1 1 1
0
0
0
0
0
0
0
4
3.
Zbudować wariant minimalny najprostszy układ kombinacyjny (wg tabeli
Karnaugha).
Metoda tabeli Karnaugha – grzałka G
1
.
Grupuję jedynkami. Nie zmienia się X
2
, jego wartość to „0”. Otrzymujemy następujący
wynik po zastosowaniu metody tabeli Karnahugha.
G
1
= ~X
2
Metoda tabeli Karnaugha – grzałka G
2
.
Grupuję jedynkami. Otrzymuję dwie grupy. W pierwszej grupie (czerwonej) nie
zmienia się X
1
, jego wartość to „0” oraz X
2
, jego wartość to „1”. W drugiej grupie
(niebieskiej) nie zmienia się X
3
, jego wartość to „0”. Otrzymujemy następujący wynik
po zastosowaniu metody tabeli Karnahugha.
G
2
= (~X
1
AND X
2
) OR ~X
3
Uwzględniając zminimalizowane funkcje dla grzałek otrzymuję następujący schemat
logiczny:
X
1
\ X
2
X
3
00 01 11 10
0
1
1
0
x
1
x
x
0
x
X
1
\ X
2
X
3
00 01 11 10
0
1
0
1
x
1
x
x
0
x
5
Tabela prawdy dla zminializowanej funkcji grzałki G
2
.
X
1
X
2
X
3
~X
1
~X
3
~ X
1
AND X
2
(~X
1
AND X
2
) OR ~ X
3
0 0 0
1
1
0
1
0 0 1
1
0
0
0
0 1 1
1
0
1
1
1 1 1
0
0
0
0
6. Zbudować układ uwzględniający możliwość awarii czujników.
Zbudujemy teraz układ odporny na awarię termometru. Awaria występuje wtedy kiedy
czujnik wyższej temperatury odnotowuje, że temperatura została osiągnięta a czujnik
niższej temperatury nie odnotowuje. Możliwe kombinacje trzech czujników.
X
1
X
2
X
3
WYNIK
0 0 0 DZIAŁA
0 0 1 DZIAŁA
0 1 0
AWARIA
0 1 1 DZIAŁA
1 0 0
AWARIA
1 0 1
AWARIA
1 1 0
AWARIA
1 1 1 DZIAŁA
Minimalizacja układu metodą tabeli Karnaugha.
Otrzymujemy dwie grupy. W pierwszej grupie (czerwonej) nie zmienia się X
2
, ma
wartość „1” oraz X
3
i ma wartość „0”. W drugiej grupie (niebieskiej) nie zmienia się X
1
,
ma wartość „1” oraz X
2
i ma wartość „0”.
Wynik po minimalizacji: (X
2
AND ~X
3
) OR (X
1
AND ~X
2
)
X
1
\ X
2
X
3
00 01 11 10
0
0
0
0
1
1
0
1
1
1
6
Tabela prawdy dla układu czułego na awarię:
X
1
X
2
X
3
~X
2
~X
3
X2 AND ~X3 X1 AND ~X2 (X2 AND ~X3) OR (X1 AND ~X2)
0 0 0
1
1
0
0
0
0 0 1
1
0
0
0
0
0 1 0
0
1
1
0
1
AWARIA
0 1 1
0
0
0
0
0
1 0 0
1
1
0
1
1
AWARIA
1 0 1
1
0
0
1
1
AWARIA
1 1 0
0
1
1
0
1
AWARIA
1 1 1
0
0
0
0
0
Jest jednak pewna wada powyższego układu jeśli zepsuje się czujnik X
3
to grzejnik G
2
będzie cały czas grzał. Aby zapobiec takiej sytuacji zmodyfikowałem schemat w taki
sposób, że połączyłem wyjście alarmowe z czujnikami i w momencie zaistnienia awarii
automatycznie wyłączane są oba czujniki.
7
Wnioski:
Przy użyciu bramek logicznych udało nam się zbudować układ kontroli grzejników ze
względu na daną temperaturę. Bezpośrednio z tabeli prawdy uzyskaliśmy
skomplikowany schemat. Po minimalizacji funkcji logicznych metodą tabeli Karnaugha
udało nam się znacznie mniejszych ilość użytych bramek logicznych.
Udało mi się również stworzyć układ odporny na awarię. Niestety nie jestem w stanie
zbudować schematu odpornego na awarię czujnika X
3
, ponieważ nie da się stworzyć
takiej kontroli na wejściu.