Układy asynchroniczne Model układu sekwencyjnego Model układu asynchronicznego (synchronicznego) y 1 x n UK y m układ kombinacyjny Z clock t 1 q 1 k B x s tan stabilny s: δ(s,x) = s x blok pamięci jest realizowany q k przez opóźnienia przerzutniki automacie asynchronicznym wszystkie stany są stanami stabilnymi 1
kala czasu x z 1 0 0 1 1 0 0 0 0 0 1 1 1 1 z 2 0 1 0 0 0 1 1 1 $,,.,8: 0,7 x x a 0 1 0 1 0 00,,,,00,, Z 2
Najprostszy układ asynchroniczny R q 00 0 0 0 1 1 1 0 1 rzerzutnik R = qr + = q R + =qr Z R qr 3
rzykł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. y 00 1/0 00 2/0 00 3/0 5/0 4/1 6/0 00 00 y 1 1 2 3 0 2 1 2 4 0 3 1 5 3 0 4 6 4 3 1 5 6 5 3 0 6 1 6 5 0 Z 4
Redukcja stanów... jest prosta 00 y 1 1 2 3 0 2 1 2 4 0 3 1 5 3 0 A B C 00 y 1,2 1 2 4 3 0 4 6 4 3 1 3,5,6 1 6 5 3 0 4 6 4 3 1 5 6 5 3 0 6 1 6 5 0 00 y A A A B C 0 B C B C 1 C A C C C 0 Z a kodowanie... 5
... jest trudne Kod stanu 00 00 A/0 B/1 Kodowanie stanów 00 y A A A B C 0 B C B C 1 C A C C C 0 00 C/0 Graf stanów automatu minimalnego 00 y A 00 00 00 0 B 1 (-) C 00 0 Z 6
Analiza działania układu asynchronicznego (1) 00 y A 00 00 00 0 Układ kombinacyjny (bez opóźnień) y B 1 (-) C 00 0 1 0 1 q 1 1 2 2 q 2 0 1 Opóźnienia 1 > 2 1 < 2 0 1 0 1 0 0 1 1 1 0 1 0 Z 7
Analiza działania układu asynchronicznego (2) 00 y A 00 00 00 0 Układ kombinacyjny (bez opóźnień) y B 1 (-) C 00 0 1 q 1 1 2 2 q 2 Opóźnienia tan wejść tan wewn. ; tan następny ; 1 > 2 1 < 2 ;00 00 ; yścig krytyczny! ; 1 > 2 0 1 0 0 1 0 yścig niekrytyczny! 1 < 2 0 1 1 1 1 0 Z 8
Analiza działania układu asynchronicznego (3) 00 y A 00 00 00 0 Układ kombinacyjny (bez opóźnień) y B 1 (-) C 00 0 1 q 1 1 2 2 q 2 tan wejść tan wewn. ; tan następny ; 1 > 2 1 < 2 ; 00 ; Opóźnienia ; yścig ; niekrytyczny! Z 9
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; 1 0; 1 1 itp.. akie kodowanie zapewnia rozpięcie grafu stanów automatu na kwadracie lub sześcianie kodowym. 0 1 00 000 0 Z 0 1 1 1
Kodowanie stanów Kod stanu 00 00 A/0 B/1 A 00 B 00 C/0 yścig niekrytyczny można wykorzystać do właściwego kodowania stanów w układach asynchronicznych. (-) C (-) 00 y A 00 00 00 0 B 1 (-) C 00 0 Z
ablice przejść 00 y A 00 00 00 0 B 1 (-) C 00 0 12 00 00 00 00 00 00 0 0 0 1 0 0 1 0 -- - 1 0 1-1 1 0 -- -- - 1-1 - 0-0 00 0 1 1 1 0 0 0 0 1 2 1 2 Z 12
yznaczanie funkcji wzbudzeń 12 00 00 00 Y 00 00 00 0 0 0 1 0 0 1 0 0 -- - 1 0 1-1 1 0 1 -- -- - 1-1 - 0-0 - 00 0 1 1 1 0 0 0 0 0 1 2 1 2 1' = x + x + x x + x 1 2 2 1 1 2 1 1 2' = x x + 1 1 2 x 1 2 2 x 1 1 Dlaczego dodano dodatkową pętlę składnik? Z Zjawisko hazardu Y = 2 13
Zjawisko hazardu 1' = x + x + 1 2 2 1 x x 1 2 1 2 Z = x + 1 2 x x 1 2 rzy 1 = 1, = 1, a przy zmianie : 1 0 na wyjściu Z powinna być stała 1 1 X 2 1 Z 1 X 2 2 X 1 2 Z Z 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! 14
Z 15
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ą. 12 00 00 0 0 0 1-1 0 1-1 - 1 0 1 1 1 x 1 1 Z 16
Realizacja układu Y = 2 1' = x + x + x x + x 1 2 2 1 1 2 1 1 2' = x x + x 1 1 2 1 2 2 X1 X2 1 2 Y 1 Z 17
Jak jest zbudowany przerzutnik synchroniczny? (1) Clk R R Jest to synchronizacja szerokością impulsu latch (zatrzask) trefa oddziaływania Z CLK R tan przerzutnika zmienia się dwukrotnie w czasie trwania okresu przebiegu zegarowego! 18
roblem synchronizacji rzerzutniki tego typu mają prostą budowę, ale mogą służyć tylko do przechowywania (zatrzaskiwania) informacji. Nie mogą służyć do budowy synchronicznych układów sekwencyjnych. rawidł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. Z 19
Jak jest zbudowany przerzutnik synchroniczny? (2) D Clk? rzerzutnik typu D D 0 1 0 0 1 1 0 1 Z 20
rzykład ynchroniczny przerzutnik typu D synchronizowany zboczem dodatnim D Clk Automa t sterujący Y1 Y2 R rzerzutnik R R 00 0 1 0 0 R 1 1 1 0 Z 21
rzykład c.d. D Clk Automat sterujący Automat sterujący wytwarza na wyjściach Y1 lub Y2 sygnał 0 (włączający lub wyłączający przerzutnik R ) tylko wówczas, gdy w sygnale Clk pojawi się zbocze synchronizujące, to jest zmiana Clk 0 1. Jeśli w tym momencie na wejściu D jest 1, to 0 pojawi się na wyjściu Y1 ( ) przerzutnik R zostanie włączony. Jeśli na wejściu D jest 0, to 0 pojawi się na wyjściu Y2 ( R) przerzutnik zostanie wyłączony Y1 Y2 R D clk 00 rzerzutnik R 1/ R 00 00 3/ 2/ R Z 22
rzykład c.d. Z D clk 00 1/ 00 00 2/ R 3/ ablica przejść-wyjść D,clk 00 Y1Y2 1 1 3 2 1 2 1 2 2 1 3 1 3 3 1 (clk c) D,c 12 00 Y1Y2 00 -- -- -- -- -- (2) (1) (3) Zakodowana tablica p-w (kody stanów takie same, jak wyjścia Y1, Y2) 23
(clk c) rzykład c.d. D,c 12 00 Y1Y2 00 -- -- -- -- -- (2) (1) (3) Z 1 2 D,c D,c 00 12 12 00 00 - - - - 00 - - - - (2) 1 0 0 1 (2) 1 1 1 1 (1) 1 1 0 1 (1) 1 0 1 1 (3) 1 1 1 1 (3) 1 0 0 1 1 2 = c + D + 1 2 = c + D+ 2 1 24
Z 25 rzykład - realizacja 2 D 1 c 2 D 1 c 2 D 1 c 1' = + + = + + = 1 D 2 c 1 D 2 c 1 D 2 c 2' = + + = + + = R D Clk (c) 1 =Y1 2 =Y2 Automat sterujący
Z Zadanie Zaprojektować asynchroniczny układ o wejściach i wyjściu y pracujący wnastępujący sposób: y=1 gdy = =1 i przedostatnia zmiana sygnału wejściowego była zmianą na wejściu. pozostałych przypadkach y=0. 1/0 2/0 3/1 6/0 4/0 00 7/0 Zmiana przedostatnia 00 00 00 00 5/0 00 /1 Zmiana ostatnia 26
Zadanie c.d. 7/0 1/0 2/0 00 00 00 3/1 4/0 00 5/0 00 6/0 00 y 1 2 1 6 0 2 5 2 3 0 3 2 3 6 1 4 5 3 4 0 5 5 7 4 0 6 5 1 6 0 Z 7 5 7 1 0 27
Zadanie c.d. Minimalizacja 00 y 00 y 1 2 1 6 0 1,6 5 2 1 6 0 2 5 2 3 0 2,4 5 2 3 4 0 3 2 3 6 1 3 2 3 6 1 4 5 3 4 0 5,7 5 7 1 4 0 5 5 7 4 0 6 5 1 6 0 7 5 7 1 0 Automat minimalny 00 y A 1,6 D B A A 0 B 2,4 D B C B 0 C C B C A 1 D 5,7 D D A B 0 Z 28
Zadanie c.d. Kodowanie 00 y A D B A A 0 B D B C B 0 C B C A 1 D D D A B 0 00 y A 00 00 00 0 C 00 1 B 0 D 00 0 Z yścig Krytyczny! 00 A/0 00 00 D/0 C/1 B/0 00 29
Zadanie c.d. 12 00 y 00 00 00 0 00 1 0 00 0 ynteza kombinacyjna y = 1 2 1 2 Z 12 00 00 1 0 0 0 1 0 0 1 1 0 1 1 1 0 1 12 00 00 0 1 0 0 1 1 0 0 1 1 1 0 0 0 1 = x1x2 + 2x1 + 1x1 1x 2' = 2 2x2 + 1x 1x2 + 1x1x 2 + 1 2x1 30 1' +
Zadanie c.d. - realizacja y 1 2 Z 31
Kodowanie metodą n 1 Liczba stanów automatu wynosi n. Długość wektora kodowego ustalamy na n 1. Jeden stan kodujemy wektorem złożonym z samych zer. ozostał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 = A: 000 C: 0, B: 0, D: 0 1 Z 00 y A D B A A 0 B D B C B 0 C B C A 1 D D D A B 0 000 0 A/0 C/1 00 1 D/0 1 B/0 00 0 00 0 32
Kodowanie n 1 000 0 A/0 C/1 00 1 E D/0 1 B/0 00 0 00 0 F Modyfikacja tablicy p-w 123 00 y A 000 D B A A 0 B 0 DF B CE B 0 C 0 BE C A 1 D 0 D D A B 0 E F 1 1 D B C F B Z 33
Kodowanie n 1 Zakodowana tablica p-w 123 00 y A 000 0 0 000 000 0 D 0 0 0 000 1 0 F 1 0 0 B 0 1 0 1 0 0 E 1 0 0 (-) 1 (-) 1 C 0 1 0 000 1 1 2 3 Y = 1 Z 34
Kodowanie n 1 1 123 00 000 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 1 0 1 0 1 1 1 0 1 1 0 1' = x + 1 2 2 2x1x2 Z 35
Kodowanie n 1 2 123 00 000 0 1 0 0 0 0 0 0 1 1 0 1 0 1 1 1 1 1 1 0 1 1 0 1 0 0 ętla antyhazardowa 2' = + 1 23 + 3x1x 2 + 3x1x2 1 2x1 Z 36
Kodowanie n 1 3 123 00 000 1 0 0 0 0 1 1 0 1 1 1 0 0 1 0 0 0 1 0 0 1 1 0 0 0 0 3' = x + 1x 2 + 1 3x1 + 23x2 Z 37