2.1. Metoda minimalizacji Quine a-mccluskey a dla funkcji niezupełnych. W przypadku funkcji niezupełnej wektory spoza dziedziny funkcji wykorzystujemy w procesie sklejania, ale nie uwzględniamy ich w tablicy pokrycia. Odrzucamy również wektory, które nie pokrywają żadnej jedynki (powstałe ze sklejenia samych wektorów spoza dziedziny funkcji) Przykład: Funkcja f(x1, x2, x3, x4, x 5 ) przyjmuje wartość jeden dla {0, 1, 5, 7, 10, 11, 15, 16, 26, 27, 30} oraz ma wartość nieokreśloną dla {2, 4, 13, 20, 31}. Podać minimalną postać sumacyjną. 0 0 0 0 0 0 1 0 0 0 0 1 2 0 0 0 1 0 4 0 0 1 0 0 5 0 0 1 0 1 7 0 0 1 1 1 10 0 1 0 1 0 11 0 1 0 1 1 13 0 1 1 0 1 15 0 1 1 1 1 16 1 0 0 0 0 20 1 0 1 0 0 26 1 1 0 1 0 27 1 1 0 1 1 30 1 1 1 1 0 31 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1 2 0 0 0 1 0 4 0 0 1 0 0 16 1 0 0 0 0 5 0 0 1 0 1 10 0 1 0 1 0 20 1 0 1 0 0 7 0 0 1 1 1 11 0 1 0 1 1 13 0 1 1 0 1 26 1 1 0 1 0 15 0 1 1 1 1 27 1 1 0 1 1 30 1 1 1 1 0 31 1 1 1 1 1 1
0,1 0 0 0 0 * 0,2 0 0 0 * 0 0,4 0 0 * 0 0 0,16 * 0 0 0 0 1,5 0 0 * 0 1 2,10 0 * 0 1 0 4,5 0 0 1 0 * 4,20 * 0 1 0 0 16,20 1 0 * 0 0 5,7 0 0 1 * 1 5,13 0 * 1 0 1 10,11 0 1 0 1 * 10,26 * 1 0 1 0 0,1,4,5 0 0 * 0 * 0,4,1,5 0 0 * 0 * 0,4,16,20 * 0 * 0 0 0,16,4,20 * 0 * 0 0 5,7,13,15 0 * 1 * 1 5,13,7,15 0 * 1 * 1 10,11,26,27 * 1 0 1 * 10,26,11,27 * 1 0 1 * 11,15,27,31 * 1 * 1 1 11,27,15,31 * 1 * 1 1 26,27,30,31 1 1 * 1 * 26,30,27,31 1 1 * 1 * 7,15 0 * 1 1 1 11,15 0 1 * 1 1 11,27 * 1 0 1 1 13,15 0 1 1 * 1 26,27 1 1 0 1 * 26,30 1 1 * 1 0 15,31 * 1 1 1 1 27,31 1 1 * 1 1 30,31 1 1 1 1 * 2
0 1 5 7 10 11 15 16 26 27 30 0, 2 000*0 2, 10 0*010 10,11,26,27 *101* 0,4,1,5 00*0* 0,4,16,20 *0*00 5,7,13,15 0*1*1 11,15,27,31 *1*11 26,27,30,31 11*1* Wynik: f = x 2 /x 3 x 4 + /x 1 /x 2 /x 4 +/x 2 /x 4 /x 5 + /x 1 x 3 x 5 + x 1 x 2 x 4 2.1.1. Metoda Quine a-mccluskey a w zapisie dziesiętnym. W przypadku funkcji dużej liczby zmiennych wypisywanie wielu kolumn jest uciążliwe i łatwo powoduje błędy, dlatego bardziej wskazane jest posługiwanie się zapisem dziesiętnym. Ogólne zasady są jak poprzednio, a kolejność czynności jest następująca: 1. Określamy liczbę jedynek dla danego wektora opisującego postać kanoniczną funkcji i wypisujemy kolumnę z podziałem na grupy o tej samej liczbie jedynek. 2. Druga kolumna powstaje z pierwszej w wyniku sklejenia, przy czym obowiązują następujące zasady: a) skleja się liczby należące do sąsiednich grup, b) sklejane liczby muszą się różnic o 2 k (k = 0,1,2,...), c) liczby można sklejać tylko wówczas, gdy liczba z grupy o większej liczbie jedynek jest większa, d) wynik sklejenia a z b zapisuje się w postaci a,b (c) przy czym c jest różnicą między a i b 3
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. 4. Wyrażenia, których nie udało się skleić wpisuje się w tablicę pokrycia i ruguje wyrażenia zbędne. 5. Wyrażenia niezredukowane zmienia się na postać binarną, a następnie literową, zgodnie z zasadami: a) wypisuje się w postaci binarne pierwszą liczbę wchodząca w skład wyrażenia b) na pozycjach, których waga równa jest podanym w nawiasie różnicom, pisze się * zamiast zera lub jedynki c) poszczególnym pozycją zero-jedynkowym przypisuje się odpowiednie litery. Przykład f(x 1, x 2, x 3, x 4 ) = Σ[0, 1, 2, 4, 5, 10, 12, (8, 14)] 0 1 2 4 8 5 10 12 14 0,1 (1) 0,2 (2) 0,4 (4) 0,8 (8) 1,5 (4) 2,10 (8) 4,5 (1) 4,12 (8) 8,10 (2) 8,12 (4) 10,14 (4) 12,14 (2) 0,1,4,5 (1,4) 0,2,8,10 (2,8) 0,4,8,12 (4,8) 8,10,12,14 (2,4) 4
0 1 2 4 5 10 12 0,1,4,5 (1,4) 0*0* 0,2,8,10 (2,8) *0*0 0,4,8,12 (4,8) **00 8,10,12,14 (2,4) 1**0 Wynik f = /x 1 /x 3 + /x 2 /x 4 + /x 3 /x 4 lub f = /x 1 /x 3 + /x 2 /x 4 + x 1 /x 4 3. UKŁADY SEKWENCYJNE 3.1. WPROWADZENIE Przypomnienie podstawowego rozróżnienia: > układy kombinacyjne: Y i = f(x i ) - odpowiedź zależy wyłącznie od bieżącego pobudzenia; > układy sekwencyjne: Y i = f(x l, X 2,... X i ) - odpowiedź zależy od pełnej historii pobudzeń wcześniejszych. Układ pamięta" pobudzenia wcześniejsze - pamięć" układu określa się mianem jego stanu. W praktyce układów cyfrowych stan reprezentuje zbiór sygnałów binarnych, tzw. zmiennych stanu. Skończona liczba zmiennych stanów - skończony zbiór stanów - automat skończony (w teorii automatów rozważa się układy o nieskończonym zbiorze stanów). Ogólnie, przełączanie układu może zależeć od (często niestałych) zależności czasowych wprowadzonych przez dodanie sprzężeń zwrotnych. Alternatywa: przełączanie układu synchronizuje się dodatkowym sygnałem (-ami) synchronizującym (-ymi). Automaty synchroniczne a asynchroniczne, metody synchronizacji pracy - zagadnienia omawiane dalej. 5
3.1.1. Sprzężenie zwrotne a układ kombinacyjny Przykład 1: I Q 0 0 1 Q Uwaga: Q' - stan następny", nowy" w stosunku do aktualnego Q. Analiza pracy: 1) Jeśli I = 0: Q' = Q 0 = 0 - stan jednoznacznie określony jak w układach kombinacyjnych = STAN STABILNY 2) Jeśli I =1: Q' = Q 1=Q - też stan poprawny, równy 0 lub 1 w zależności od stanu poprzedniego - układ pamięta swój stan = STAN BISTABILNY Ze względu na stan bistabilny ten układ NIE jest już kombinacyjny. Idea pracy naszego układu: Q = 1 - nie było zbocza opadającego sygnału I, Q = 0 - wykryto zbocze opadające sygnału I, + sygnale inicjujący (ustawiający Q = 1) i jest kompletny układ detekcji zbocza opadającego. 6
Przykład 2: Analiza pracy: 1) Jeśli I= 0: Q' =/(Q 0) = /0 = 1 - stan stabilny j.w. 2) Jeśli I= 1: Q' =/(Q 1) = /Q sprzeczność = STAN ASTABILNY W poprawnych projektach automatów stany astabilne NIE powinny wystąpić. 3.1.2. Asynchroniczny przerzutnik RS Dokładna analiza pracy wymaga tworzenia tzw. grafów przejść: dla założonych stanów bramek Q i /Q oraz wejść R i S bada się lawinę zmian stanów oraz stany końcowe. W tym przypadku wszystkie kombinacje stanów początkowych Q - /Q oraz pobudzeń R - S prowadzą do osiągnięcia stanów stabilnych bądź bistabilnych; nie ma niebezpieczeństwa stanów astabilnych. Z analizy powstaje następująca tabela pracy układu (uwaga: to nie jest tabela prawdy!): S R Q /Q 0 0 Q /Q - stan bistabilny 0 1 0 1 1 0 1 0 - stany stabilne 1 1 0 0 7
S R Q /Q Typ pobudzenia: 0 0 Q /Q - pamiętaj" stan 0 1 0 1 - kasuj (reset) 1 0 1 0 - ustaw (set) 1 1 0 0 - pobudzenie sprzeczne Opis układu: Q, /Q stan przerzutnika; wyjście /Q jest negacją wyjścia Q - tzw. wyjścia komplementarne; S (SET)-wejście ustawiające, aktywne stanem 1; R (RESET)-wejście kasujące, aktywne stanem 1. Jest to elementarny, w pełni funkcjonalny układ sekwencyjny zdolny do pamiętania 1 bitu informacji. Uwaga: Jednoczesny stan aktywny obu wejść S oraz R jest zabroniony bo wówczas wbrew zasadzie komplementarności: Q = /Q = 0 Realizacja dualna na bramkach NAND: /S /R Q /Q 0 0 1 1 0 1 1 0 1 0 0 1 1 1 Q /Q Teraz wejścia ustawiające i kasujące są aktywne stanem niskim - stąd negacje w ich nazwach. 8
Przykład: eliminacja drgań styków Problem: styk po przełączeniu drga w nowym położeniu przez kilka - kilkadziesiąt ms. Uwagi: 1) Na wykresie pominięto opóźnienia czasowe. 2) Przyjmujemy tzw. logikę dodatnią sygnałów napięciowych: 0 V = logiczne 0, +Vcc = logiczne 1 3) W drganiach występuje jednoczesny stan wysoki => zastosowano przerzutnik RS na bramkach NAND 4) Gdyby występował jednocześnie stan 0 - byłby przerzutnik na bramkach NOR. 3.2. UKŁADY SEKWENCYJNE - OPIS FORMALNY X = < x 1, x 2,... x n > - wektor n binarnych sygnałów WE Y = < y 1, y 2,... y m > - wektor m binarnych sygnałów WY X = {X 0, X 1,... X N-1 } - zbiór stanów (słów) WE (N 2 n ); alfabet WE Y= {Y 0, Y 1,... Y M-1 } - zbiór stanów (słów) WY (M 2 m ); alfabet WY A= { A 0, A 1,... A K-1 } - zbiór stanów wewnętrznych; alfabet wewnętrzny 9
Stan wewnętrzny jest reprezentowany wektorem bitowym: A = < Q 1, Q 2,... Q K >, K 2 k gdzie sygnały binarne Q i symbolizują stan elementarnych układów pamięci tzw. przerzutników. Przy tak określonych alfabetach, pracę układu sekwencyjnego opisują dwie funkcje: 1) δ: A X A - tzw. funkcja przejść: podaje stan następny, do którego automat ma przejść w zależności od stanu bieżącego oraz pobudzenia na wejściu układu; δ(a,x)=a'. 2) λ: A X Y - tzw. funkcja wyjść: podaje stan wyjść układu w funkcji stanu bieżącego oraz pobudzenia na wejściu układu; λ(a, X) = Y. UWAGA: jest to sformułowanie funkcji wyjść dla najbardziej ogólnej postaci tzw. automatu Mealy'ego. Układ cyfrowy - AUTOMAT - definiuje się jako piątkę: A = (A, X, Y, δ, λ ). 3.2.1. Automaty Mealy'ego vs. Moore'a Skoro stany wewnętrzne A zależą od stanów WE X, możliwe jest inne sformułowanie funkcji wyjść λ: δ: A X A λ: A Y -tzw. automat Moore'a: stan WY zależy wyłącznie od stanu wewnętrznego automatu (nie od stanu WE). 10
Uwagi: 1) Dla każdego automatu Mealy'ego można podać równoważny mu (w sensie generowanych odpowiedzi na WY) automat Moore'a i na odwrót. 2) Zaleta automatów Moore'a: odseparowanie WY od (być może przypadkowych) zmian sygnałów WE. 3) Automaty synchroniczne: w wersji Moore'a stan WY zmienia się także synchronicznie, w wersji Mealy'ego-nie (bo zależy od zmian WE, które ogólnie mogą być asynchroniczne). 3.2.2. Komentarze 1) Rozważamy zbiory A, X, Y wyłącznie skończone => AUTOMAT SKOŃCZONY. 2) δ i λ są funkcjami => AUTOMAT DETERMINISTYCZNY. Automat niedeterministyczny: więcej niż jeden następny stan wewnętrzny; automaty probabilistyczne. 3) Jeśli A = 1 (tylko jeden stan wewnętrzny-nieistotny) => znika przełączanie się automatu pomiędzy stanami wewnętrznymi i pozostaje tylko funkcja wyjść: λ: A X Y (skoro A = 1) λ: X Y - Y= λ (X), układ kombinacyjny! Układy kombinacyjne są formalnie definiowane jako automaty o jednoelementowym zbiorze stanów wewnętrznych. 11
3.2.3. Struktury automatu Wynikają z opisu równaniami przejść / wyjść. Dla automatów Mealy'ego: W bloku opisanym funkcją δ można wyróżnić część z elementami pamięci µ (o sygnale wyjściowym A) oraz kombinacyjną część pomocniczą γ, przygotowującą sygnały sterujące elementy pamięciowe (ozn. B). Dla automatów Moore'a: 3.2.4. Analiza dynamiczna pracy automatu Pracę bloków kombinacyjnych λ oraz γ można opisywać jak dotychczas z pominięciem czasu: Y=λ(A,X), B=Y(A,X). Nie można tak opisywać pracy układu z blokiem pamiętającym: δ(a(t), X(t) ) =A(t+τ). gdzie τ = zwłoka wprowadzana przez układ cyfrowy realizujący funkcję δ. Najczęściej wartości τ oraz analiza dynamiczna nie będzie nas interesować i będziemy oznaczać: A(t+τ) =A, δ(a, X)=A. 12
Dla współczesnych elementów τ jest rzędu nanosekund (10-9 s) - możliwa lawina zmian stanów w układzie: δ(a 0,X 0 ) = A 1 δ(a 1,X 0 ) = A 2 δ(a 2,X 0 ) = A 3... Definicja: Stan A k automatu nazywamy stabilnym A i,x j : δ(a i,x j )=A k δ(a k,x j )=A k Przy projektowaniu automatów asynchronicznych wymaga się, aby wszystkie stany były stabilne. Wady automatów asynchronicznych: kłopotliwa analiza zależności czasowych, problemy z ich spełnieniem w rzeczywistych układach cyfrowych, problemy ze stabilnością aby tego uniknąć wprowadza się synchronizację pracy układu cyfrowego. 3.3. SYNCHRONIZACJA PRACY AUTOMATÓW SEKWENCYJNYCH Cel: zmiany stanu wewnętrznego automatu następują tylko w momentach wyznaczonych sygnałem (-ami) taktującym (-ymi). Występuje specjalny sygnale wejściowy (sygnale zegarowy, CLK), którego przebieg (np. zbocza narastające) wyznacza momenty przełączania się układu: w tych momentach próbkowane są wartości sygnałów i następuje odpowiednie przełączenie się stanu wewnętrznego. Poza nimi stan sygnałów kombinacyjnych w układzie (X, B) jest nieistotny, a stan elementów pamięciowych (A) nie zmienia się - taki jest ideał. Impulsy taktujące dzielą ciągły czas na odcinki (zwane taktami) - dyskretyzacja / kwantowanie czasu: lub: t=0, 1, 2,... δ( A(t), X(t) ) =A(t+1), Y(t) = λ( A(t), X(t) µ( B(t) ) = A(t+1), B(t) = γ(a(t), X(t) ), Y(t) = λ( A(t), X(t) ). 13
Zalety synchronizacji: prostsza analiza pracy prostsze projektowanie (nie ma lawiny zmian stanów); praca nie zależy od spełnienia zależności czasowych, większa stabilność; stan sygnałów poza momentami przełączania się nieistotny odporność na zakłócenia impulsowe, hazardy itp. Zasada: zmiany stanu wewnętrznego tylko w momentach wyznaczonych... - jest pewnym ideałem. W praktyce chodzi przede wszystkim o usunięcie groźby lawinowego przełączania się układu jak to jest w pracy asynchronicznej - stąd proponuje się różne METODY SYNCHRONIZACJI układu cyfrowego. 3.3.1. Bramkowanie sygnałów WE Przerzutnik typu zatrzask, ang.: LATCH. Na przykładzie przerzutnika RS (NOR): Gdy CLK = 0 (a więc od momentu zbocza opadającego CLK) WE są odcinane od przerzutnika, jego stan jest zamrażany -ZATRZASKIWANY. Lawina przełączeń stanu wciąż możliwa, gdy CLK = 1!! Zastosowanie: - bufory, proste pamięci, -NIE przerzutniki reprezentujące stan wewnętrzny automatu! 14
3.3.2. Praca dwuzboczowa (MasterSlave) Układy wyzwalane poziomem: LEVEL-TRIGGERED CIRCUITS. Bramkowanie WE + wstrzymanie zmian stanu aż do momentu zbocza opadającego CLK. Idea: dwa kaskadowo połączone przerzutniki: Master (nadrzędny) i Slave (podrzędny), przerzutnik Master bramkowany sygnałem CLK, Slave /CLK. Gdy CLK = 1 zmiany WE ustawiają odpowiednio przerzutnik Master (Q M ), ale nie przenoszą się na wyjścia Q - /Q. Efekt końcowy: stan przerzutnika zmienia się w momencie zbocza opadającego CLK ( 50% idei pracy synchronicznej ). 15
Wada takiego rozwiązania: stan WE jest badany przez cały odcinek czasu gdy CLK = 1, a nie tylko w momencie zbocza opadającego CLK. Konsekwencja: przełączenie układu mogą zakłócić pojawiające się zakłócenia impulsowe (np. drugi impuls S= 1 mógł być takim zakłóceniem) -tzw. efekt łapania jedynek w przerzutnikach MS. 3.3.3. Pełna praca synchroniczna Układy wyzwalane zboczem: EDGE-TRIGGERED CIRCUITS. Wejścia układu są próbkowane w określonych momentach (np. zbocza narastającego CLK), a zmiana stanu przerzutnika następuje natychmiast potem. W rzeczywistości: moment próbkowania WE to przedziale czasowy wyznaczony parametrami układu: t S = time set - minimalny czas konieczny dla ustalenia się sygnału WE przed pojawieniem się zbocza przełączającego; t H = time hold- wymagany minimalny czas utrzymania sygnału WE po pojawieniu się zbocza przełączającego; może wynosić zero; τ- czas przełączania się układu. 16