Układy asynchroniczne Model układu asynchronicznego x1 xn y1 ym Q1 Qk q1 qk UK układ kombinacyjny BP blok pamięci realizuje opóźnienia x x W automacie asynchronicznym wszystkie stany są stanami stabilnymi t s Tadeusz Łuba ZCB Stan stabilny s: (s,x) = s
Najprostszy układ asynchroniczny SR q 00 01 11 10 – 1 Przerzutnik SR Q S Q Tadeusz Łuba ZCB R
Przykład Zaprojektować układ asynchroniczny o dwóch wejściach binarnych x1, x2 i jednym wyjściu y, który ma sygnalizować jedynką pojawienie się na wejściu sekwencji wektorów wejściowych ..., 00, 01, 11. Należy założyć, że jednoczesna zmiana dwóch sygnałów wejściowych jest niemożliwa. x1x2 S 00 01 11 10 y 1 2 – 3 4 5 6 11 00 01 01 11 1/0 4/1 2/0 00 10 00 01 10 01 00 11 6/0 01 3/0 5/0 Tadeusz Łuba ZCB 11 10 11 10
Redukcja stanów . . . jest prosta a kodowanie . . . x1x2 S 00 01 11 10 y x1x2 S 00 01 11 10 y 1 2 – 3 4 5 6 A 1,2 1 2 4 3 B 4 – 6 4 3 1 C 3,5,6 1 6 5 3 x1x2 S 00 01 11 10 y A B C – 1 Tadeusz Łuba ZCB a kodowanie . . .
Graf stanów automatu minimalnego Kodowanie stanów . . . jest trudne x1x2 S 00 01 11 10 y A B C – 1 Kod stanu 11 00 00 11 01 A/0 B/1 01 10 00 10 01 C/0 x1x2 S 00 01 11 10 y A B – 1 (-) C 10 10 01 11 Graf stanów automatu minimalnego Tadeusz Łuba ZCB Y = Q2
Analiza działania układu asynchronicznego (1) x1 x2 x1x2 S 00 01 11 10 y A B – 1 (-) C Układ kombinacyjny (bez opóźnień) y Q1 Q2 q1 q2 10 1 2 Opóźnienia Stan wejść 1 > 2 0 1 0 0 1 0 1 < 2 0 1 1 1 1 0 01 ––;00 00 Wyścig krytyczny! 1 > 2 11 ––;01 01 01 ––;10 01 01 ––;10 11 01 ––;10 10 Tadeusz Łuba ZCB 1 < 2 Stan wewn. Stan następny Wyścig niekrytyczny!
Analiza działania układu asynchronicznego (2) x1 x2 y Q1 Q2 q1 q2 Układ kombinacyjny (bez opóźnień) 1 2 Opóźnienia x1x2 S 00 01 11 10 y A B – 1 (-) C 10 10 Stan wejść 10 ––;10 00 10 ––;10 1 > 2 11 ––;01 01 10 ––;10 01 10 Wyścig niekrytyczny! 10 ––;10 11 10 ––;10 1 < 2 Stan wewn. Stan następny Tadeusz Łuba ZCB
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 001; 011 010; 111 101 itp.. Takie kodowanie zapewnia „rozpięcie” grafu stanów automatu na kwadracie lub sześcianie kodowym. 101 100 00 01 000 001 Tadeusz Łuba ZCB 10 11 010 011 110 111
Kodowanie stanów 01 00 10 A/0 C/0 11 Kod stanu B/1 00 01 11 10 A B C 10 10 01 (-) (-) 01 11 x1x2 S 00 01 11 10 y A B – 1 (-) C Wyścig niekrytyczny można wykorzystać do właściwego kodowania stanów w układach asynchronicznych. Tadeusz Łuba ZCB
Tablice przejść Q1’Q2’ Q1’ Q2’ x1x2 S 00 01 11 10 y A B – 1 (-) C x1x2 B – 1 (-) C x1x2 Q1Q2 00 01 11 10 1 -- - Tadeusz Łuba ZCB Q1’Q2’ Q1’ Q2’
Dlaczego dodano dodatkową pętlę – składnik ? Funkcje wzbudzeń x1x2 Q1Q2 00 01 11 10 1 -- - Y = Q2 Q1’Q2’ Q1’ Q2’ Dlaczego dodano dodatkową pętlę – składnik ? Tadeusz Łuba ZCB Zjawisko hazardu
Jest to hazard statyczny - szkodliwy w układach asynchronicznych! Zjawisko hazardu 1 2 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! Tadeusz Łuba ZCB
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ą. x1x2 Q1Q2 00 01 11 10 1 - Tadeusz Łuba ZCB
Realizacja układu Y = Q2 Tadeusz Łuba ZCB
Jak jest zbudowany przerzutnik synchroniczny? (1) Q Clk R Jest to synchronizacja „szerokością impulsu” – latch (zatrzask) Strefa oddziaływania CLK Stan Q przerzutnika zmienia się dwukrotnie w czasie trwania okresu przebiegu zegarowego! S R Tadeusz Łuba ZCB Q
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. Tadeusz Łuba ZCB
Jak jest zbudowany przerzutnik synchroniczny? (2) Q 1 ? Przerzutnik typu D Clk Tadeusz Łuba ZCB
Przykład – synteza przerzutnika D Synchroniczny przerzutnik typu D synchronizowany zboczem dodatnim Q 00 01 11 10 – 1 Tadeusz Łuba ZCB
Przykład c.d. 11 01 Automat sterujący wytwarza na wyjściach Y1 lub Y2 sygnał 0 (włączający lub wyłączający przerzutnik ) tylko wówczas, gdy w sygnale Clk pojawi się zbocze synchronizujące, to jest zmiana Clk 0 1. D clk 00 10 11 2/01 00 10 1/11 Jeśli w tym momencie na wejściu D jest 1, to 0 pojawi się na wyjściu Y1 ( ) – przerzutnik zostanie włączony. 01 11 01 Jeśli na wejściu D jest 0, to 0 pojawi się na wyjściu Y2 ( ) – przerzutnik zostanie wyłączony 00 10 3/10 Tadeusz Łuba ZCB
Zakodowana tablica p-w Przykład c.d. Tablica przejść-wyjść D,clk S 00 01 11 10 Y1Y2 1 3 2 (clk c) D,c Q1Q2 00 01 11 10 Y1Y2 -- (2) 01 (1) 11 (3) 10 Zakodowana tablica p-w (kody stanów takie same, jak wyjścia Y1, Y2) Tadeusz Łuba ZCB
Przykład c.d. Q1’ Q1’ (clk c) Q1’ Q2’ D,c Q1Q2 00 01 11 10 Y1Y2 -- (2) 01 (1) 11 (3) 10 Q1’ Q2’ D,c Q1Q2 00 01 11 10 - (2) 01 1 (1) 11 (3) 10 D,c Q1Q2 00 01 11 10 - (2) 01 1 (1) 11 (3) 10 Tadeusz Łuba ZCB Q1’ Q1’
Przykład - realizacja Tadeusz Łuba ZCB
Kodowanie metodą „n1” Liczba stanów automatu wynosi n. Długość wektora kodowego ustalamy na n 1. Jeden stan kodujemy wektorem złożonym z samych zer. Pozostałe stany kodujemy wektorami z jedną jedynką. Między każde dwa stany S, T kodowane wektorami z jedną jedynką wstawiamy stan niestabilny R o wektorze kodowym R = S T A: 000 C: 100, B: 010, D: 001 110 x1x2 S 00 01 11 10 y A D B C – 1 10 B/0 01 D/0 00 C/1 11 A/0 000 100 110 Tadeusz Łuba ZCB 011 001 010
Modyfikacja tablicy p-w Kodowanie „n 1” 10 B/0 01 D/0 00 C/1 11 A/0 000 100 001 010 011 110 Modyfikacja tablicy p-w x1x2 Q1Q2Q3 00 01 11 10 y A 000 D B 010 C 100 – 1 001 110 011 E F E E F F E B C F D B Tadeusz Łuba ZCB
Zakodowana tablica p-w Kodowanie „n 1” Zakodowana tablica p-w x1x2 Q1Q2Q3 00 01 11 10 y A 000 001 010 D 011 F – B 110 E 100 (-) 111 101 C 1 Tadeusz Łuba ZCB Q1’ Q2’Q3’ Y = Q1
Kodowanie „n 1” x1x2 Q1Q2Q3 00 01 11 10 000 001 011 – 010 1 110 111 101 100 Tadeusz Łuba ZCB
Kodowanie „n 1” x1x2 Q1Q2Q3 00 01 11 10 000 1 001 011 – 010 110 111 101 100 Pętla antyhazardowa Tadeusz Łuba ZCB
Kodowanie „n 1” x1x2 Q1Q2Q3 00 01 11 10 000 1 001 011 – 010 110 111 101 100 Tadeusz Łuba ZCB
Zadanie dodatkowe Zaprojektować asynchroniczny układ o wejściach x1 i x2 wyjściu y pracujący w następujący sposób: y=1 gdy x1=x2=1 i przedostatnia zmiana sygnału wejściowego była zmianą na wejściu x1. W pozostałych przypadkach y=0. Zmiana przedostatnia 11 01 11/1 00 10 Zmiana ostatnia 01 7/0 11 00 00 01 01 11 01 11 10 00 01 11 1/0 3/1 2/0 4/0 11 5/0 10 11 00 10 Tadeusz Łuba ZCB 11 00 6/0 10 10
Zadanie c.d. 1/0 2/0 6/0 3/1 00 11 10 01 4/0 5/0 7/0 x1x2 S 00 01 11 10 y 1 – 2 6 5 3 4 7 Tadeusz Łuba ZCB
Zadanie c.d. Minimalizacja Automat minimalny x1x2 S 00 01 11 10 y 1 – 6 5 3 4 7 x1x2 S 00 01 11 10 y 1,6 5 2 1 6 2,4 3 4 – 5,7 7 Automat minimalny x1x2 S 00 01 11 10 y A 1,6 D B 2,4 C – 1 5,7 Tadeusz Łuba ZCB
Zadanie c.d. Kodowanie x1x2 S 00 01 11 10 y A D B C – 1 x1x2 S 00 01 C – 1 x1x2 S 00 01 11 10 y A 00 C 01 – 1 B 11 D 10 01 01 11 00 01 10 11 A/0 C/1 10 01 11 00 01 11 Tadeusz Łuba ZCB 10 01 01 D/0 B/0 10 00 00 10 11
Zadanie c.d. Synteza kombinacyjna Q1’ Q2’ x1x2 Q1Q2 00 01 11 10 y – 1 – 1 Synteza kombinacyjna Q1’ Q2’ x1x2 Q1Q2 00 01 11 10 1 – x1x2 Q1Q2 00 01 11 10 1 – Tadeusz Łuba ZCB
Zadanie c.d. - realizacja y x1 x2 Q1’ Q2’ Tadeusz Łuba ZCB