Układy asynchroniczne Model układu asynchronicznego y x n UK y m układ kombinacyjny q k BP q k blok pamięci realizuje opóźnienia adeusz P x x t s tan stabilny s: δ(s,x) = s automacie asynchronicznym wszystkie stany są stanami stabilnymi
R q Najprostszy układ asynchroniczny 00 Przerzutnik R 0 0 0 0 = qr + = qr + = qr adeusz P R qr 2
Przykład Zaprojektować układ asynchroniczny o dwóch wejściach binarnych, i jednym wyjściu y, który ma sygnalizować jedynką pojawienie się na wejściu sekwencji wektorów wejściowych..., 00,,. Należy założyć, że jednoczesna zmiana dwóch sygnałów wejściowych jest niemożliwa. adeusz P 00 /0 2/0 00 00 3/0 5/0 4/ 6/0 00 00 y 2 3 0 2 2 4 0 3 5 3 0 4 6 4 3 5 6 5 3 0 6 6 5 0 3
Redukcja stanów... jest prosta 00 y 2 3 0 2 2 4 0 3 5 3 0 4 6 4 3 5 6 5 3 0 xx 00 y A,2 2 4 3 0 B 4 6 4 3 C 3,5,6 6 5 3 0 adeusz P 6 6 5 0 00 y A A A B C 0 B C B C C A C C C 0 a kodowanie... 4
... jest trudne Kodowanie stanów x Kod stanu 00 y 00 A A A B C 0 00 B C B C A/0 B/ C A C C C 0 00 C/0 00 y A 00 00 00 0 adeusz P Graf stanów automatu minimalnego B (-) C 00 0 Y = 2 5
Analiza działania układu asynchronicznego () 00 y A 00 00 00 0 Układ kombinacyjny (bez opóźnień) y B (-) C 00 0 q 2 2 q 2 Opóźnienia adeusz P tan wejść tan wewn. ; ; tan następny ;00 00 ; yścig krytyczny! > 2 < 2 0 0 0 0 ; yścig niekrytyczny! 0 6
Analiza działania układu asynchronicznego (2) adeusz P tan wejść 00 y A 00 00 00 0 Układ kombinacyjny (bez opóźnień) B (-) q C 00 0 2 tan wewn. ; 00 ; ; ; ; tan ; następny 2 Opóźnienia yścig niekrytyczny! q 2 7 y
Kodowanie stanów Aby uniknąć wyścigów krytycznych należy kodowanie przeprowadzić tak, aby kody stanów, pomiędzy którymi jest przejście, różniły się tylko na jednej pozycji. Np.: 000 0; 0 0; itp.. akie kodowanie zapewnia rozpięcie grafu stanów automatu na kwadracie lub sześcianie kodowym. 0 00 000 0 adeusz P 0 0 0 8
Kodowanie stanów Kod stanu 00 00 A/0 B/ 00 A B 00 C/0 (-) C (-) 00 y A 00 00 00 0 adeusz P yścig niekrytyczny można wykorzystać do właściwego kodowania stanów w układach asynchronicznych. B (-) C 00 0 9
ablice przejść 00 y A 00 00 00 0 B (-) C 00 0 adeusz P 2 00 00 00 00 00 00 0 0 0 0 0 0 -- - 0-0 -- -- - - - 0-0 00 0 0 0 0 0 2 2
Funkcje wzbudzeń 2 00 00 00 00 00 00 0 0 0 0 0 0 -- - 0-0 -- -- - - - 0-0 00 0 0 0 0 0 adeusz P Y = 2 2 2 ' = x x + x + x x + x x 2' = x x + x 2 2 2 2 2 2 x Dlaczego dodano dodatkową pętlę składnik? Zjawisko hazardu
Zjawisko hazardu ' = x + x + 2 2 xx 2 2 Z = x + 2 xx 2 Przy =, =, a przy zmianie : 0 na wyjściu Z powinna być stała X 2 Z X 2 2 X 2 Z adeusz P Na skutek opóźnienia sygnału x 2 w sygnale Z pojawia się krótki impuls o wartości 0. Jest to hazard statyczny - szkodliwy w układach asynchronicznych! 2
Zjawisko hazardu układach asynchronicznych funkcje wzbudzeń muszą być realizowane w taki sposób, aby nie występował hazard statyczny. yraż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ą. xx 2 00 00 0 0 0 adeusz P - 0 - - 0 x 3
Realizacja układu Y = 2 ' = x + x + xx + x 2 2 2 2' = xx + x 2 2 2 X X2 2 Y adeusz P 4
Jak jest zbudowany przerzutnik synchroniczny? () Clk R R Jest to synchronizacja szerokością impulsu latch (zatrzask) trefa oddziaływania adeusz P CLK R tan przerzutnika zmienia się dwukrotnie w czasie trwania okresu przebiegu zegarowego! 5
Problem synchronizacji Przerzutniki tego typu mają prostą budowę, ale mogą służyć tylko do przechowywania (zatrzaskiwania) informacji. Nie mogą służyć do budowy układów sekwencyjnych. Prawidłowa synchronizacja powinna działać tak, aby w czasie trwania okresu przebiegu zegarowego sygnał wejściowy przerzutnika był odczytywany jeden raz, a stan przerzutnika zmieniał się także jeden raz niezależnie od zmiany sygnałów wejściowych. adeusz P 6
Jak jest zbudowany przerzutnik synchroniczny? (2) D Clk? Przerzutnik typu D D 0 0 0 0 adeusz P 7
Przykład synteza przerzutnika D ynchroniczny przerzutnik typu D synchronizowany zboczem dodatnim D Clk Automat sterujący Y Y2 R Przerzutnik R R 00 0 0 0 adeusz P R 0 8
adeusz P D Clk Automat sterujący Przykład c.d. Y Y2 R Przerzutnik R Automat sterujący wytwarza na wyjściach Y lub Y2 sygnał 0 D clk (włączający lub wyłączający przerzutnik R) tylko wówczas, 00 gdy w sygnale Clk pojawi się zbocze synchronizujące, to jest zmiana Clk 0. Jeśli w tym momencie na wejściu / D jest, to 0 pojawi się na wyjściu Y ( ) przerzutnik Rzostanie R włączony. Jeśli na wejściu D jest 0, to 0 00 pojawi się na wyjściu Y2 ( R) przerzutnik zostanie wyłączony 00 3/ 2/ R 9
Przykład c.d. adeusz P D clk 00 2/ / 00 R 00 3/ (clk c) D,c 00 YY2 2 00 -- -- -- -- -- (2) () (3) ablica przejść-wyjść D,clk 00 YY2 3 2 2 2 2 3 3 3 Zakodowana tablica p-w (kody stanów takie same, jak wyjścia Y, Y2) 20
(clk c) Przykład c.d. D,c 00 YY2 2 00 -- -- -- -- -- (2) () (3) adeusz P 2 D,c D,c 00 00 2 2 00 - - - - 00 - - - - (2) 0 0 (2) () 0 () 0 (3) (3) 0 0 = c + D + 2 = c + D+ 2 2
Przykład - realizacja 2 D c 2 D c 2 D c ' = + + = + + = D 2 c D 2 c D 2 c 2' = + + = + + = =Y D Clk R (c) P R 2 =Y2 Automat sterujący adeusz 22
Kodowanie metodą n Liczba stanów automatu wynosi n. Długość wektora kodowego ustalamy na n. Jeden stan kodujemy wektorem złożonym z samych zer. Pozostałe stany kodujemy wektorami z jedną jedynką. Między każde dwa stany, kodowane wektorami z jedną jedynką wstawiamy stan niestabilny R o wektorze kodowym R = 0 A: 000 C: 0, B: 0, D: 0 adeusz P x x 000 0 2 00 y A/0 C/ A D B A A 0 B D B C B 0 00 0 C B C A D D D A B 0 D/0 0 B/0 00 0 00 0 23
Kodowanie n A/0 000 0 Modyfikacja tablicy p-w C/ 00 0 E D/0 0 B/0 00 0 00 0 F 23 00 y A 000 D B A A 0 B 0 DF B CE B 0 C 0 BE C A D 0 D D A FB 0 E 0 B C F 0 D B adeusz P 24
Kodowanie n Zakodowana tablica p-w 23 00 y A 000 0 0 000 000 0 D 0 0 0 000 0 0 F 0 0 0 B 0 0 0 0 0 0 E 0 0 0 (-) (-) C 0 0 0 000 adeusz P 2 3 Y = 25
Kodowanie n 23 00 000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 adeusz P ' = x 2 2 + 2xx2 26
Kodowanie n 23 00 000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Pętla antyhazardowa adeusz P 2' = 23 + x 3 x2 + 3xx2 + 2x 27
Kodowanie n 23 00 000 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 adeusz P 3' = x + x 2 + 3 x + 2 3 x 2 28
Zadanie dodatkowe Zaprojektować asynchroniczny układ o wejściach i wyjściu y pracujący wnastępujący sposób: y=gdy x=x= 2 = i przedostatnia zmiana sygnału wejściowego była zmianą na wejściu. pozostałych przypadkach y=0. 7/0 Zmiana przedostatnia 00 00 00 00 /0 2/0 3/ 4/0 5/0 00 00 P 6/0 adeusz / Zmiana ostatnia 29
adeusz P Zadanie c.d. 00 00 00 /0 2/0 3/ 4/0 00 5/0 00 00 y 6/0 2 6 0 2 5 2 3 0 7/0 3 2 3 6 4 5 3 4 0 5 5 7 4 0 6 5 6 0 7 5 7 0 30
Zadanie c.d. Minimalizacja xx 00 y xx 00 y 2 6 0,6 5 2 6 0 2 5 2 3 0 2,4 5 2 3 4 0 3 2 3 6 3 2 3 6 4 5 3 4 0 5,7 5 7 4 0 5 5 7 4 0 6 5 6 0 7 5 7 0 Automat minimalny 00 y A,6 D B A A 0 adeusz P B 2,4 D B C B 0 C C B C A D 5,7 D D A B 0 3
Zadanie c.d. Kodowanie xx 00 y A D B A A 0 B D B C B 0 C B C A D D D A B 0 xx 00 y A 00 00 00 0 C 00 B 0 D 00 0 00 A/0 C/ adeusz P 00 D/0 B/0 00 00 32
2 Zadanie c.d. 00 y ynteza kombinacyjna 00 00 00 0 y = 00 0 2 00 0 2 adeusz P 2 00 00 0 0 0 0 0 0 0 2 00 00 0 0 0 0 0 0 0 0 = xx2 + 2x + x x 2' = 2 2x2 + x x2 + x x2 + 2x ' + 33
Zadanie c.d. - realizacja y 2 adeusz P 34