280 likes | 470 Views
Problem kodowania stanów w układach sekwencyjnych (automatach). Informacje uzupełniające o układach sekwencyjnych ( zamiast W12 i W13). Sekwencyjne układy asynchroniczne. Problem kodowania w automatach.
E N D
Problem kodowania stanów w układach sekwencyjnych (automatach) Informacje uzupełniające o układach sekwencyjnych (zamiast W12 i W13) Sekwencyjne układy asynchroniczne
Problem kodowania w automatach Minimalna liczba bitów b potrzebna do zakodowania automatu, w którym liczność zbioru S jest |S| Kodowanie stanów to przypisanie kolejnym stanom automatu odpowiednich kodów binarnych. b = log2|S| Q1Q2Q3 000 001 010 011 100 Złożoność realizacji sprzętowej automatu silnie zależy od sposobu zakodowania stanów!
Problem kodowania Wariant I A = 00 B = 01 C = 10 D = 11 Wariant II A = 00 B = 11 C = 01 D = 10 Wariant II Wariant I
3 stany - 3 różne kodowania 4 stany - 3 różne kodowania Kodowanie Jak przewidzieć (obliczyć) najlepsze kodowanie stanów? Czy realne jest sprawdzenie wszystkich możliwości 5 stanów - 140 kodowań 7 stanów - 840 kodowań ponad 10 milionów kodowań 9 stanów -
KODOWANIE Problem kodowania jest bardzo trudny i nawet na poziomie akademickim nie powstały żadne praktycznie użyteczne narzędzia komputerowe wspomagające ten proces (SUL rozdz. 4.3.2). Jedyną realną do omówienia w ograniczonym czasie wykładu jest metoda wykorzystująca podział z własnością podstawienia.
Własność podstawienia Podział na zbiorze stanów automatu M=<S, I , δ> ma własność podstawienia (closedpartition), gdy dla każdej pary stanów Si, Sjnależącej do tego samego bloku i każdego wejścia Ikstany IkSi oraz IkSjnależą do wspólnego bloku . Podziały z własnością podstawienia:
Twierdzenie Dany jest automat M o zbiorze stanów S, |S| = n. Do zakodowania stanówpotrzeba Q1, ..., Qk elementów pamięci. () – liczba bloków podziału Jeżeli istnieje podział z własnością podstawienia i jeżeli r spośród k zmiennych kodujących Q1, ..., Qk, gdzie r = log2(), jest przyporządkowanych blokom podziału tak, że wszystkie stany zawarte w jednym bloku są oznaczone tymi samymi kodami Q1, ..., Qr, to funkcje Q’1, ..., Q’r, są niezależne od pozostałych (k – r) zmiennych.
Przykład - interpretacja w.p. Kodowanie wg 1 Nie wystarcza to do zakodowania 1• = (0) Warunek jednoznaczności kodowania!
a co z pozostałymi? Nie musimy obliczać funkcji wzbudzeń, aby stwierdzić, że pierwsza z nich, czyli D1 będzie… Przykład … Co to znaczy, że zastosujemy kodowanie wg podziału zamkniętego: Q1’ = D1 = f(x,Q1) Niestety tylko jedną zmienną zakodowaliśmy wg podziału zamkniętego, zatem: Q2’ = D2 = f(x,Q1,Q2,Q3) Q3’ = D3 = f(x,Q1,Q2,Q3)
Przykład … A może jest więcej podziałów zamkniętych: Można wykazać, że oprócz 1 jest 2 Kodowanie wg 1 2 Jest to kodowanie jednoznaczne
PRZYKŁAD c.d. Przy tak dobranym kodowaniu pierwsza funkcja wzbudzeń Q1’ tego automatu będzie zależna od jednej zmiennej wewnętrznej, a druga i trzecia łącznie (Q2’, Q3’) od dwóch zmiennych wewnętrznych, czyli Q1’ = f(x,Q1) Q2’ = f(x,Q2,Q3) Q3’ = f(x,Q2,Q3) Jeśli wyjdzie inaczej – TŁ stawia Kto nie wierzy, niech zakoduje, obliczy funkcje Q1’, Q2’, Q3’ i sprawdzi. Dla całego roku!
KODOWANIE W rozwiązaniu problemu kodowania z pomocą przychodzi technologia… Zadanie to znacznie się upraszcza w strukturach z pamięciami, które są bezpośrednio realizowalne w układach FPGA.
Sekwencyjne układy asynchroniczne Układy asynchroniczne – przeznaczone do specyficznych, nietypowych zastosowań W najnowszych książkach… …nic się na ten temat nie pisze …jedynie w specjalistycznych
x1 xn y1 ym Q1 Qk q1 qk Model układu asynchronicznego Model układu asynchronicznego Model układu sekwencyjnego(synchronicznego) układ kombinacyjny UK blok pamięci jest realizowany przez opóźnienia BP przerzutniki (możliwe są również realizacje z przerzutnikami asynchronicznymi) clock
(Najprostszy układ asynchroniczny) Asynchroniczny przerzutnik SR Q 1 0 1 S Q Dlaczego RS ≠ 11 ? 1 R 1 0
Synteza układów asynchronicznych . . . jest bardzo trudna na etapie kodowania stanów, ale z całkiem innych powodów niż w układach synchronicznych. Przy niewłaściwym doborze kodowania automat może pracować niezgodnie z pierwotną tablica przejść-wyjść Powstają wtedy tzw. wyścigi krytyczne wprowadzające automat do stanu innego niż jest podany w tablicy przejść wyjść. Przyczyną kłopotów są zjawiska niejednakowego opóźnienia sygnału w elementach logicznych.
11 00 11 01 A/0 B/1 10 10 00 01 C/0 10 01 11 Synteza układów asynchronicznych Kod stanu 00 01 10 Graf stanów
2 1 Analiza działania układu asynchronicznego x1 x2 Układkombinacyjny(bez opóźnień) y q1 q2 Q1 Q2 10 10 01 Opóźnienia 1 > 2 0 1 0 0 1 0 1 < 2 0 1 1 1 1 0 Wyścigkrytyczny! Wyścigniekrytyczny
Zmodyfikowana tablica przejść W celu uzyskania prawidłowego działania układu asynchronicznego jego tablicę przejść należy odpowiednio modyfikować Q1’Q2’ Q1’ Q2’
Wyznaczanie funkcji wzbudzeń Q1’Q2’ Q1’ Q2’ Dlaczego dodano dodatkową pętlę – składnik ? Y = Q2 Zjawisko hazardu
1 2 Zjawisko hazardu Przy Q1 = 1, x1 = 1, a przy zmianie x2: 1 0 na wyjściu Z powinna być stała 1 Na skutek opóźnienia sygnału w sygnale Z pojawia się krótki impuls o wartości 0. Jest to hazard statyczny - szkodliwy w układach asynchronicznych!
Zjawisko hazardu W układach asynchronicznych funkcje wzbudzeń muszą być realizowane w taki sposób, aby nie występował hazard statyczny. Wyrażenia boolowskie należy uzupełnić o składnik (nadmiarowy), odpowiadający pętli na tablicy Karnaugha, w taki sposób, aby każde dwie sąsiednie jedynki były objęte wspólną pętlą.
Jak jest zbudowany przerzutnik synchroniczny? D ? Przerzutniktypu D Clk Sygnał zegarowy nie występuje w opisie działania (w tablicy przejść) tego przerzutnika Przerzutniki synchroniczne realizujemy jako układy asynchroniczne
Przykład Synchroniczny przerzutnik typu D synchronizowany zboczem dodatnim
Przykład c.d. 11 01 Graf D clk 00 10 11 2/01 00 10 1/11 01 11 01 00 10 3/10 Rozdz. 4.4
Przykład c.d. Tablica przejść-wyjść (clk c) Zakodowana tablica p-w (kody stanów takie same, jak wyjścia Y1, Y2)
Przykład c.d. (clk c) Q1’ Q2’ Q2’ Q1’