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