Elementy i układy logiczne
Cel ćwiczenia
Celem ćwiczenia jest zapoznanie z podstawowymi elementami logicznymi i doświadczalne sprawdzenie podstawowych twierdzeń algebry logiki. Poznanie metod syntezy i analizy jedno- i wielowyjściowych układów kombinacyjnych oraz sposobów ich realizacji przy zastosowaniu bezstykowych elementów logicznych.
Przygotowanie
Powtórzyć materiał dotyczący działań w układzie binarnym. Elementy logiczne. Algebra Boole'a. Synteza i analiza układów logicznych.
Przykładowe pytania kontrolne
Podać etapy projektowania układu logicznego
Napisać i omówić reguły sklejania
Narysować tablice Karnaugha dla 3 i 4 zmiennych
Podać różnicę między układami kombinacyjnymi a sekwencyjnymi
Podać tabele wartości dwuargumentowych funkcj i: OR, AHD, NOR, WAND.
Narysować symbole graficzne funkcji: NOT, OR, AHD, NOR, NAND.
Wymienić podstawowe prawa algebry Boole'a.
Które prawa algebry Boole'a dotyczące alternatywy i koniunkeji różnią się od praw arytmetyki dotyczących odpowiednio dodawania i mnożenia (które prawa są takie same)?
Napisać postać kanoniczną alternatywną i koniunkcyjną dla funkcji trzech argumentów.
Wprowadzenie
W procesach przemysłowych często nie jest konieczny analogowy pomiar wartości parametru, lecz jedynie rozpoznanie osiągnięcia (lub nie) jego zadanej wartości. (Parametrem tym może być na przykład: temperatura, poziom cieczy, przepływ, ciśnienie). Sterowanie urządzeniami wykonawczymi, takimi jak silniki, elektromagnesy czy elementy sygnalizacyjne, odbywa się wówczas w sposób dwustanowy, przez podanie lub niepodanie sygnału sterującego (włączenie-wyłączenie). Występuje więc sytuacja, w której zarówno czujniki, jak i elementy wykonawcze operują na sygnałach mogących przyjmować jedynie dwie wartości. Do opisu działania takich układów stosuje się algebrę Boole'a, a w obrębie niej funkcje Boole'a (funkcje logiczne).
Logiczne układy kombinacyjne
Układy logiczne można podzielić na kombinacyjne i sekwencyjne. Układy kombinacyjne to takie, których wartości wyjścia zależą jednoznacznie od aktualnego stanu wejść. Oznacza to, że stany wyjść są w pełni określone stanem wejść. W układach sekwencyjnych zasada ta nie jest spełniona i wyjście zależy również - ogólnie mówiąc - od historii układu. Metody projektowania układów sekwencyjnych i kombinacyjnych są nieco odmienne.
Układ sterowania logicznego (podobnie jak układ sterowania ciągłego) składa się z trzech funkcjonalnych elementów i bloków. Są to:
czujniki, dzięki którym uzyskuje się informację o stanie urządzeń i procesu,
część centralna, decydująca o sposobie działania układu (odpowiednik regulatora) - układ kombinacyjny lub sekwencyjny,
elementy wykonawcze, sygnalizacyjne i wzmacniające oraz oddziałujące na obiekt przez włączanie i wyłączanie urządzeń.
Elementami wykonawczymi układów logicznych mogą być wszystkie urządzenia sterowane dwustanowe, a więc: urządzenia z napędem elektromagnetycznym, elementy sygnalizacji optycznej i akustycznej, przekaźniki, a także silniki stałoprędkościowe (również nawrotne).
Sygnały sterujące urządzeniami wykonawczymi muszą mieć odpowiedni charakter fizyczny i moc, dlatego też na ogół istnieje konieczność wzmocnienia sygnałów wychodzących z centralnej części układu logicznego. Rolę wzmacniaczy pełnią często przekaźniki.
Podstawy algebry Boole'a
Algebra Boole'a jest "narzędziem" matematycznym służącym m.in. do opisu, analizy i syntezy układów logicznych. Stanowi ona uogólnienie rachunku zdań i algebry zbiorów uznając jedno i drugie tylko za szczególne przypadki ogólniejszej teorii. Dla zdefiniowania każdej algebry potrzebne jest określenie pewnego zbioru, działań w tym zbiorze (operacji), elementów wyróżnionych w tym zbiorze oraz zespołu aksjomatów i twierdzeń.
Binarną algebrę Bool'a tworzą:
zbiór dwuelementowy {0,1}
wyróżnione elementy tego zbioru - 0 i 1 - (czyli oba są wyróżnione)
dwa działania (operacje, funktory) - suma logiczna (+) oraz iloczyn logiczny (*)
zestaw aksjomatów 1-5 oraz 1'-5'
wynikający z aksjomatów zestaw twierdzeń 1 - 7 oraz 1' - 7' i 8
Aksjomaty:
|
|
Aksjomaty dualne:
|
|
Twierdzenia:
|
|
|
Twierdzenia dualne:
|
Twierdzenia:
nr 1 - Prawo łączności
nr 2 - Prawo pochłaniania
nr.6 to bardzo przydatne Prawo de Morgana (dopełnienia)
Aksjomaty dualne tworzy się poprzez zamianę w aksjomatach 1-5 '0' na '1', '1' na '0', oraz znaku 'mnożenia' na 'dodawanie'.
Związek algebry Boole'a z rachunkiem zdań i algebrą zbiorów:
Prawa algebry Boole'a:
Prawa przemienności
x1+x2=x2+x1
x1 x2=x2 x1
Prawo rozdzielności
(x1+x2) x3=x1 x3+x2 x3
(x1 x2)+x3=(x1+x3) (x2+x3)
Prawo powtórzenia
x+x=x
x x=x
Reguła sklejeń
Minimalizacja funkcji boolowskich
Funkcja przełączająca - zadana za pomocą tablic zależności, wykresów działania czy też opisu słownego - może być stosunkowo łatwo zapisana w postaci kanonicznej. Okazuje się jednak, że przydatność praktyczna (do budowy układu logicznego) tej postaci jest z reguły niewielka i że często istnieją inne, równoważne, a znacznie prostsze pod względem zapisu postacie funkcji. Optymalna postać funkcji zależy w dużym stopniu od elementów, z jakich chcemy zbudować układ, ale w procesie optymalizacji zapisu istnieje etap wspólny dla różnych realizacji, zwany minimalizacją funkcji. Polega on na poszukiwaniu takiej postaci funkcji przełączającej, w której występuje minimalna liczba liter (tzn. zmiennych lub ich negacji). Wszystkie metody minimalizacji wykorzystują tzw. reguły sklejania.
Reguły te można wyrazić następująco: suma lub iloczyn dwóch wyrażeń różniących się między sobą tylko negacją jednej zmiennej mogą być znacznie uproszczone przez odrzucenie tej zmiennej.
Rezultatem sklejania są wyrażenia, które nie są już postaciami kanonicznymi, ale zachowują postać sumy iloczynów oraz iloczynu sum, Wyrażenia tego typu przyjęto nazywać postacią normalną (zminimalizowaną) sumy i postacią normalną (zminimalizowaną) iloczynu.
Kanoniczna postać sumy -KPS- (iloczynu -KPI-) jest jedynie przejściową formą zapisu funkcji boolowskiej. Ze względów czysto technicznych wskazane jest otrzymanie takiej postaci formuły boolowskiej, aby zawierała możliwie jak najmniejszą liczbę składników sumy, o jak najmniejszej liczbie czynników tworzących dany składnik (KPS). Dla KPI postępujemy analogicznie - tzn. możliwie jak najmniejszą liczbę czynników iloczynu o jak najmniejszej liczbie składników, tworzących dany czynnik.
1. Metoda przekształceń formalnych algebraicznych:
gdzie zapis KPS bądź KPI poddaje się przekształceniom zgodnym z aksjomatami i twierdzeniami algebry Boole'a.
Przykład :
Grupowanie składników, wyłączanie przed nawias części wspólnych :
Na mocy aksjomatu 5:
otrzymujemy :
Z kolei na mocy dualnego aksjomatu 4' możemy zapisać:
Otrzymaliśmy zatem formułę dwuskładnikową o dwóch czynnikach każdy, podczas gdy pierwotna miała cztery składniki o trzech czynnikach każdy.
Gdyby założyć, że mamy do dyspozycji w realizacji technicznej elementy wykonujące operację sumy, iloczynu i negacji, wówczas oczywiście realizacja techniczna formuły uproszczonej byłaby tańsza, jeśliby przyjąć, że cena układu zależy od liczby elementów, jak i liczby połączeń między nimi.
Zastosowanie przedstawionego sposobu minimalizacji dla funkcji wielu zmiennych Jest bardzo uciążliwe i dlatego stosuje się wówczas inne metody.
Metoda tablic Karnaugha ułatwia sklejanie dzięki takiemu usytuowaniu na płaszczyźnie wyrażeń postaci kanonicznej, aby wyrażenia sąsiednie, podlegające sklejaniu, były umieszczone blisko siebie. Budowę tablic dla trzech, czterech i pięciu zmiennych przedstawiono na rysunkach. Do poszczególnych kratek tablic wpisano odpowiednie liczby, aby ułatwić ich wypełnienie, gdy funkcja jest zadana w postaci dziesiętnej.
2. Algorytmiczna metoda siatek Karnaugha:
W algorytmicznej metodzie siatek Karnaugha stosuje się tzw. regułę sklejania :
gdzie A jest dowolną formułą boolowską
Reguła sklejania pozwala dla dwóch iloczynowych członów różniących się negacją zmiennej x, wyrugować tę zmienną jako nieistotną. Sklejane człony można nazwać sąsiednimi. Zasadniczą trudnością w procesie sklejania jest wyszukanie sąsiednich członów, inaczej mówiąc - znalezienie jedynek(zer) sąsiednich, ponieważ dany składnik reprezentuje zawsze jakąś jedynkę(zero) funkcji. W metodzie siatek Karnaugha problem sąsiedztwa jest rozwiązywany przez odpowiednie narysowanie tabeli prawdy, zwanych tutaj siatkami Karnaugha. Są one skonstruowane tak, że różniącym się tylko o negację jednej zmiennej pełnym iloczynom (sumom) przyporządkowuje się leżące obok siebie pola siatki, w które wpisuje się wartości funkcji. Każdemu wierszowi zwykłej tabeli prawdy odpowiada tu jedna kratka w siatce Karnaugha. Efekt "sąsiedztwa" jest tu zapewniony dzięki odpowiedniemu opisaniu wierszy i kolumn siatki kodem Gray'a.
Podstawową własnością siatek Karnaugha jest prosta identyfikacja iloczynów (sum) , które podlegają sklejaniu, bowiem jedynkom(zerom) w kratkach przylegających do siebie bokami lub symetrycznie względem dowolnej zaznaczonej osi symetrii odpowiadają sąsiednie składniki KPS (czynniki KPI).
Siatka Karnaugha dla 2 zmiennych:
Siatka Karnaugha dla 3 zmiennych:
Siatka Karnaugha dla 4 zmiennych:
Poszczególnym kratkom siatki można przypisać dziesiętne odpowiedniki binarnym słowom opisującym tę kratkę. Oczywiście istnieje pełna dowolność w podziale zmiennych na te, które opisują kolumny i te, które opisują wiersze. Pamiętać jednak trzeba, że wówczas zmieniają się liczby dziesiętne opisujące kratki, bowiem jest to konsekwencja zmiany kolejności bitów w słowie, np. z (x1 x2 x3 x4 x5) na (x5 x4 x3 x2 x1).
Przykłady tworzenia grup sąsiednich kratek w siatce Karnaugha dla trzech zmiennych.
Wyszukując grupy sąsiednie w sensie reguły sklejania należy pamiętać o sąsiedztwie prawej i lewej krawędzi siatek oraz górnej i dolnej krawędzi. Z tego powodu godnym uwagi jest poniższy rysunek :
Ten sposób jest bardzo często pomijany przy tworzeniu grup jedynek Inne przykłady tworzenia grup sąsiednich kratek w siatce Karnaugha dla czterech zmiennych.
Kolejne kroki przy minimalizacji funkcji wpisanej do tablicy Karnaugha są następujące:
Należy zdecydować, czy będzie się wybierać grupy zer, czy jedynek. Jeżeli nie ma żadnych ograniczeń (np. rodzaj elementów do realizacji układu),• należy łączyć te symbole, które dają prostsze rozwiązanie
Wśród wybranych symboli (0 lub 1) poszukuje się możliwości utworzenia grup zawierających kratki o takich samych symbolach. Muszą tu być spełnione dwa warunki - grupy powinny być jak największe, a liczba grup powinna być jak najmniejsza. Symbole, których nie można połączyć w żadną grupę r zakreśla się również, jako grupy 1-kratkowe.
Wyodrębnione w tablicy grupy opisuje się postacią normalną. Jeżeli w tablicy istnieje grupa, której wszystkie kratki należą do innych grup, to należy ją usunąć, pozostawiając tylko grupy niezbędne.
Podstawowe bramki logiczne.
|
AND |
|
|
|
OR (lub) suma |
|
|
|
NAND (nie i) negacja iloczynu |
|
|
|
NOR (nie lub) negacja sumy |
|
|
|
NOT (nie) negacja |
|
|
|
EXOR - albo (suma modulo 2, suma wyłączająca, różnica symetryczna) |
|
|
Układ kombinacyjny realizuje określoną formułę boolowską, poprzez ściśle określoną kompozycję składowych elementów, tj. bramek łączonych z zasadą, że wyjście bramki można połączyć z wejściami innych bramek. Nie wolno łączyć ze sobą wyjść bramek, poza tym w tej klasie układów nie wolno przy łączeniu dopuszczać do powstawania pętli, tzn. od każdego wejścia musi prowadzić droga do wyjścia.
Przykłady zastosowania w praktyce elementów logicznych
Typowe moduły MSI (bloki funkcjonalne)
Wskutek dużego postępu w dziedzinie technologii układów scalonych, niektóre stosowane układy kombinacyjne i sekwencyjne są produkowane już w postaci gotowych modułów w tzw. średnim stopniu scalenia (Medium Scale Integration). Naturalną więc wydaje się tendencja, aby tego typu moduły stosować w projektowaniu bardziej złożonych układów, a właściwie należałoby powiedzieć struktur bądź zespołów funkcjonalnych.
Typowymi modułami MSI są w grupie układów kombinacyjnych - multipleksery, demultipleksery, kodery, dekodery, translatory kodów, sumatory, komparatory, pamięci stałe ROM, programowe tablice logiczne PLA; natomiast w grupie układów sekwencyjnych - liczniki, rejestry, dzielniki, podzielniki, rejestry liczące, pamięci o dostępie swobodnym RAM.
Tutaj ograniczymy się tylko do ilustracji zastosowań niektórych modułów w procesie projektowania dowolnych układów logicznych. Aktualnym kierunkiem rozwojowym w teorii układów logicznych jest poszukiwanie tzw. modułów uniwersalnych, czyli modułów logicznych w wersji scalonej, za pomocą którego można skonstruować albo dowolny układ kombinacyjny, albo też dowolny układ sekwencyjny.
Zastosowanie multipleksera jako modułu uniwersalnego w syntezie układów kombinacyjnych
Typowe multipleksery mają jedno, dwa, trzy lub cztery wejścia adresowe.
Multiplekser na swoim wyjściu powtarza sygnał tylko z jednego wejścia informacyjnego o numerze dziesiętnym będącym odpowiednikiem zapisanego adresu na wejściach informacyjnych. Multiplekser jest więc alternatywnym generatorem wszystkich możliwych pełnych iloczynów zmiennych adresowych. Przez zakazywanie zerem lub zezwalanie jedynką (na wejściach informacyjnych) można uzyskać w formie boolowskiej, opisującej wyjście multipleksera, interesujący nas zestaw pełnych iloczynów, a tym samym zrealizować dowolną funkcję boolowską o liczbie zmiennych równej liczbie wejść adresowych. Zatem dowolna funkcja boolowska k zmiennych może być zrealizowana przy użyciu multipleksera o k wejściach adresowych. Sposób realizacji idei multipleksera za pomocą bramek AND, OR i negatora
Oczywistym jest, że multiplekserów w syntezie układów kombinacyjnych nie należy stosować bezkrytycznie, lecz każdorazowo rozważyć opłacalność tego typu rozwiązania, pamiętając, że z jednej strony konfiguracje takie mają zalety jak: jednorodność struktury, mniejsza liczba potrzebnych kostek, większa niezawodność (bo mniejsza liczba połączeń zewnętrznych układu scalonego), łatwiejsze diagnozowanie układu, lecz także takie wady jak: większy koszt układów MSI, większa moc pobierana. Poza tym przydatność multiplekserów do realizacji kombinacyjnych układów wielowyjściowych wydaje się być wątpliwa, bowiem na każde wyjście układu trzeba byłoby przeznaczyć jeden multiplekser.
Demultiplekser
Idea demultipleksera
schemat zastępczy demultipleksera wykonany za pomocą bramek logicznych
Dekoder
Dekoder jest układem zmieniającym dowolny kod na kod "1 z n", gdzie na wyjściu zawsze otrzymujemy tylko jedną jedynkę (ze względu na charakter kodu "1 z n").
Etapy syntezy układów kombinacyjnych
Synteza układów kombinacyjnych, będąca zasadniczym etapem projektowania, jest to zespół czynności, które na podstawie założeń dotyczących działania układu doprowadzają do schematu logicznego, przy czyn schemat ten powinien zawierać tylko elementy przewidzianego typu i spełniać pewne wymagania optymalności. Ogólny przebieg projektowania, z zaznaczonym jego podstawowym etapem - syntezą, pokazano na rysunku. W zależności od sposobu sformułowania i złożoności zadania istnieje wiele wariantów prowadzenia syntezy; najbardziej typowe zostały zaznaczone na rysunku pogrubionymi liniami.
Etapy:
Sporządzenie tabeli działania układu
Wyznaczenie analitycznej postaci funkcji oraz jej minimalizacja
Rysowanie schematu układu
Układy sekwencyjne
Układy sekwencyjne to rodzaj układów logicznych, w których wartości sygnałów wyjściowych zależą od wartości aktualnych sygnałów wejściowych i poprzedniego stanu układu (np. przerzutniki)
Przerzutniki
Do realizacji układów cyfrowych, obok elementów logicznych, potrzebne są elementy pamięciowe, czyli przerzutniki. Budowane są one z podstawowych elementów logicznych oraz produkowane jako układy scalone.
Najprostszym elementem pamięciowym jest przerzutnik statyczny, nazwany przerzutnikiem RS. Przerzutniki scalone wykonywane są z podstawowych układów logicznych zwykle z bramek NAND lub NOR. Połączenie takich bramek w sposób pokazany na rysunku daje układ przerzutnika o dwóch stanach stabilnych zmienianych tylko przez przychodzące z zewnątrz impulsy.
Działanie przerzutnika RS jest następujące:
Gdy na wejściu R występuje sygnał 0 a na wejściu S sygnał l na wyjściu Q występuje l a na wyjściu
występuje 0 Stan l z wyjścia Q jest podawany na drugie wejście dolnej bramki stan 0 z wyjścia
jest podawany na drugie wejście górnej bramki. W rezultacie na wejściach górnej bramki występują 0, 0 a na wejściach dolnej bramki stany 1,1. Po zmianie impulsów lub stanów na obu wejściach (R = l, S = 0) na wyjściu Q występuje l a na wyjściu
stan 0. Stan wyjścia
powinien być negacją stanu wyjścia Q stąd sytuacja R= S = 0 i Q =
= l jest niemożliwa i niedozwolona. Gdy R = S = l przerzutnik przyjmuje stan istniejący poprzednio a więc nieokreślony względem wejść a więc również niedozwolony. Przerzutnik RS jest przerzutnikiem pracującym asynchronicznie. Aby przerzutnik pracował synchronicznie z innymi układami powinien mieć wejście dodatkowe tzw. wpisujące. Synchroniczne wejście wpisujące powoduje zmianę stanu wyjścia dopiero wtedy kiedy na wyjściu pojawi się impuls. Sterowanie takie nazywa się taktowaniem- Z punktu widzenia sposobu wyzwalania rozróżnia się dwa podstawowe typy przerzutników:
a) wyzwalane zboczem impulsu
b)dwutaktowe (Master - Slave)
W przerzutnikach dwutaktowych przerzutnik główny wyzwalany jest za pomocą przerzutnika pomocniczego.
Część eksperymentalna
Spis przyrządów
tablica z elementami logicznymi
Zestaw statycznych układów logicznych wyposażony w dwu-, cztero-wejściowe bramki typu NAND i NOR z wyprowadzonymi na płytę czołową wejściami i wyjściami. Ponadto na płycie znajdują się lampki kontrolne, pozwalające na obserwację sygnałów wejściowych i wyjściowych oraz grupy zacisków z których pobrać można stan „0” i „1”.
przewody łączące
zasilacz stabilizowany
Przebieg pomiarów
Podłączyć do tablicy z elementami logicznymi zasilacz stabilizowany dający napięcie 5V.
Przed włączeniem źródła zasilania należy raz jeszcze sprawdzić czy połączenia są wykonane zgodnie ze schematem.
Poznanie układów cyfrowych należy rozpocząć od badania elementarnych funkcji opisanych w części wprowadzającej i sprawdzenie tablic prawdy danym funkcji, zrealizować zadane funkcje logiczne dokonując połączeń przewodami między funktorami NAND lub NOR, wykorzystując prawa de Morgana.
Uzasadnić analitycznie i sprawdzić doświadczalnie prawa pochłaniania
Zaobserwować stany wyjściowe zbudowanych układów przy użyciu indykatora stanów podając na wejście układu stany 0 lub l wiedząc, że sygnałowi l odpowiada zapalony indykator, a sygnałowi 0 - zgaszony indykator.
Sporządzić i sprawdzić tablice stanów (prawdy) dla poszczególnych układów.
Przeprowadzić minimalizację zadanego układu Wykonać projekt układu z bezstykowymi elementami logicznymi.
Na podstawie opisu słownego lub podanej przez prowadzącego tabeli działania zaprojektować układ logiczny i sprawdzić jego działanie.
Sprawdzić doświadczalnie działanie przerzutnika (elementu pamięci) zbudowanego na elementach NOR, NAND.
Zbadać czy pokazane niżej układy (z lewej strony) można zastąpić innymi (po prawej stronie) - opisać funkcję logiczną którą spełniają oraz wypełnić dla nich tabele prawdy
Zbadać układ:
Sprawozdanie powinno zawierać protokół z pomiarów poszerzony o obserwacje i wnioski
1
x1
x2x3
x1x2
x3x4