Problem kodowania stanów w układach sekwencyjnych (automatach)
Transkrypt
Problem kodowania stanów w układach sekwencyjnych (automatach)
Informacje uzupełniające o układach sekwencyjnych (zamiast W11 i W12) Problem kodowania stanów w układach sekwencyjnych (automatach) Sekwencyjne układy asynchroniczne I T P W ZPT 1 Problem kodowania w automatach Kodowanie stanów to przypisanie kolejnym stanom automatu odpowiednich kodów binarnych. Minimalna liczba bitów b potrzebna do zakodowania automatu, w którym liczność zbioru S jest |S| v1 v2 v3 Y S1 S1 S4 ─ y2 S2 S5 S3 S1 y1 S3 S4 ─ S5 y3 S4 S1 S2 S3 y2 S5 S4 ─ S2 y4 Q1Q2Q3 000 001 010 011 100 I T P W b = log2|S| Złożoność realizacji sprzętowej automatu silnie zależy od sposobu zakodowania stanów! ZPT 2 Problem kodowania x 0 1 0 1 Wariant I Wariant II A A B 0 0 B A C 0 0 C D C 0 0 D A 0 1 A = 00 B = 01 C = 10 D = 11 A = 00 B = 11 C = 01 D = 10 s B Wariant I I T P W Wariant II ' = 44 + [ 44 ' = [ 4 + [ 44 ' = [44 + [44 + [ 44 ' = [ \ = [44 \ = [44 ZPT 3 Kodowanie Jak przewidzieć (obliczyć) najlepsze kodowanie stanów? Czy realne jest sprawdzenie wszystkich możliwości 3 stany - 3 różne kodowania 4 stany - 3 różne kodowania 5 stanów - 140 kodowań I T P W 7 stanów - 840 kodowań 9 stanów - ponad 10 milionów kodowań ZPT 4 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). Z pomocą przychodzi technologia… Zadanie to znacznie się upraszcza w strukturach z pamięciami, które są bezpośrednio realizowalne w układach FPGA. I T P W ZPT 5 Sekwencyjne układy asynchroniczne Układy asynchroniczne – przeznaczone do specyficznych, nietypowych zastosowań W najnowszych książkach… I T P W ZPT …nic się na ten temat nie pisze …jedynie w specjalistycznych Model układu asynchronicznego Model układu sekwencyjnego Model układu asynchronicznego (synchronicznego) x1 y1 UK xn Q1 Qk ym układ kombinacyjny q1 blok pamięci jest realizowany BP qk przez opóźnienia przerzutniki clock Brak zegara bardzo utrudnia projektowanie tych układów I T P W ZPT 7 Najprostszy układ asynchroniczny SR 00 01 11 10 0 0 0 – 1 1 1 0 – 1 q Q = q R + S = q R + S = q R ⋅S Q 1 0 S I T P W ZPT R Przerzutnik SR 1 Q Dlaczego RS ≠ 11 ? 1 0 1 Q qR 8 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ść. I T P W Przyczyną kłopotów są zjawiska niejednakowego opóźnienia sygnału w elementach logicznych. ZPT 9 Zjawisko hazardu Q1' = Q x + Q x + x x 12 2 1 12 1 2 Z =Q x +x x 12 12 Przy Q1 = 1, x1 = 1, a przy zmianie x2: 1 → 0 na wyjściu Z powinna być stała 1 X2 1 Q1 X2 1 Z 2 X1 I T P W ZPT 2 Z Na skutek opóźnienia sygnału x2 w sygnale Z pojawia się krótki impuls o wartości 0. Jest to hazard statyczny - szkodliwy w układach asynchronicznych! 10 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ą. Q1' = Q x + Q x + x x 12 2 1 12 x1x2 00 01 11 10 Q1Q2 I T P W 00 0 0 0 1 01 - 1 0 1 11 - 1 - 1 10 0 1 1 1 Q1' = Q x + Q x + x x + Q x 12 2 1 12 11 Qx 11 ZPT 11 Jak jest zbudowany przerzutnik synchroniczny? D ? Przerzutnik typu D Clk Q Q D 0 1 0 0 1 1 0 1 Q Sygnał zegarowy nie występuje w opisie działania (w tablicy przejść) tego przerzutnika I T P W Przerzutniki synchroniczne realizujemy jako układy asynchroniczne ZPT 12 Przykład Synchroniczny przerzutnik typu D synchronizowany zboczem dodatnim D Clk S Y1 Automat sterujący Przerzutnik RS Y2 R Q Q R Q Q I T P W S Q SR 00 01 11 10 0 – 1 0 0 1 – 1 1 0 ZPT 13 Przykład c.d. Y1 D S Automat sterujący Clk Przerzutnik RS Y2 Q Q R 11 01 Graf D clk 00 10 11 2/01 00 10 1/11 I T P W ZPT 11 01 01 SR 00 10 SR 3/10 Rozdz. 4.4 14 Przykład c.d. D clk 11 2/01 00 10 00 10 1/11 11 01 Tablica przejść-wyjść D,clk SR 01 11 3/10 01 00 10 (clk → c) D,c 00 Q1Q2 I T P W 00 01 11 10 1 1 3 2 1 11 2 1 2 2 1 01 3 1 3 3 1 10 S Y1Y2 01 11 10 Y1Y2 00 -- -- -- -- -- (2) 01 11 01 01 11 01 (1) 11 11 10 01 11 11 (3) 10 11 10 10 11 10 Zakodowana tablica p-w (kody stanów takie same, jak wyjścia Y1, Y2) ZPT 15 Przykład c.d. (clk → c) D,c 00 01 11 00 -- -- (2) 01 11 (1) 11 (3) 10 Q1Q2 10 Y1Y2 -- -- -- 01 01 11 01 11 10 01 11 11 11 10 10 11 10 Q1’ Q2’ D,c Q1Q2 I T P W ZPT 00 01 11 10 D,c Q1Q2 00 01 11 10 00 - - - - 00 - - - - (2) 01 1 0 0 1 (2) 01 1 1 1 1 (1) 11 1 1 0 1 (1) 11 1 0 1 1 (3) 10 1 1 1 1 (3) 10 1 0 0 1 Q1’ = c + Q1D + Q2 Q2’ = c + Q2D + Q1 16 Przykład - realizacja Q1'= c + Q D + Q = c + Q D + Q = c ⋅Q D ⋅ Q 1 2 1 2 1 2 Q2' = c + Q D + Q = c + Q D + Q = c ⋅Q D⋅ Q 2 1 2 1 2 1 Q1’=Y1 S D Q Clk (c) Q R I T P W Automat sterujący Q2’=Y2 ZPT 17