2.1. Metoda minimalizacji Quine`a-McCluskey`a dla funkcji
Transkrypt
2.1. Metoda minimalizacji Quine`a-McCluskey`a dla funkcji
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, x5) 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 0 0 0 0 0 0 ∨ 1 0 0 0 0 1 1 0 0 0 0 1 ∨ 2 0 0 0 1 0 2 0 0 0 1 0 ∨ 4 0 0 1 0 0 4 0 0 1 0 0 ∨ 5 0 0 1 0 1 16 1 0 0 0 0 ∨ 7 0 0 1 1 1 5 0 0 1 0 1 ∨ 10 0 1 0 1 0 10 0 1 0 1 0 ∨ 11 0 1 0 1 1 20 1 0 1 0 0 ∨ 13 0 1 1 0 1 0 1 1 1 1 0 0 1 1 1 ∨ 15 7 1 0 0 0 0 0 1 0 1 1 ∨ 16 11 1 0 1 0 0 0 1 1 0 1 ∨ 20 13 1 1 0 1 0 1 1 0 1 0 ∨ 26 26 27 1 1 0 1 1 15 0 1 1 1 1 ∨ 30 1 1 1 1 0 27 1 1 0 1 1 ∨ 31 1 1 1 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,1,4,5 0 0 * 0 * 0,4,1,5 0 0 * 0 * ∨ 0,4,16,20 * 0 * 0 0 * 0 0 0 0 ∨ 0,16,4,20 * 0 * 0 0 1,5 0 0 * 0 1 ∨ 5,7,13,15 0 * 1 * 1 2,10 0 * 0 1 0 5,13,7,15 0 * 1 * 1 4,5 0 0 1 0 * ∨ 10,11,26,27 * 1 0 1 * 4,20 * 0 1 0 0 ∨ 10,26,11,27 * 1 0 1 * 16,20 1 0 * 0 0 ∨ 11,15,27,31 * 1 * 1 1 5,7 0 0 1 * 1 ∨ 11,27,15,31 * 1 * 1 1 5,13 0 * 1 0 1 ∨ 26,27,30,31 1 1 * 1 * 10,11 0 1 0 1 * ∨ 26,30,27,31 1 1 * 1 * 10,26 * 1 0 1 0 ∨ 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 = x2/x3x4 + /x1/x2/x4 +/x2/x4/x5 + /x1x3x5 + x1x2x4 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 2k (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(x1, x2, x3, x4) = Σ[0, 1, 2, 4, 5, 10, 12, (8, 14)] 0 ∨ 0,1 (1) ∨ 1 ∨ 0,2 (2) ∨ 2 ∨ 0,4 (4) ∨ 4 ∨ 0,8 (8) ∨ 0,4,8,12 (4,8) 8 ∨ 1,5 (4) 5 ∨ ∨ 8,10,12,14 (2,4) 10 ∨ 2,10 (8) ∨ 12 ∨ 4,5 (1) ∨ 14 ∨ 4,12 (8) ∨ 8,10 (2) ∨ 8,12 (4) ∨ 0,1,4,5 (1,4) 0,2,8,10 (2,8) 10,14 (4) ∨ 12,14 (2) ∨ 4 0 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 1 2 • 4 • • 5 10 12 • • • • • • Wynik f = /x1/x3 + /x2/x4 + /x3/x4 lub f = /x1/x3 + /x2/x4 + x1/x4 3. UKŁADY SEKWENCYJNE 3.1. WPROWADZENIE • Przypomnienie podstawowego rozróżnienia: > układy kombinacyjne: Yi = f(Xi) - odpowiedź zależy wyłącznie od bieżącego pobudzenia; > układy sekwencyjne: Yi = f(Xl, X2, ... Xi ) - 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 0 1 0 1 1 0 1 0 1 1 0 0 - stan bistabilny - stany stabilne 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 = < x1, x2, ... xn> - wektor n binarnych sygnałów WE Y = < y1, y2, ... ym > - wektor m binarnych sygnałów WY X = {X0, X1, ... XN-1 } - zbiór stanów (słów) WE (N ≤ 2n); alfabet WE Y= {Y0, Y1, ... YM-1} - zbiór stanów (słów) WY (M≤ 2m); alfabet WY A= { A0, A1, ... AK-1} - zbiór stanów wewnętrznych; alfabet wewnętrzny 9 Stan wewnętrzny jest reprezentowany wektorem bitowym: A = < Q1, Q2, ... QK >, K ≤ 2k gdzie sygnały binarne Qi 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-9s) - możliwa lawina zmian stanów w układzie: δ(A0,X0) = A1 → δ(A1,X0) = A2 → δ(A2,X0) = A3 ... • Definicja: Stan Ak automatu nazywamy stabilnym Ù ∀Ai,Xj : δ(Ai,Xj)=Ak ⇒ δ(Ak,Xj)=Ak 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: 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) ), lub: 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 (QM), 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: tS= time set - minimalny czas konieczny dla ustalenia się sygnału WE przed pojawieniem się zbocza przełączającego; tH= 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