Układy logiczne Instytut Automatyki
Wiadomość, informacja Wiadomość i informacja są podstawowymi pojęciami informatyki. Znaczenie obu pojęć na gruncie informatyki nie całkowicie pokrywa się z potocznym ich rozumieniem. Czynnikiem decydującym w relacji wiadomość - informacja jest zatem sposób interpretacji uzgodniony pomiędzy nadającym i odbierającym wiadomość, czyli pewien abstrakcyjny krok polegający na określeniu przekształcenia wiadomości na informację
Dla wiadomości przekazywanych pomiędzy ludźmi istnieje najczęściej umowa co do formy tego przekazu. O takich wiadomościach mówimy, że są przekazywane w formie językowej, czyli tworzą język. Przedstawienie wiadomości na twardym nośniku nazywamy pismem, a sam nośnik - nośnikiem pisma. Przebieg w czasie wielkości fizycznej transmitującej wiadomości (a zatem również oddającej informacje) nazywa się sygnałem
Mówimy, że sygnał jest znakowy (digital), jeżeli parametry sygnału mogą przyjmować skończoną liczbę wartości. Wiadomości znakowe są to wiadomości przesyłane za pomocą sygnałów znakowych. Regułą przekształcenia zbioru znaków na inny zbiór znaków (albo zbiór słów) nazywamy kodem
Wiadomości nieznakowe, jak na przykład wiadomości w postaci obrazu, mapy, krzywej diagramu, mogą być dyskretyzowane i w ten sposób rozważane jako wiadomości znakowe. Jeżeli przyjmie się założenie, że wszystkie znaki i słowa są zakodowane dwójkowo (tzn. Przyjmują tylko dwie wartości np. 0 i 1) to układ, który służy do przetwarzania takich wiadomości nazywa się układem cyfrowym.
Podział układów cyfrowych elementy logiczne bloki funkcjonalne zespoły funkcjonalne Podział ze względu na strukturę układy specjalizowane układy programowalne
Podział ze względu na właściwości układy kombinacyjne układy sekwencyjne
Dla dwóch argumentów x i y mamy cztery możliwe kombinacje argumentów: x y 0 1 0 0 1 1 1 0
Jeżeli f i (x) będzie funkcją logiczną jednego argumentu x to można określić co najwyżej cztery takie funkcje.
Spośród funkcji dwuargumentowych f(x,y) najważniejszymi są: Nazwa Oznaczenie Wartość funkcji gdy (x,y) równa się (0,0) (0,1) (1,0) (1,1) suma, dysjunkcja x+y, x y 0 1 1 1 iloczyn, konjunkcja xy, x y 0 0 0 1
Funkcje boolowskie spełniają następujące aksjomaty: l.p. Nazwa aksjomatu Aksjomaty dotycz ące dodawania mno żenia 1 prawo łączności (A+B)+C=A+(B+C) (AB)C=A(BC) 2 prawo przemienności A+B=B+C AB=BC 3 prawo istnienia jednego elementu identycznościowego A+0=A A* 1=A 4 prawo dope łnienia A + A = 1 A A = 0
Podstawowe tożsamości
Ogólny zapis liczby dziesiętnej przedstawia poniższy zapis: n L 10 =a n Ka 2 a 1 a = 0 i=0 a i 10 i a 0,9> 3 2 1 0 1305 =1 10 + 3 10 + 0 10 + 5 10
W liczbach ułamkowych podstawa występuje w potęgach ujemnych, a zatem zapis liczby dziesiętnej ma postać: n 10 n 2 1 0 1 2 l i i = l L = a a a a, a a a = a 10 i L = b n b 2 b b 1 0,b 1 b 2 b l = i= n l b i P i gdzie: P oznacza dowolną podstawę
Dla P=2 otrzymujemy system dwójkowy (binarny). 3 2 1 0 1101 =1 2 + 1 2 + 0 2 + 1 2 czyli: 1101 2 = 13 10
Najbardziej rozpowszechnionymi kodami dwójkowymi są: kod naturalny dwójkowy, kod Grey'a, kod dwójkowo-dziesiętny BCD (ang. Binary Coded Decimial), kod pierścieniowy czyli kod 1 z 10 należący do grupy kodów 1 z n kod pseudopierścieniowy Johnsona,
Kod dwójkowy naturalny Kod dwójkowy naturalny jest kodem wagowym, w którym poszczególne wagi są kolejnymi potęgami liczby 2 (tzn. 2 i, gdzie i=0,1,2,3...). Istnieje wiele sposobów konwersji liczb z systemu dziesiętnego do dwójkowego i odwrotnie.
Konw ersja liczby dwójkow ej na dziesiętną. Dla kodów wagowych najprostsza metoda polega na sumowaniu albo wydzielaniu wag. Przykład: Należy zamienić liczbę binarną 11001 2 na liczbę dziesiętną. 11001 2 = 1*2 4 + 1* 2 3 + 0*2 2 + 0*2 1 + 1*2 0 = 16 + 8 +1 = 25 10
Konwersja liczby dziesiętnej na dw ójkow ą. Konwersja liczby dziesiętnej na dwójkową polega na wyszukiwaniu najwyższej potęgi liczby 2. Przykład: Należy zamienić liczbę dziesiętną 27 10 na liczbę binarną. Największą potęgą liczby 2 jest tutaj 2 4 = 16 a zatem, liczba dwójkowa będzie miała 5 bitów i na najstarszym bicie piszemy 1???? 2. Od liczby 27-16 = 11. W 11 najstarszą potęgą 2 jest 2 3. Zatem na następnym bicie piszemy 1 i uzyskujemy 11??? 2.. Następna operacja to: 11-8 = 3. Dla 3 najstarszą potęgą 2 jest 2 1. Ponieważ nie wystąpiła tutaj druga potęga liczby 2, to na drugiej pozycji piszemy 0, i otrzymujemy 110?? 2, natomiast na czwartej pozycji piszemy 1 ponieważ wystąpiła pierwsza potęga liczby 2, 1101? 2. Po odjęciu 3-2 = 1, gdzie 1 jest potęgą zerową liczby 2, bo 2 0 = 1. W ostateczności otrzymujemy liczbę dwójkową 11011 2.
Należy zamienić liczbę 11 10 na liczbę dwójkową: Reszta 11 : 2 = 5 1 najmłodszy bit 5 : 2 = 2 1 2 : 2 = 1 0 1 : 2 = 0 1 11 10 = 1011 2
Kod szesnastkowy Kod szesnastkowy (heksadecymalny) jest kodem wagowym, w którym poszczególne wagi są kolejnymi potęgami liczby 16 (tzn. 16 i, gdzie i=0,1,2,3...). Aby ułatwić zapis w kodzie heksadecymalnym wprowadzono następującą regułę. Dla liczb od 10 do 15 stosuje się odpowiedni zapis literowy: 10 - A, 11 - B, 12 - C, 13 - D, 14 - E, 15 - F.
Zamiana kodu dwójkowego na kod sze snastkowy Przejście pomiędzy kodem dwójkowym a heksadecymalnym polega na pogrupowaniu zapisu dwójkowego w grupy czterobitowe i zapisaniu ich wartości wykorzystując liczby z zakresu 0... 15. Należy zamienić zapis liczby dwójkowej 11011001110 2 na zapis szesnastkowy kod dwójkowy (binarny) 110 1100 1110 kod szesnastkowy (heksadecymalny) 6 C E 11011001110 2 =6CE 16
Kod Grey'a Cechą charakterystyczną kodu Grey'a jest to, że sąsiadujące kombinacje kodowe różnią się wartościami tylko jednego bitu. Tablicę kodu Grey'a można utworzyć na podstawie tablicy kodu dwójkowego naturalnego posługując się następującą regułą: G = B B = B B + B B i i i + 1 i i + 1 i i + 1 gdzie: G i - i-ty bit kodu Grey'a, B i - i-ty bit kodu binarnego, B i+1 - i+1 bit kodu binarnego.
0 0 0 0 0 1 0 0 0 1 2 0 0 1 1 linia lustra 3 0 0 1 0 4 0 1 1 0 linia lustra 5 0 1 1 1 6 0 1 0 1 7 0 1 0 0 8 1 1 0 0 linia lustra 9 10 11 12 13 14 15 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 0 1 0 0 1 1 0 0 1 0 0 0
Kod dwójkowo dziesiętny BCD Kod dwójkowo dziesiętny jest odmianą kodu dwójkowego naturalnego gdzie każdej cyfrze dziesiętnej przyporządkowywuje się liczbę binarną. Nie następuje tutaj kodowanie całej liczby, a kodowana jest każda cyfra oddzielnie 0 0000 10 0001 0000 1 0001 11 0001 0001 2 0010 12 0001 0010 3 0011 13 0001 0011 4 0100 14 0001 0100 5 0101 15 0001 0101 6 0110 16 0001 0110 7 0111 17 0001 0111 8 1000 18 0001 1000 9 1001 19 0001 1001
Kod pseudopierścieniowy 0 000 1 001 2 011 3 111 4 110 5 100
Kod pierścieniowy 0 000000 1 000001 2 00010 3 00100 4 01000 5 10000
Tablica kodu dwójkowego z bitem parzystości 0 000.0 1 001.1 2 010.1 3 011.0 4 100.1 5 101.0
Tablica kodu dwa z pięciu. 0 11000 5 01010 1 00011 6 01100 2 00101 7 10001 3 00110 8 10010 4 01001 9 10100
Sposoby zapisu funkcji Opis słowny Tablica wartości Wykres czasowy Zbiór wartości zmiennych funkcji Tablica Karnaugha Zapis algebraiczny funkcji
Opis słowny Założenia dotyczące działania układu najczęściej są podawane w postaci opisu słownego. Opis taki musi jednoznacznie określić przypadki, w których sygnały wyjściowe mają wartość 0 lub 1. Przykładem poprawnego opisu może być zdanie: zaprojektować układ o trzech wejściach x 1, x 2, x 3, wyróżniający sygnałem y=1 w przypadku, gdy na wejściu pojawi się liczba dwójkowa nieparzysta lub podzielna przez 3 (x 3 odpowiada pozycji najmniej znaczącej).
Tablica wartości funkcji Numer zbioru Wartość zmiennych Wartość funkcji i x 1 x 2 x 3 f(x 1,x 2,x 3) 0 0 0 0 0 1 0 0 1 1 2 0 1 0 0 3 0 1 1 1 4 1 0 0 0 5 1 0 1 1 6 1 1 0 1 7 1 1 1 1
Tablica funkcji niepełnej (niezupełnej, nie w pełni określonej), Numer zbioru Wartość zmiennych Wartość funkcji i x 1 x 2 f(x 1,x 2 ) 0 0 0 0 1 0 1 2 1 0 1 3 1 1 0
Wykres czasowy Wykres czasowy dla funkcji niepełnej
Zbiór wartości zmiennych funkcji Numer zbioru Wartość zmiennych Wartość funkcji i x 1 x 2 x 3 f(x 1,x 2,x 3) 0 0 0 0 0 1 0 0 1 0 2 0 1 0 1 3 0 1 1 1 4 1 0 0 0 5 1 0 1 1 6 1 1 0 0 7 1 1 1 0
Do jednoznacznego określenia funkcji wystarczy podać zbiór wartości zmiennych funkcji oznaczany: F 1 dla którego funkcja przyjmuje wartość 1, lub zbiór F 0 dla którego funkcja przyjmuje wartość 0. 1 { } F = 010,011,101 x x x 1 2 3 0 { } F = 000,001,100,110,111 x x x 1 2 3
1 { } F = 2,3,5 x x x 1 2 3 0 { } F = 0,1,4,6,7 x x x 1 2 3 - F = { 4,5,6} x x x 1 2 3 1(-) F = { 2,4,6,(0,1) } x x x 1 2 3
Tablica Karnaugha f(x, x, x ) 1 2 3
Zapis algebraiczny funkcji f(x, x, x ) = x x + x x x 1 2 3 1 2 1 2 3
Kanoniczna postać funkcji boolowskiej f(x 1, x,, x ) = x f ( 1, x,, x ) + x f ( 0, x,, x ) 2 n 1 2 n 1 2 n f(x 1, x,, x ) = [ x + f ( 0, x,, x )][ x + f ( 1, x,, x )] 2 n 1 2 n 1 2 n
f ( x 1, x 2,K, x n )=x 1 x 2 f (1,1, x 3, K, x n )+x 1 x f (1,0, x 3, K, x n )+ 2 +x x 2 f (0,1, x 3, K, x n )+x x f (0,0, x 3, K, x n ) 1 1 2 f ( x 1, x 2, K, x n )=[ x 1 + x 2 + f (0,0, x 3, K, x n )][ x 1 + x + f (0,1, x 3, K, x n )] 2 [ x + x 2 + f (1,0, x 3, K, x n )][ x + x + f (1,1, x 3, K, x n )] 1 1 2
f(x 1, x,, x ) = x x x f ( 1, 1, 1,, 1 ) + x x x x f ( 1, 1, 2 n 1 2 n 1 2 n 1 n + + x x x f ( 1, 0,, 0 ) + x x x f ( 0, 0, 1 2 n 1 2 n f(x 1, x,, x ) = [ x + x + + x + f ( 0, 0, 0,, 0 )] 2 n 1 2 [ x + x + + x + x + f ( 0, 0,, 0, 1 )] [ x + x + + x + f ( 0, 1,, 1 )] [ x + x + + x + f ( 1, 1,, 1 )] n 1 2 n 1 1 2 1 2 n n n
f(x 1,x 2,..., x n ) = 2 n -1 i= 0 m f(a i i ) gdzie: i - numer kombinacji sygnałów wejściowych a 1 a 2 a 3 i3 m = x i1 x i2 x x i ain n = n j= 1 x aij j a ij x j = x j x j gdy a ij = gdy a ij = 1 0 dla dla j = j = 1,2,3,,n 1,2,3,,n j- numer sygnału wejściowego f( a ) = i 1 jeżeli f ( x1, x 2,, x n ) = 1 dla i - tej kombinacji sygnałów wejściowych 0 jeżeli f ( x, x,, x n ) = 0 1 2 dla i - tej kombinacji sygnałów wejściowych Powyższy zapis nosi nazwę kanonicznej postaci sumy funkcji boolowskiej. Inny zapis postaci kanonicznej sumy: 1 f (x1,x 2,,x n ) = i F 1 m i m i - implikant
f(x 1 gdzie:, x 2,..., x n ) = 2 n ƛ -1 i= 0 (M i + f(a i )) i - numer kombinacji sygnałów wejściowych m = x + x + x + + x = x i a i 1 1 a i 2 2 a i 3 3 a in n n j= 1 a ij j x aij j = x x j j gdy gdy a a ij ij = = 1 0 dla dla j = j = 1,2,3,,n 1,2,3,,n j- numer sygnału wejściowego f( a ) = i 1 jeżeli f( x1, x 2,, x n ) = 1 dla i - tej kombinacji sygnałów wejściowych 0 jeżeli f( x, x,, x n ) = 0 1 2 dla i - tej kombinacji sygnałów wejściowych Powyższy zapis nosi nazwę kanonicznej postaci iloczynu funkcji boolowskiej. Inny zapis postaci kanonicznej sumy: f 0 (x, x 1 2,, x n ) = i F 0 M i M i - implicent
f(x 1,x 2,..., x n 2 n -1 ) = m f(a ) f(x, x,..., x ) = (M + f(a )) i= 0 i i 1 2 n 2 n ƛ -1 i= 0 i i gdzie: i - numer kombinacji sygnałów wejściowych gdzie: i - numer kombinacji sygnałów wejściowych a 1 a 2 a 3 a n n i3 ij m = x i1 x i2 x x in = x m = x + x + x + + x = x i j= 1 a j i a i 1 1 a i 2 2 a i 3 3 n ain n j= 1 aij j a ij x j = x j x j gdy a ij = gdy a ij = 1 0 dla dla j = j = 1,2,3,,n 1,2,3,,n x aij j = x x j j gdy gdy a a ij ij = = 1 0 dla dla j = j = 1,2,3,,n 1,2,3,,n j- numer sygnału wejściowego j- numer sygnału wejściowego f( a ) = i 1 jeżeli f( x1, x 2,, x n ) = 1 dla i - tej kombinacji sygnałów wejściowych 0 jeżeli f( x, x,, x n ) = 0 1 2 dla i - tej kombinacji sygnałów wejściowych f( a ) = i 1 jeżeli f( x1, x 2,, x n ) = 1 dla i - tej kombinacji sygnałów wejściowych 0 jeżeli f( x, x,, x n ) = 0 1 2 dla i - tej kombinacji sygnałów wejściowych Powyższy zapis nosi nazwę kanonicznej postaci sumy funkcji boolowskiej. Inny zapis postaci kanonicznej sumy: Powyższy zapis nosi nazwę kanonicznej postaci iloczynu funkcji boolowskiej. Inny zapis postaci kanonicznej sumy: 1 0 f (x1,x 2,,xn ) = mi f (x1, x2,, xn ) = i F 1 i F 0 M i m i - implikant M i - implicent
1 { } F = 010,011,101 x x x 1 2 3 F= X1 X2 X3+ X1 X2 X3+ X1 X2 X3 0 { } F = 000,001,100,110,111 x x x 1 2 3 F=( X1+ X2+ X3) ( X1+ X2+ X3) ( X1+ X2+ X3) ( X1+ X2+ X3) ( X1+ X2+ X3)
Sposoby minimalizacji funkcji boolowskich metoda przekształceń algebraicznych metoda tablic Karnaugha, metoda Quine a - Mc Cluskeya, metoda tablic harwardzkich, metoda Patricka, metoda Blake a.
Metoda tablic Karnaugha Należy wyznaczyć minimalną postać funkcji, która jest opisana w następujący sposób. W pomieszczeniu znajdują się trzy czujniki pożarowe a, b, c. Przy sygnale równym 1 z dowolnego czujnika należy uruchomić sygnalizację pożaru (f 1 = 1), zaś przy sygnale 1 z co najmniej dwóch czujników należy uruchomić urządzenie gaśnicze (f 2 = 1).
Etap I Przygotowanie tablicy dla danej liczby zmiennych i wpisanie w pola elementarne wartości funkcji. W pola gdzie funkcja jest nieokreślona wpisywany jest znak -. Na podstawie przedstawionego opisu tworzona jest tablica Karnaugha dla funkcji f 1 i f 2 lub dla obu funkcji. f 1 f 2 f 1 f 2
Etap II Należy zakreślić (czyli narysować obwiednie) możliwie największe obszary obejmujące jedynki lub zera. Jeżeli zakreślane będą jedynki to tworzona będzie minimalna postać sumy, natomiast jeżeli zakreślane będą zera, to tworzona będzie minimalna postać iloczynu. Dzięki opisowi tablicy przy pomocy kodu Grey'a dwa sąsiednie pola tablicy różnią się stanem jednego sygnału wejściowego. Gdy w obu polach znajdują się te same wartości funkcji, to można zastosować twierdzenie o sklejaniu funkcji boolowskich.
Rysowanie obwiedni następuje według następujących zasad: liczba pól elementarnych połączonych ze sobą musi być potęgą dwójki; łączone pola muszą być sąsiednimi tzn. dzielonymi od siebie linią pionową, linią poziomą lub krawędzią tablicy; łączone pola muszą mieć kształt symetryczny względem swych osi; jeżeli w tablicy występują znaki nieokreśloności, to pola elementarne, w których występuje ten znak można łączyć z jedynkami lub zerami w zależności od potrzeb; argument zmieniający wartość w ramach wybranej grupy jest odrzucany; podczas wyłączania jedynek z tablicy realizowana jest funkcja suma iloczynów, a zatem rezultat upraszczania będzie iloczynem, przy czym symbolowi 0 odpowiada x, a symbolowi 1 - x; podczas wyłączania zer z tablicy realizowana jest funkcja iloczyn sum, a zatem rezultat upraszczania będzie sumą, przy czym symbolowi 0 odpowiada x, a symbolowi 1 - x
f 1 1 =a+b+c
f 2 1 =ab+ac+bc
f 1 0 = a + b + c f = (a + b)(a + c)(b + c) 2 0 Łatwo można wykazać, że f 1 1 = f 1 0 oraz f = f 2 1 2 0.
Jeżeli podczas zakreślania obszarów wartości zmiennych określających obszar są inne niż zaznaczane wartości funkcji, (np. podczas zaznaczania 1 element funkcji ma 0), to jest on zapisywany jako sygnał zanegowany. Przedstawione to zostało na poniższym przykładzie. f 0 = ac + ab + bc f 1 = ( a + b )( a + c )( b + c )
Metoda Quine'a - Mc Cluskeya Przy większej ilości zmiennych, metoda tablic Karnaugha staje się bardzo uciążliwa. W takich przypadkach wygodniej jest stosować metodę Quine'a - Mc Cluskeya Metoda Quine a Algorytm minimalizacji Quine a polega na stosowaniu dwóch operacji: sklejania niepełnego Ax + Ax = Ax + Ax + A pochłaniania A + Ax = A + Ax = A
Po wykonaniu wszystkich niepełnych sklejeń a następnie wszystkie możliwe pochłaniania to uzyskuje się tzw. postać skróconą. Można to wyjaśnić na poniższym przykładzie. Gdyby do funkcji: y = x x x + x x x + x x x + x x x 2 3 1 3 1 2 1 2 1 2 3 zastosować regułę sklejania zwykłego to uzyskałoby się funkcje: y x x x x x x x x = + + 1 2 1 2 3 1 2 3
Po zastosowaniu reguły niepełnego sklejania otrzymanoby funkcję: y = x x + x x + x x + x + 1x x + x x x + x x x x x 2 3 1 3 1 2 3 3 1 2 3 1 2 3 1 2 a po zastosowaniu reguły pochłaniania postać funkcji byłaby następująca: y = x + x + x x x x 2 3 1 3 1 2
Implikant - funkcji f to taka funkcja g (tych samych argumentów), że dla wszystkich kombinacji wartości argumentów, jeśli g =1, to i f =1; Implikant prosty - to iloczyn G (zmiennych x), który jest implikantem i który, zmniejszony o dowolną zmienną przestaje być implikantem. Skoro każda funkcja może być przedstawiona w postaci kanonicznej sumy, obejmującej wszystkie kombinacje, dla których f=1, to może też być przedstawiona w postaci sumy wszystkich prostych implikantów, które z pewnością pokrywają wszystkie jedynki funkcji. Postać skrócona uzyskana poprzez stosowanie algorytmu Quine a, jest sumą wszystkich prostych implikantów danej funkcji, gdyż zawiera wszystkie nieskracalne iloczyny pochłaniające postać kanoniczną.
Poprzez usuniecie wszystkich zbędnych prostych implikantów otrzymuje się tzw. postać minimalną. Upraszczanie postaci skróconej można przeprowadzić kilkoma różnymi sposobami i wówczas uzyskuje się tzw. postacie końcowe (nieredukowalne), z których jedna jest postacią minimalną. Poszukiwania minimalnego zbioru prostych implikantów, których suma jest równa funkcji, dokonuje się zwykle za pomocą tzw. tablic implikantów.
y = x x x + x x x + x x x + x x x + x x x + x x x 1 2 3 3 1 3 1 2 2 1 2 2 3 1 3 1 2 3 y=x 1 x 3 +x 1 x 2 + x 2 x 3 + x 1 x +x 2 x +x 2 3 1 x 3
Składniki sumy K i x x x 1 2 3 x x x 1 2 3 x x x 1 2 3 x x x 1 2 3 x x x 1 2 3 x x x 1 2 3 x x 1 3 X X proste x x 1 2 X X impli- x x 2 3 X X kanty x x 1 2 X X G i x x 2 3 X X x 1 x 3 X X
y = x x + x x + x x 1 3 2 1 2 3 y = x x + x x + x x 1 2 3 2 1 2 Implicient - funkcji f to taka funkcja h (tych samych argumentów), że dla wszystkich kombinacji wartości argumentów, jeśli h =0, to i f =0; Implicient prosty - to suma H (zmiennych x), który jest implicientem i który, zmniejszony o dowolną zmienną przestaje być implicientem.
Metoda Mc Cluskey a 1. Wszystkie pełne iloczyny wpisuje się w formie kolumny liczb binarnych, pisząc 0 zamiast x i oraz 1 zamiast x i. 2. Drugą kolumnę tworzy się z liczb pierwszej kolumny, dzieląc je na grupy indeksowe. W pierwszym wierszu wypisuje się liczbę złożoną z samych zer, następnie z liczb zawierających jedną jedynkę, następnie - liczby zawierające dwie jedynki itd. Poszczególne grupy wyraźnie rozdziela się. 3. Trzecia kolumna powstaje z rezultatów sklejeń liczb kolumny drugiej według poniższych zasad: nowe grupy tworzy się poprzez sklejanie liczby należących do sąsiednich grup; sklejane liczby mogą się różnić tylko na jednej pozycji, np. sklejenie (101) z (111) daje w wyniku liczbę (1-1). Sklejone wyrażenia należy zaznaczyć; każde wyrażenie można sklejać dowolną liczbę razy; należy wykorzystać wszystkie możliwości sklejeń;
4. Następne kolumny powstają z poprzednich przy zachowaniu tych samych zasad co w pkt. 2. Wyrażenia sąsiednie muszą mieć kreski na tych samych pozycjach, np. z (11-0) i (10-0) otrzymuje się (1--0). Tworzenie nowych kolumn kończy się w przypadku, gdy nie można już wykonać żadnych sklejeń. 5. Wyrażenia z ostatniej kolumny zamienia się na postać literową poprzez operacje odwrotną niż w pkt.1. 6. Tworzy się tablicę implikantów i wybiera się wszystkie postacie nieredukowalne. 7. Spośród postaci nieredukowalnych wybiera się postać minimalną
y = x x x x + x x x x + x x x x + x x x x + x x x x + 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 + x x x x + x x x x + x x x x + x x x x 1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4 0001, 0100, 0101, 0110, 0111, 1000, 1001, 1100, 1101
0001 0001 0-01 0100 0100-001 --01 01-- 0111 1000 1001 1100 0110-100 1001 100-1100 1-00 0111 01-1 1101 1101-101 1-01 0101 1000 010- -10-0110 0101 01-0 1-0- 011-110-
--01 01-- -10-1-0- y = x 3 x4 + x 1 x2 + x2 x 3 + x1 x 3
0001 0100 0101 0110 0111 1000 1001 1100 1101 --01* X X X X 01--* X X X X -10- X X X X 1-0-* X X X X y x x x x x x = + + 3 4 1 2 1 3
Minimalizacja funkcji niepełnych Przy minimalizacji funkcji niepełnych etapy 1-5 wykonuje się jak dla funkcji pełnych, z tym że oprócz składników postaci kanonicznej do działań włącza się również kombinacje odpowiadające nieokreślonej wartości funkcji. Tablicę implikantów buduje się tylko dla składników obowiązujących.
Wykorzystanie zapisu dziesiętnego składników postaci kanonicznej funkcji 1. Określić indeksy poszczególnych liczb opisujących postać kanoniczną iloczynu lub sumy i wypisuje się kolumnę z podziałem na grupy o jednakowych indeksach. Indeksy określają ilość jedynek w odpowiedniej liczbie binarnej. Liczby odpowiadające pozycjom nieokreślonym są traktowane tak jak pozostałe; 2. Druga kolumna powstaje z pierwszej w wyniku sklejania, przy czym obowiązują następujące zasady: skleja się liczby należące do sąsiednich grup; sklejane liczby muszą się różnić o 2k (k=0,1,2...); liczby można sklejać tylko wtedy gdy liczba z grupy o większym indeksie jest większa; wynik sklejania a z b zapisuje się w postaci a,b (c) - przy czym c jest różnicą między a i b; każda liczba może być sklejana dowolną ilość razy; należy wyczerpać wszystkie możliwości sklejeń; wyniki sklejeń dzieli się na grupy, jak poprzednio, a wyrażenia powtarzające się nie są wypisywane.
3. Następne kolumny powstają z poprzednich przy zachowaniu tych samych zasad. Dodatkowo różnice umieszczone w nawiasach sklejanych wyrażeń muszą być jednakowe, a wynik ma w nawiasie nie jedną, lecz kilka różnic. Na przykład 1,3 (2) i 5,7 (2) dają 1,3,5,7 (2,4), natomiast 1,3 (2) z 5,9 (4) nie skleja się. 4. Wyrażenia, których nie udało się skleić, odpowiadają prostym implikantom (implicentom) funkcji. Tworzy się z nich tablicę i ruguje wyrażenia zbędne, wybierając postacie minimalne. 5. Wyrażenia nieredukowalne zamienia się na postać binarną a następnie literową, zgodnie z następującymi zasadami: wypisuje się w postaci binarnej pierwszą liczbę wchodzącą w skład implikantu (implicentu); na pozycjach, których waga równa jest podanym w nawiasie różnicom, pisze się kreskę (-); poszczególnym pozycjom zero-jedynkowym przypisuje się odpowiednie litery.
f ( x, x, x, x ) 1 2 3 4 = [0, 1, 2, 4, 5, 10, 12, (8, 14)] 0 1 1 1 2 2 2 1 3 indeksy
0 0 0 0,1 (1) 0, 1, 4,5 (1,4) 1 1 1 0,2 (2) 0, 2, 8,10 (2,8) 2 1 2 0,4 (4) 0, 4, 8,12 (4,8) 4 1 4 0,8 (8) 8,10,12,14 (2,4) 5 2 8 1,5 (4) 8 1 5 2,10 (8) 10 2 10 4,5 (1) 12 2 12 4,12 (8) 14 3 14 8,10 (2) 8,12 (4) 10,14 (4) 12,14 (2)
0,1,4, 5 (1,4) 0, 1, 4, 5 (1,4) 0,2,8,10 (2,8) lub 0, 2, 8,10 (2,8) 0,4,8,12 (4,8) 8,10,12,14 (2,4) 0 0 0 0 00 lub 0 0 0 0 1 0 y = x 1 x 3 + x 2 x 4 + x 3 x 4 lub y = x 1 x 3 + x 2 x 4 + x1 x 4.
Minimalizacja funkcji silnie nieokreślonych 1. Buduje się tablicę, której wiersze odpowiadają składnikom sumy F 1 a kolumny składnikom iloczynu F 0 (lub odwrotnie) wpisanym w postaci zero-jedynkowej; 2. W tablicę wpisuje się liczby dziesiętne, odpowiadające pozycjom, na których symbol wiersza i kolumny różnią się; 3. Dla każdego wiersza (każdej kolumny) wypisuje się minimalne zbiory takich liczb, które występują we wszystkich kolumnach rozpatrywanego wiersza (lub we wszystkich wierszach rozpatrywanej kolumny);
4. Jeżeli wśród wypisanych zbiorów minimalnych są zbiory o mniejszej (niż w pozostałych) liczbie liter, należy sprawdzić, czy nie można ich zastąpić innymi zbiorami spośród wypisanych; 5. Ponieważ minimalne zbiory określają te pozycje wyrażenia zero-jedynkowego, które nie mogą być zastąpione kreskami, wybiera się spośród wypisanych zbiorów taka rodzinę by obejmowała wszystkie elementy F 1 lub F 0.
6. Na podstawie uzyskanych liczb dziesiętnych odtwarza się uproszczoną postać zero-jedynkową wypisując tylko te pozycje, które wchodzą w skład zbiorów wyróżnionych a pozostałe zastępując kreskami, Z tej postaci przechodzi się do postaci literowej wg zasad opisanych poprzednio.
F 0100101 1000110 1010000 1010110 1110101 0 1 = F = 1000101 1011110 1101110 1110111
F 2, 7 4 4 2, 6 1 1 min = lub Fmin = 2, 7 4 4 6, 7 F 0 1 1 1 min 1 = 1 lub Fmin 1 = 0 1 1 11 y = x x + x + x x lub y = x x + x + x x 2 7 4 2 6 2 7 4 6 7
Zbiory minimalne dla postaci minimalnej iloczynu to: 1;2,6-4,7 5;4,7-4,7-2,6; 3,6 W miejsce zbioru (1) można wstawić zbiór (2,6) a w miejsce (5) - (4,7). 2,6-4,7-4,7-4,7-2,6 0 1 = 0 0 0 F min ( ) ( ) 2 6 4 7 y = x + x x + x
Funktory układów cyfrowych Układy cyfrowe dzieli się na dwie podstawowe grupy: 1. układy kombinacyjne 2. układy sekwencyjne
Funktory układów kombinacyjnych - bramki Nazwa Symbol Realizowana funkcja Negacja, NOT a Suma, OR a + b Negacja sumy, NOR a + b Iloczyn, NAD a b Negacja iloczynu, NAND a b Suma modulo, EX-OR a b
Podstawowe funktory układów sekwencyjnych - przerzutniki
Przerzutnik typu RS Tablica przejść Symbol S R Q t+1 0 0 Q t 0 1 0 1 0 1 1 1 -
Przerzutnik typu JK Tablica przejść Symbol J K Q t+1 0 0 Q t 0 1 0 1 0 1 1 1 Q t
Przerzutnik typu D Tablica przejść Symbol D Q t+1 0 0 1 1
Przerzutnik typu T Tablica przejść Symbol T Q t+1 0 Q t 1 Q t
Typowe podzespoły układów cyfrowych Rejestry Liczniki Bloki arytmetyczne Komparatory Multipleksery Demultipleksery Konwertery kodów Pamięci
Rejestry Rejestrem nazywamy układ służący do przechowywania informacji
szeregowe - szeregowe wprowadzanie i wyprowadzanie informacji, tzn. kolejno bit po bicie; równoległe - równoległe wprowadzanie i wyprowadzanie informacji jednocześnie do wszystkich i ze wszystkich pozycji rejestru;
szeregowo-równoległe - szeregowe wprowadzanie i równoległe wyprowadzanie informacji; równoległo-szeregowe - równoległe wprowadzanie i szeregowe wyprowadzanie informacji.
Rejestry szeregowe charakteryzują się możliwością przesuwania wprowadzonej informacji bądź w prawo albo w lewo (rejestry przesuwające jednokierunkowe), bądź też zarówno w prawo, jak i w lewo (rejestry przesuwające dwukierunkowe, rewersyjne). SR
Liczniki Licznikiem nazywany jest sekwencyjny układ cyfrowy służący do zliczania i pamiętania liczby impulsów podawanych w określonym przedziale czasu na jego wejście zliczające.
Liczniki podlegają następującym kryteriom podziału: pod względem długości cyklu: liczniki o stałej długości cyklu liczniki o zmiennej długości cyklu pod względem kierunku zliczania: liczniki jednokierunkowe zliczające w przód zliczające w tył liczniki dwukierunkowe pod względem sposobu oddziaływania impulsów zliczanych na stan przerzutników licznika: liczniki asynchroniczne liczniki synchroniczne liczniki asynchroniczno - synchroniczne
Bloki arytmetyczne Podstawowym układem arytmetycznym jest sumator, którego zadaniem jest dodawanie lub odejmowanie liczb. Odejmowanie liczb jest możliwe w tzw. kodzie uzupełnień do dwóch
Blokiem arytmetycznym może być również tzw. rejestr przesuwający. Przesuwanie liczb binarnych w lewo (w kierunku starszego bitu) lub w prawo (w kierunku młodszego bitu) jest równoznaczne z mnożeniem lub z dzieleniem przez kolejne potęgi liczby 2. Do realizacji mnożenia liczb są również wykorzystywane tzw. multiplikatory. Uniwersalne, programowalne układy realizujące szereg operacji arytmetycznych oraz szereg funkcji logicznych są nazywane jednostkami arytmetyczno - logicznymi.
Komparatory Komparatory służą do porównywania wartości dwu lub więcej liczb dwójkowych.
Multipleksery Multiplekser (inaczej selektor) wybiera jeden sygnał spośród wielu sygnałów wejściowych.
Demultipleksery Demultiplekser (inaczej kolektor) kieruje sygnał na jedną z wielu możliwych dróg.
Konwertery kodów Konwertery kodów służą do zamiany liczby podanej w jednym kodzie na inny kod. Konwersji można dokonać tylko wówczas gdy liczba słów kodowych w obu kodach jest identyczna, natomiast długość słów obydwu kodów nie musi być identyczna.
Można wyróżnić trzy rodzaje konwerterów kodów: enkoder - jest to układ w którym kodem wejściowym jest kod pierścieniowy (jeden z "n"); enkoder priorytetowy - jest to układ w którym kodem dekoder - wejściowym jest kod x z n oraz jest ustalony priorytet poszczególnych wejść. jest to układ w którym kodem wyjściowym jest kod pierścieniowy (jeden z "n"); transkoder - jest to układ w którym kodem wejściowym i wyjściowym jest dowolny kod dwójkowy inny niż pierścieniowy
Pamięci Pamięci - układy służące do przechowywania ciągów cyfr binarnych są nazywane pamięciami. Z punktu wykonywanej funkcji pamięci można podzielić na dwie klasy: pamięci z zapisem i odczytem tzw. pamięci RAM (Random Acces Memory); pamięci stałe, tylko z odczytem tzw. pamięci ROM (Read Only Memory).
Jako pamięci mogą być wykorzystywane następujące układy: przerzutniki: rejestry; układy pamięciowe scalone; pamięci ferrytowe; matryce diodowe
Synteza układów cyfrowych Po przeprowadzeniu minimalizacji funkcji wykorzystując tablicę Karnaugha, należy przystąpić do budowy układu realizującego otrzymaną funkcję. Do budowy układu można wykorzystywać układy stykowe, negacje, bramki AND, OR, negacje, NAND, NOR, multipleksery
Dla układów stykowych przyjmowana jest następująca zasada: sygnał prosty jest realizowany jako styk normalnie rozwarty; sygnał zanegowany jest realizowany jako styk normalnie zwarty;
suma sygnałów jest realizowana jako połączenie równoległe styków; a a+b b iloczyn sygnałów jest realizowany jako połączenie szeregowe styków; a b ab
Budowa układu przy wykorzystaniu układu stykowego, bramek AND i OR Mając funkcję przedstawioną jako minimalną postać normalną sumy lub iloczynu można bezpośrednio przejść do budowy układu składającego się z układów stykowych lub bramek AND i OR. Otrzymano następujące funkcje: f 11 = a+b+c, f 21 = ab+ac+bc, f 20 = (a+b)(a+c)(b+c).
Układ stykowy: c b a a+b+c Układ stykowy realizujący funkcję f 11
a b a c b c ab+ac+bc Układ stykowy realizujący funkcję f 21
a b a c b c (a+b)(a+c)(b+c) Układ stykowy realizujący funkcję f 20
a b c Układ bramek OR realizujący funkcję f 11
a b a c b c ab ac bc ab+ac+bc Układ bramek AND i OR realizujący funkcję f 21
a b a c b c (a+b) (a+c) (b+c) (a+b)(a+c)(b+c) Układ bramek AND i OR realizujący funkcję f 20
Dana jest funkcja a f = a + cb b c a+bc Układ bramek AND, OR realizujący funkcję f a b a+bc c Układ bramek AND, OR i negacji realizujący funkcję f
Budowa układu przy wykorzystaniu bramek NAND lub NOR Na podstawie wzoru funkcji określającej jej minimalną postać sumy (iloczynu) można zaprojektować układ zbudowany z elementów NAND (NOR). Układ tak zaprojektowany będzie składał się z trzech poziomów. Poziom I (licząc od wejść układu) zawiera układy które negują sygnały wejściowe. Poziom II realizuje poszczególne funkcje. Ilość funktorów NAND jest równa ilości składników sumy a ilość funktorów NOR jest równa ilości czynników iloczynu. Poziom III stanowi pojedynczy element NAND (NOR). UWAGA: Dwa ostatnie poziomy są niezbędne.
dla minimalnej postaci sumy funkcji f 11 = a+b+c, f 21 = ab+ac+bc. Poziom I Poziom II Poziom III a b c a b c a b c = a+b+c Realizacja funkcji f 11 przy pomocy bramek NAND
a b c Poziom I Poziom II Poziom III ab ac bc a b ac bc = ab+ac+bc Realizacja funkcji f 21 przy pomocy bramek NAND
dla minimalnej postaci iloczynu funkcji f 10 = (a+b+c), f 20 = (a+b)(a+c)(b+c). Poziom I Poziom II Poziom III a b c a+b+c = a+b+c Realizacja funkcji f 10 przy pomocy bramek NOR
a b c Poziom I Poziom II Poziom III a+b a+c b+c (a+b)+(a+c)+(b+c) = (a+b)(a+c)(b+c) Realizacja funkcji f 20 przy pomocy bramek NOR
UWAGA: Funkcja zapisana w formie sumy iloczynów, zazwyczaj realizowana jest za pomocą elementów typu NAND. Funkcja zapisana w formie iloczynu sum, zazwyczaj realizowana jest za pomocą elementów typu NOR. Jeżeli funkcja zapisana w formie sumy iloczynów, ma być zrealizowana jest za pomocą elementów typu NOR, to należy zanegować wszystkie wejścia i wyjścia. Jeżeli funkcja zapisana w formie iloczynu sum, ma być zrealizowana jest za pomocą elementów typu NAND, to należy zanegować wszystkie wejścia i wyjścia.
Zbudować układ realizujący funkcję, której tablica Karnaugha przedstawiona jest poniżej.
1 f = ac + ab + bc
a b c
0 f = (a + b)(a + c)(b + c)
a b c
Realizacja układu przy wykorzystaniu multipleksera Zasada łączenia wejść multipleksera jest następująca: do wejść adresowych podłączane są sygnały wejściowe do odpowiednich wejść multipleksera (określanych przez odpowiednie wejścia adresowe), podłączane są sygnały 1 lub 0 zgodnie z tablicą wartości funkcji.
1 0 0 1 2 3 4 5 6 f 7 A1 A 2 A 3 a b c
Hazard Hazard określa możliwość powstania, pod wpływem określonych zmian sygnałów wejściowych, na niektórych wyjściach układu: niepożądanych krótkotrwałych sygnałów 1 lub 0 przy wymaganych niezmienionych sygnałach odpowiednio 0 lub 1, jest to tzw. hazard statyczny; krótkotrwałych zmian sygnałów wyjściowych np. 01 lub 10 przy wymaganej jednokrotnej zmianie 01 lub 10, jest to tzw. hazard dynamiczny.
Hazard statyczny Hazard statyczny powstaje w rzeczywistych układach przełączających w wyniku niejednoznaczności zmian sygnału x i jego negacji x co powoduje, że nie są spełnione następujące tożsamości algebry Boole a: x + x = 1; x x = 0.
Normalna postać sumy funkcji jest następująca: y = x + 1x2 x3x1
Przy zmianie stanu wejść x 1x2 x3 z wartości 011 na 111 zmienia się tylko x 1 z 0 na 1 przy x 1 = 1 i x 2 = 1 a funkcja y nie powinna zmieniać swojej wartości
Tablice Karnaugha Aby nie występował hazard musi być spełniona zasada, że każde dwie sąsiednie kratki zawierające jednakowe wartości 1 lub 0 muszą być objęte wspólną grupą.
W normalnej postaci sumy funkcji y = Ax + Bx + Z gdzie: A,B dowolne elementarne iloczyny, Z implikant lub suma implikantów funkcji y występuje hazard statyczny względem zmiennej x, jeżeli: AB ABZ. Aby wyeliminować hazard należy funkcję y uzupełnić implikantem g=ab, co nie zmienia jej wartości, gdyż zgodnie z regułą uogólnionego sklejania zachodzi tożsamość Ax + Bx + AB = Ax + Bx.
Analogicznie w normalnej postaci iloczynu funkcji y = ( A + x )( B + x )Z występuje hazard jeżeli nie jest spełniony warunek A + B= A+ B+ Z. Aby wyeliminować hazard należy funkcję y implicentem g=a+b, co nie zmienia jej wartości. uzupełnić
Normalna postać sumy funkcji jest następująca: y = x + 1x2 x3 x1 y = Ax + Bx1 1 + Z gdzie: A =, B = x3 i Z = 0 x 2 a zatem AB = x2 x3 0 Aby wyeliminować hazard należy dodać implikant x 2 x3. Funkcja będzie miała postać y = x + 1x2 + x3 x1 x2x3
Automaty sekwencyjne
Automatem sekwencyjnym (automatem z pamięcią) nazywamy układ przełączający przetwarzający cyfrową informację x i, dostarczoną na jego wejście w cyfrową informacje y i wytworzoną na wyjściach w ten sposób, że w dowolnej chwili czasowej t i informacja y t i zależy od informacji x i w chwili t oraz we wszystkich chwilach t-1, t-2,... t-n czyli Y t i = f ( x t i, x t i 1, x 2t,... x t n i i )
Zespół sygnałów dostarczanych na wejścia automatu nazywa się stanem wejść automatu X = ( x, x, x,... x 1 2 3 n ) Zespół sygnałów wytwarzanych na wyjściach automatu nazywa się stanem wyjść automatu Y = ( y, y, y,... y 1 2 3 m )
Automat posiada pamięć, która w realnych układach składa się z k elementarnych dwustanowych komórek pamięciowych Q 1, Q 2,... Q k, zwanych automatami elementarnymi. Kombinację stanów wyjść tych automatów nazywa się stanem wewnętrznym automatu sekwencyjnego. A = ( Q1, Q2, Q3,... Qk ) Liczba możliwych stanów wewnętrznych automatu jest równa 2 k.
Stany elementów pamięci zmieniają się pod wpływem odpowiednich sygnałów sterujących q 1, q 2,... q k, zwanych wzbudzeniami. Kombinację sygnałów wzbudzeń doprowadzonych do pamięci autoamtu nazywa się stanem wzbudzeń. B = ( q, q, q,... q 1 2 3 k )
X τ 1 γ K1 B τ 2 P µ A τ 3 λ K2 Y B t+τ1 =γ(x t,a t ) (1) A t+ τ1+τ2 =µ(β t+τ1 ) (2) A t+ τ1+τ2 =σ(x t,a t )
Automat Moore a X τ 1 γ K1 B τ 2 P µ A τ 3 λ K2 Y X τ k σ A τ 3 λ K2 Y
Automat Mealy ego X τ1 γ B τ2 τ3 µ λ A Y K1 P K2 X τ k σ A τ3 λ K2 Y
Automaty dzielą się na: automaty synchroniczne - zmiany następują pod wpływem sygnału taktującego automaty asynchroniczne - zmiany następują pod wpływem zmian sygnałów wejściowych
W automatach synchronicznych taktem określa się odstępy pomiędzy poszczególnymi sygnałami pod wpływem których zachodzą zmiany stanów wewnętrznych automatu. W automatach asynchronicznych taktem określa się odstęp czasu między kolejnymi zmianami sygnałów wejściowych.
X τ = 0 k τ A τ 3 λ K2 Y
X τ=0 τ Y K τ Y t+1 =σ 1 (X t,y t ) Y t+1 =σ 2 (X t,y t,z t ) Z t+1 =σ 3 (X t,y t,z t )
A t +1 =δ( X t, X t- 1 X X, At, At 1 A t ) Y t+1 = λ( X t, A t )
Sposoby zapisywania działania automatu sekwencyjnego Opis słowny Opis za pomocą ciągów zero jedynkowych Wykresy czasowe Tablica kolejności łączeń Grafy automatów Tablica przejść i wyjść
1 2 0 1 1 0 0 0 0 1 3 1 0 1
0 / 0 1 1 / 1 1 1 / 1 1 1 / 0 0 1 2 3 0 / 1 0 0 / 1 0
X t A t 0 1 Y t 1 1 2 00 2 3 3 01 3 2 1 10 A t+1,y t+1
X t A t 0 1 1 1 2 2 1 3 3 2 3 X t A t 0 1 1 01 11 2 10 11 3 10 00 A t+1 Y t+1 X t A t 0 1 1 1/01 2/11 2 1/10 3/11 3 2/10 3/00 A t+ 1/Yt +1
Przekształcenie automatu Moore a w automat Mealyego X t A t X 1 X 2 A 1 A 3 A 2 Y 2 A 2 A 4 A 6 Y 2 A 3 A 3 A 2 Y 1 A 4 A 4 A 6 Y 1 A 5 A 6 A 4 Y 3 A 6 A 1 A 5 Y 3 A t+1 X t A t X 1 X 2 A 1 A 3 /Y 1 A 2 /Y 2 A 2 A 4 /Y 1 A 6 /Y 3 A 3 A 3 /Y 1 A 2 /Y 2 A 4 A 4 /Y 1 A 6 /Y 3 A 5 A 6 /Y 3 A 4 /Y 1 A 6 A 1 /Y 2 A 5 /Y 3 A t+1 /Y t+1
X t A t X 1 X 2 A 1 A 3 /Y 1 A 2 /Y 2 A 2 A 4 /Y 1 A 6 /Y 3 A 3 A 3 /Y 1 A 2 /Y 2 A 4 A 4 /Y 1 A 6 /Y 3 A 5 A 6 /Y 3 A 4 /Y 1 A 6 A 1 /Y 2 A 5 /Y 3 X t A t X 1 X 2 A 1,A 3 A 3 /Y 1 A 2 /Y 2 A 2,A 4 A 4 /Y 1 A 6 /Y 3 A 5 A 6 /Y 3 A 4 /Y 1 A 6 A 1 /Y 2 A 5 /Y 3 A t+1 /Y t+1 A t+1 /Y t+1
X t A t X 1 X 2 A 1 A 1 /Y 1 A 2 /Y 2 A 2 A 2 /Y 1 A 4 /Y 3 A 3 A 4 /Y 3 A 2 /Y 1 A 4 A 1 /Y 2 A 3 /Y 3 A t+1 /Y t+1
Przekształcenie automatu Mealyego w automat Moore a X t X t A t X 1 X 2 A 1 A 1 /Y 1 A 2 /Y 2 A 2 A 2 /Y 1 A 4 /Y 3 A 3 A 4 /Y 3 A 2 /Y 1 A 4 A 1 /Y 2 A 3 /Y 3 A t+1 /Y t+1 A t X 1 X 2 A 1 (D 1 ) A 1 /Y 1 (D 2 ) A 2 /Y 2 A 2 (D 3 ) A 2 /Y 1 (D 4 ) A 4 /Y 3 A 3 (D 4 ) A 4 /Y 3 (D 3 ) A 2 /Y 1 A 4 (D 5 ) A 1 /Y 2 (D 6 ) A 3 /Y 3 A t+1 /Y t+1
X t A t X 1 X 2 A 1 (D 1 ) A 1 /Y 1 (D 2 ) A 2 /Y 2 A 2 (D 3 ) A 2 /Y 1 (D 4 ) A 4 /Y 3 A 3 (D 4 ) A 4 /Y 3 (D 3 ) A 2 /Y 1 A 4 (D 5 ) A 1 /Y 2 (D 6 ) A 3 /Y 3 X t A t X 1 X 2 D 1 D 1 D 2 Y 1 D 2 D 3 D 4 Y 2 D 3 D 3 D 4 Y 1 D 4 D 5 D 6 Y 3 D 5 D 1 D 2 Y 2 D 6 D 4 D 3 Y 3 A t+1 A t+1 /Y t+1
X t A t X 1 X 2 A 3 A 3 A 2 Y 1 A 2 A 4 A 6 Y 2 A 4 A 4 A 6 Y 1 A 6 A 1 A 5 Y 3 A 1 A 3 A 2 Y 2 A 5 A 6 A 4 Y 3 A t+1 X t A t X 1 X 2 A 1 A 3 A 2 Y 2 A 2 A 4 A 6 Y 2 A 3 A 3 A 2 Y 1 A 4 A 4 A 6 Y 1 A 5 A 6 A 4 Y 3 A 6 A 1 A 5 Y 3 A t+1
Wyścig krytyczny X 1 X 2 Q 1 Q 2 Q 3 00 01 11 10 000 100 100 000 100 001 001 000 000 110 011 001 111 010 010 010 011 011 010 110 110 010 010 110 110 111 011 110 111 110 101 101 100 101 101 100 101 100 111 110
X 1 X 2 Wyścig niekrytyczny Q 1 Q 2 Q 3 00 01 11 10 000 100 100 000 110 001 001 000 000 010 011 001 111 010 010 010 011 011 010 110 110 010 010 110 110 111 011 110 111 110 101 101 100 101 101 100 101 100 111 110
X 1 X 2 Wystąpienie drgań Q 1 Q 2 Q 3 00 01 11 10 000 100 100 000 110 001 001 000 000 010 011 001 111 010 010 010 011 011 010 110 110 010 010 110 110 111 011 110 111 110 101 101 100 101 101 100 101 100 111 110
Sposoby eliminacji wyścigu: zmiana kodu stanów wewnętrznych zamiana wyścigu krytycznego na wyścig niekrytyczny
Synteza automatów sekwencyjnych Etapy procesu syntezy automatów sekwencyjnych synteza właściwa- budowa automatu pierwotnego w postaci tablicy, grafu lub modelu matematycznego minimalizacja liczby stanów wewnętrznych kodowanie stanów wewnętrznych synteza kombinacyjna - wyznaczanie struktury wewnętrznej
Automaty elementarne Automaty elementarne są podstawowymi komórkami pamięciowymi automatów sekwencyjnych. Zawsze są stosowane w automatach synchronicznych, natomiast w automatach asynchronicznych tylko wtedy, gdy pamięć jest realizowana za pomocą odrębnych bloków, a nie za pomocą pętli sprzężeń zwrotnych. Automaty elementarne realizuje się za pomocą różnego rodzaju przerzutników bistabilnych.
Przerzutnik bistabilny jest elementem: o dwóch wzajemnie komplementarnych wyjściach, jednym lub kilku wejściach. Rodzaje przerzutnuków: asynchroniczne synchroniczne statyczne (potencjałowe) dynamiczne (impulsowe)
Przerzutniki asynchroniczne: wz rs jk t Przerzutniki synchroniczne: RS JK D T
Przerzutnik wz z Q w w Q z Q
Przerzutnik rs s r Q Q s r Q
Przerzutnik jk j k Q Q j k Q
Przerzutnik t t Q Q t Q
Przerzutnik RS S c R Q Q c S S c R Q Q R Q
Przerzutnik JK J c K Q Q c J J c Q Q K Q
Przerzutnik D D c Q Q c D c Q Q D Q
Przerzutnik T T c Q Q c T c Q Q T Q
Synteza automatu synchronicznego określić liczbę i typ przerzutników niezbędnych do realizacji układu przedstawić wymaganą sekwencję stanów w postaci np. tablicy stanów sporządzić tablicę przejść sporządzić tablicę Karnaugha dla określenia zminimalizowanych funkcji logicznych realizowanych przez układ kombinacyjny rozpatrywanego układu sekwencyjnego zaimplementować układ
Tablice przejść podstawowych przerzutników D Q t 0 1 0 0 1 1 0 1 Q t+1 T Q t 0 1 0 0 1 1 1 0 Q t+1 RS Q t 00 01 11 10 0 0 0-1 1 1 0-1 Q t+1 JK Q t 00 01 11 10 0 0 0 1 1 1 1 0 0 1 Q t+1 Tablice wzbudzeń podstawowych przerzutników Q t Q t+1 D T JK RS 0 0 0 0 0 - - 0 0 1 1 1 1-0 1 1 0 0 1-1 1 0 1 1 1 0-0 0 -
Synteza sumatora szeregowego ab Q t 00 01 11 10 0 0 0 1 0 1 0 1 1 1 Q t+1 ab Q t 00 01 11 10 0 0 1 0 1 1 1 0 1 0 Y
ab Q t 00 01 11 10 0-0 - 0 0 1-0 1 1 0 0-0 - 0 - RS ab Q t 00 01 11 10 0 0-0 - 1-0 - 1-1 - 0-0 - 0 JK ab Q t 00 01 11 10 0 0 0 1 0 1 0 1 1 1 D ab Q t 00 01 11 10 0 0 0 1 0 1 1 0 0 0 T
Tablice wzbudzeń podstawowych przerzutników Q t Q t+1 D T JK RS 0 0 0 0 0 - - 0 0 1 1 1 1-0 1 1 0 0 1-1 1 0 1 1 1 0-0 0 - D=1 T=1 J=1 K=1 R=1 S=1 Warunek konieczny Warunek dozwolony Q t+1 1 1 1 0 0 1 Q t+1 1 0 - - - - Q t+1 - - 0 0 0 1 Q t+1 - - 1 1 - -
D= [ F 1, F 1,( F )] S = [ F 1,( F 1, F )] R= [ F 0,( F 0, F )] J = [ F 1,( F 0, F 1, F )] K = [ F 0,( F 1, F 0, F )] T = [ F 1, F 0,( F )]
ab Q t 00 01 11 10 0 0 0 1 0 1 0 1 1 1 Q t+1
Synteza licznika modulo 8 Q 3 t Q 2 t Q 1 t Q 3 t+1 Q 2 t+1 Q 1 t+1 0 0 0 0 1 0 0 1 1 0 0 1 2 0 1 0 2 0 1 0 3 0 1 1 3 0 1 1 4 1 0 0 4 1 0 0 5 1 0 1 5 1 0 1 6 1 1 0 6 1 1 0 7 1 1 1 7 1 1 1 0 0 0 0
Q 3 t Q 2 t Q 1 t 0 1 00 0 0 01 0 1 11 1 0 10 1 1 Q 3 t+1 Q 3 t Q 2 t Q 1 t 0 1 00 0 1 01 1 0 11 1 0 10 0 1 Q 2 t+1 Q 3 t Q 2 t Q 1 t 0 1 00 1 0 01 1 0 11 1 0 10 1 0 Q 1 t+1
Przekształcanie układów synchronicznych w asynchroniczne Zasady przekształcenia układu synchronicznych w asynchroniczne 1. Jeżeli zbiór pogrubionych symboli przerzutnika Q A mieści się w zbiorze pogrubionych zer (jedynek) przerzutnika Q B, to do wejścia zegarowego c przerzutnika Q A można doprowadzić sygnał Q B (Q B ) zakładając, że przerzutniki są wyzwalane zboczem opadającym 1 0. 2. Sygnały wzbudzeń przerzutnika Q A muszą być przy tym określone tylko w tych kratkach tablicy, w których występują pogrubione zera ( jedynki w tablicy przejść przerzutnika Q B.
Q 3 t Q 2 t Q 1 t 0 1 00 - - 01-1 11-0 10 - - D c 3 3 = = Q Q 3 2 Q 3 t+1 Q 3 t Q 2 t Q 1 t 0 1 00-1 01-0 11-0 10-1 D c 2 2 = Q = Q 2 2 Q 2 t+1 Q 3 t Q 2 t Q 1 t 0 1 00 1 0 01 1 0 11 1 0 10 1 0 Q 1 t+1 D c 1 1 = = Q 1 WE
Q 3 t Q 2 t Q 1 t 0 1 00 - - 01-1 11-0 10 - - J c 3 = K3 = 1 3 = Q 2 Q 3 t+1 Q 3 t Q 2 t Q 1 t 0 1 00-1 01-0 11-0 10-1 J c 2 = K2 = 1 2 = Q 1 Q 2 t+1 Q 3 t Q 2 t Q 1 t 0 1 00 1 0 01 1 0 11 1 0 10 1 0 Q 1 t+1 J1 = K1 = 1 c = WE 1
Licznik dekadowy Q 4 t Q 3 t Q 2 t Q 1 t Q 4 t+1 Q 3 t+1 Q 2 t+1 Q 1 t+1 0 0 0 0 0 1 0 0 0 1 1 0 0 0 1 2 0 0 1 0 2 0 0 1 0 3 0 0 1 1 3 0 0 1 1 4 0 1 0 0 4 0 1 0 0 5 0 1 0 1 5 0 1 0 1 6 0 1 1 0 6 0 1 1 0 7 0 1 1 1 7 0 1 1 1 8 1 0 0 0 8 1 0 0 0 9 1 0 0 1 9 1 0 0 1 0 0 0 0 0
Q 4 t Q 3 t Q t t 2 Q 1 00 01 11 10 00 0 0 0 0 01 0 0 1 0 11 - - - - 10 1 0 - - Q 4 t Q 3 t Q t t 2 Q 1 00 01 11 10 00 0 0 1 0 01 1 1 0 1 11 - - - - 10 0 0 - - Q 4 t+1 Q 3 t+1 J K 4 4 = = Q Q 3 1 Q Q 2 1 K = 3 = J3 Q2Q1 Q 4 t Q 3 t Q t t 2 Q 1 00 01 11 10 00 0 1 0 1 Q 4 t Q 3 t Q 2 t Q 1 t 00 01 11 10 00 1 0 0 1 01 0 1 0 1 01 1 0 0 1 11 - - - - 10 0 0 - - 11 - - - - 10 1 0 - - Q 2 t+1 Q 1 t+1 J K 2 2 = Q 3 = Q 1 Q 2 Q 1 J 1 = K1 = 1
Q 4 t Q 3 t Q t t 2 Q 1 00 01 11 10 00 0 0 0 0 01 0 0 1 0 11 - - - - 10 1 0 - - Q 4 t Q 3 t Q t t 2 Q 1 00 01 11 10 00 0 0 1 0 01 1 1 0 1 11 - - - - 10 0 0 - - Q 4 t+1 Q 3 t+1 Q 4 t Q 3 t Q t t 2 Q 1 00 01 11 10 00 0 1 0 1 01 0 1 0 1 11 - - - - 10 0 0 - - Q 4 t Q 3 t Q 2 t Q 1 t 00 01 11 10 00 1 0 0 1 01 1 0 0 1 11 - - - - 10 1 0 - - Q 2 t+1 Q 1 t+1
Q 4 t Q 3 t Q t t 2 Q 1 00 01 11 10 00-0 0-01 - 0 1-11 - - - - 10-0 - - Q 4 t Q 3 t Q t t 2 Q 1 00 01 11 10 00 - - 1-01 - - 0-11 - - - - 10 - - - - Q 4 t+1 Q 3 t+1 J K c 4 4 4 = = = Q 1 Q 3 1 Q 2 J c 3 = K3 = 1 3 = Q 2 Q 4 t Q 3 t Q t t 2 Q 1 00 01 11 10 00-1 0-01 - 1 0-11 - - - - 10-0 - - Q 4 t Q 3 t Q 2 t Q 1 t 00 01 11 10 00 1 0 0 1 01 1 0 0 1 11 - - - - 10 1 0 - - Q 2 t+1 Q 1 t+1 J K c 2 2 2 = Q = 1 = Q 4 1 J1 = K1 = 1 c = WE 1