Wykład nr 1 Techniki Mikroprocesorowe dr inż. Artur Cichowski
ix jy i j {0,1} {0,1}
Dla układów kombinacyjnych stan dowolnego wyjścia y i w danej chwili czasu zależy wyłącznie od aktualnej kombinacji stanów na wejściach x 0,, x n-1. Jeżeli natomiast wartość któregokolwiek z wyjść y i zależy od poprzednich kombinacji wejściowych, to układ nazywamy sekwencyjnym.
Każde z wyjść y i układu kombinacyjnego możemy rozpatrywać jako niezależne od pozostałych, tzn. układ taki można opisać zestawem m funkcji, z których każda dotyczy jednego wyjścia: y f x, x,..., x j 0,1,2,..., m -1 j j 0 1 n1 Funkcje f j opisujące działania układu kombinacyjnego nazywane są funkcjami przełączającymi, logicznymi, lub boolowskimi (od George Boole).
Algebra Boole a oparta jest na trzech operacjach: 1. Jednoargumentowa operacja negacji, oznaczana kreską nad zmienną logiczną (np. ), zdefiniowana: x 0 1 0 0 1 2. Dwuargumentowa operacja sumy, oznaczana +, zdefiniowana: 0 0 0 0 1 1 10 1 11 1 3. Dwuargumentowa operacja iloczynu, oznaczana, zdefiniowana: 00 0 01 0 10 0 11 1
Operacje sumy i iloczynu są łączne i przemienne. Ponadto zachodzi rozdzielność iloczynu względem sumy i sumy względem iloczynu: A( B C) AB AC A ( BC) A BC ( A B) ( A C) A A Tożsamość: AA A AA A A 0 A A11 A A A A0 0 A1 A A A A Komplementarność: AA1 AA 0
Twierdzenia algebry Boole a: 1. Prawa pochłaniania A AB A A( A B) A 2. Prawa wyrażeń sąsiednich AB AB A ( A B) ( A B) A 3. Prawa de Morgana A B A B A B A B
Podstawowe funkcje logiczne są następujące: negacja (NOT, NIE) YX suma (OR, LUB) Y Y Y Y Y Y X 1 X 2 iloczyn (AND, I) X 1 X 2 X 2 zanegowany iloczyn, kreska Sheffera (NAND, NIE-I) X 1 X 2 zanegowana suma, strzałka Peirce a (NOR, NIE-LUB) X 1 X 2 nierównoważność, (EX-OR, ALBO) X X 1 X2 X1 X2 X1 X2 równoważność (EX-NOR) X X 1 1 X2 X1 X2 X1 X2 Y Y X 1 X 2 Y X 1 X 2 X 1 X 2 X 1 X 2 X 1 X 2 Y Y Y Y
Tablice prawdy bramek Wejścia NOT AND OR NAND NOR EX-OR EX- NOR X 1 X 2 X 1 1 X 2 X X1 X 2 X1 X 2 X1 X 2 X1 X 2 X1 X 2 0 0 1 0 0 1 1 0 1 0 1 1 0 1 1 0 1 0 1 0 0 0 1 1 0 1 0 1 1 0 1 1 0 0 0 1
Systemem funkcjonalnie pełnym funkcji boolowskich nazywamy taki zestaw funkcji, za pomocą którego można przedstawić dowolną funkcję boolowską. Przykłady: {+,, } nie minimalny SFP (można odrzucić + albo ) {+, } {, } { } minimalne SFP { } Aby sprawdzić, czy dany zestaw funkcji stanowi SFP, wystarczy sprawdzić, że można za jego pomocą uzyskać +, i. X X X X X X X X X X X 0 1 0 1 0 1 X X X X X X X X 0 1 0 1 0 1 0 1
Tablicowa reprezentacja funkcji boolowskich Nr kom. x 2 x 1 x 0 y 0 0 0 0 1 1 0 0 1 0 2 0 1 0 0 3 0 1 1 1 4 1 0 0 1 5 1 0 1 0 6 1 1 0 0 7 1 1 1 1 Dla n zmiennych mamy 2 n kombinacji wartości wejściowych
Postaci kanoniczne funkcji boolowskiej Def.: Iloczyn wszystkich argumentów funkcji boolowskiej (z negacjami lub bez) nazywamy iloczynem pełnym. Jest tyle różnych iloczynów pełnych ile jest kombinacji wejściowych (2 n ). Iloczyn pełny odpowiadający j-tej kombinacji wejściowej oznaczamy P j. W zapisie tego iloczynu piszemy bez negacji te zmienne, które przyjmują wartość 1, zaś z negacją te, które przyjmują wartość 0. Przykłady: P P P P x x x 0 2 1 0 x x x 3 2 1 0 x x x 4 2 1 0 x x x 7 2 1 0 kom x 2 x 1 x 0 y 0 0 0 0 1 1 0 0 1 0 2 0 1 0 0 3 0 1 1 1 4 1 0 0 1 5 1 0 1 0 6 1 1 0 0 7 1 1 1 1
Innymi słowy j-ty iloczyn pełny jest tak skonstruowany, że gdy zmienne wejściowe przyjmują j-tą kombinację, zachodzi P j = 1. Wobec tego dla uzyskania poprawnego zapisu algebraicznego funkcji należy utworzyć sumę tych iloczynów pełnych, dla których funkcja przyjmuje wartość 1. y( x, x, x ) P P P P 2 1 0 0 3 4 7 y( x, x, x ) x x x x x x x x x x x x 2 1 0 2 1 0 2 1 0 2 1 0 2 1 0 Taką postać funkcji boolowskiej nazywamy pierwszą postacią kanoniczną (1pk) lub postacią kanoniczną sumy. Podobnie jak iloczyn pełny definiujemy sumę pełną, tzw. suma pełna jest sumą wszystkich zmiennych, z negacjami lub bez. J-tą sumę pełną tworzymy biorąc zmienną bez negacji, gdy w j-tej kombinacji wejściowej przyjmuje ona wartość 0, oraz z negacją, jeśli przyjmuje ona wartość 1.
W rozpatrywanym przykładzie uzyskujemy: S x x x 1 2 1 0 S x x x 2 2 1 0 S x x x 5 2 1 0 S x x x 6 2 1 0 J-ta suma pełna jest, więc tak skonstruowana, że gdy zmienne wejściowe przyjmują j-tą kombinację, zachodzi S j = 0. kom x 2 x 1 x 0 y 0 0 0 0 1 1 0 0 1 0 2 0 1 0 0 3 0 1 1 1 4 1 0 0 1 5 1 0 1 0 6 1 1 0 0 7 1 1 1 1 A zatem, dla uzyskania poprawnego zapisu algebraicznego funkcji należy utworzyć iloczyn tych sum pełnych, dla których funkcja przyjmuje wartość 0. y( x, x, x ) S S S S 2 1 0 1 2 5 6 y( x, x, x ) x x x x x x x x x x x x 2 1 0 2 1 0 2 1 0 2 1 0 2 1 0
Taką postać funkcji boolowskiej nazywamy drugą postacią kanoniczną (2pk) lub postacią kanoniczną iloczynu. Zapis skrócony funkcji boolowskiej Postaci kanoniczne często zapisuje się w skrócie, podając jedynie indeksy iloczynów pełnych lub sum pełnych niezbędnych w odpowiedniej postaci kanonicznej. y x, x, x 0,3,4,7 y x 2 1 0, x, x 1,2,5,6 2 1 0 Przykłady Rozwinąć do 1pk lub 2pk następujące zapisy skrócone: y x, x, x 1,4,7 y x 2 1 0, x, x 2,3,5 2 1 0
Minimalizacja funkcji boolowskich metoda tablica Karnaugh a. Postaci kanoniczne funkcji boolowskich nie są z reguły postaciami najprostszymi. Zwykle można je uprościć (to jest uzyskać mniej liter w zapisie) stosując tak zwane reguły sklejania: sumę lub iloczyn dwóch wyrażeń różniących się tylko znakiem negacji nad jedną zmienną można zastąpić jednym wyrażeniem, odrzucając zmienną stanowiąca różnicę. Ax Ax A B x B x B B+ A x x A xx B Przykład: 1 0 y x x x x x x x x x x x x 2 1 0 2 1 0 2 1 0 2 1 0 1 0 2 x x 2 1 0 2 2 y xx x x x x 1 1 y xx 1 0 x x 1 0
Wyrażenia podlegające sklejaniu nazywa się wyrażeniami sąsiednimi. Aby łatwo dostrzec i wykorzystać wszystkie możliwości sklejania stosuje się tak zwane tablice Karnaugh a, w których wyrażenia sąsiednie znajdują się obok siebie. Tablica Karnaugh a wywodzi się z tak zwanego hipersześcianu, to jest sześcianu n-wymiarowego gdzie n jest liczba zmiennych wejściowych. x 0 001 011 x 2 x 1 x 000 01 11 10 0 000 001 011 010 101 111 000 100 x 2 110 010 x 1 1 100 101 111 110 x 1 x 000 x 2 01 11 10 0 1
W kratki należy wpisać wartości funkcji x 1 x 000 x 2 01 11 10 0 1 0 1 0 1 1 0 1 0 kom x 2 x 1 x 0 y 0 0 0 0 1 1 0 0 1 0 2 0 1 0 0 3 0 1 1 1 4 1 0 0 1 5 1 0 1 0 6 1 1 0 0 7 1 1 1 1 Jeżeli w dwóch sąsiednich kratkach wypełnionej tablicy Karnaugh a znajdują się jednakowe symbole (1 lub 0), to odpowiadające tym kratkom wyrażenia można sklejać. Można sklejać również wyrażenia sąsiadujące poprzez przeciwległe krawędzie. Sąsiednie kratki łączy się linią dla zaznaczenia umożliwienia sklejenia. Można łączyć w grupy kratki tworzące prostokąty o bokach długości 2 m, m=0,1,2. Należy dążyć do tworzenia jak największych grup. Kratki można wykorzystać wielokrotnie (to jest w kilku różnych grupach).
W kratki należy wpisać wartości funkcji x 1 x 000 x 2 01 11 10 0 1 0 1 0 1 1 0 1 0 kom x 2 x 1 x 0 y 0 0 0 0 1 1 0 0 1 0 2 0 1 0 0 3 0 1 1 1 4 1 0 0 1 5 1 0 1 0 6 1 1 0 0 7 1 1 1 1 Jeżeli w dwóch sąsiednich kratkach wypełnionej tablicy Karnaugh a znajdują się jednakowe symbole (1 lub 0), to odpowiadające tym kratkom wyrażenia można sklejać. Można sklejać również wyrażenia sąsiadujące poprzez przeciwległe krawędzie. Sąsiednie kratki łączy się linią dla zaznaczenia umożliwienia sklejenia. Można łączyć w grupy kratki tworzące prostokąty o bokach długości 2 m, m=0,1,2. Należy dążyć do tworzenia jak największych grup. Kratki można wykorzystać wielokrotnie (to jest w kilku różnych grupach).
Każdej grupie (także 1-kratkowej) odpowiada jeden iloczyn (dla grup z jedynkami) lub jedna suma (dla grup z zerami). W każdym iloczynie lub sumie występują tylko zmienne odpowiadające współrzędnym kratek, które nie ulegają zmianie przy przejściu wzdłuż boków prostokąta obejmującego grupę. Współrzędnym o wartości 1 odpowiada zmienna prosta w iloczynie oraz zmienna zanegowana w sumie. Współrzędnym o wartości 0 odpowiada zmienna zanegowana w iloczynie i zmienna prosta w sumie. y x x x x 1 0 1 0 x 2 x 1 x 000 01 11 10 0 1 0 1 0 1 1 0 1 0
Każdej grupie (także 1-kratkowej) odpowiada jeden iloczyn (dla grup z jedynkami) lub jedna suma (dla grup z zerami). W każdym iloczynie lub sumie występują tylko zmienne odpowiadające współrzędnym kratek, które nie ulegają zmianie przy przejściu wzdłuż boków prostokąta obejmującego grupę. Współrzędnym o wartości 1 odpowiada zmienna prosta w iloczynie oraz zmienna zanegowana w sumie. Współrzędnym o wartości 0 odpowiada zmienna zanegowana w iloczynie i zmienna prosta w sumie. x 2 x 1 x 000 01 11 10 0 1 0 1 0 x x 1 0 1 0 y x x 1 1 0 1 0 Postać funkcji uzyskiwana w wyniku minimalizacji nazywa się postacią normalną (odpowiednio 1pk i 2 pk).
Przykład dla 4-ch zmiennych: x 1 x 0 x 3 x 2 00 01 11 10 00 01 11 10 1 1 1 1 0 1 1 0 0 1 0 1 1 1 0 1 Funkcje częściowo określone Niekiedy wartość funkcji boolowskiej dla pewnych kombinacji jest nieistotna (ang. don t care condition), tzn. funkcja jest częściowo określona. W tablicy Karnaugh a należy ten fakt uwidocznić wpisując w odpowiednie kratki specjalne symbole, rożne od 0 i 1 (np. x). Wyodrębniając w tablicy grupy wyrażeń podlegające sklejaniu, można te symbole traktować dowolnie, jako zera lub jedynki, co stwarza możliwość uzyskania większych grup, a tym samym prostszej postaci algebraicznego zapisu funkcji.
Realizacja funkcji boolowskich za pomocą bramek NAND/NOR Jeżeli transformowane jest wyrażenie w 1pk (sumy iloczynów) to: poziom I buduje się z jednego elementu NAND lub dwóch elementów NOR; poziom II zawiera tyle elementów NAND lub NOR, ile elementarnych iloczynów występuje w wyrażeniu; poziom III w przypadku elementów NAND wytwarza negacje tych zmiennych, które są zanegowane w zapisie algebraicznym, a w przypadku elementów NOR - negacje tych zmiennych, które w zapisie algebraicznym nie są zanegowane.
Realizacja funkcji boolowskich za pomocą bramek NAND/NOR Jeżeli transformowane jest wyrażenie w 2pk (iloczyn sum) to: poziom I buduje się z dwóch elementów NAND lub jednego elementu NOR; poziom II zawiera tyle elementów NAND lub NOR, ile elementarnych sum występuje w wyrażeniu; poziom III w przypadku elementów NAND wytwarza negacje tych zmiennych, które nie są zanegowane w zapisie algebraicznym, a w przypadku elementów NOR - negacje tych zmiennych, które w zapisie algebraicznym są zanegowane.
Przykłady dla 4-ch zmiennych: x 1 x 0 x 1 x 0 x 3 x 2 00 01 11 10 x 3 x 2 00 01 11 10 00 1 1 0 x 00 1 0 x 1 01 0 0 x 1 01 1 x 0 1 11 1 x 1 x 11 x 1 0 x 10 1 0 0 1 10 x 0 1 1 http://www.ely.pg.gda.pl/~arcich/tablice/index.html
Literatura: Janusz Nieznański, niepublikowane materiały z wykładu Podstawy techniki cyfrowej i mikroprocesorowej