Układy asynchroniczne
Transkrypt
Układy asynchroniczne
Układy asynchroniczne Model układu asynchronicznego x1 y1 UK xn Q1 Qk I T Tadeusz P Łuba W układ kombinacyjny q1 BP x x t ym s qk blok pamięci realizuje opóźnienia W automacie asynchronicznym wszystkie stany są stanami stabilnymi Stan stabilny s: δ(s,x) = s ZCB ZPT 1 Najprostszy układ asynchroniczny SR 00 01 11 10 0 0 0 – 1 1 1 0 – 1 q Q I T Tadeusz P Łuba W ZCB ZPT Przerzutnik SR Q = q R + S = q R + S = q R ⋅S S Q R Q qR 2 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. 00 1/0 00 11 2/0 4/1 10 10 00 I T Tadeusz P Łuba W 3/0 10 01 6/0 5/0 10 00 01 11 11 00 01 11 10 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 S 11 01 01 x1x2 01 11 ZCB ZPT 3 Redukcja stanów . . . jest prosta x1x2 x1x2 00 01 11 10 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 S S 01 11 10 y A 1,2 1 2 4 3 0 B 4 – 6 4 3 1 C 3,5,6 1 6 5 3 0 x1x2 00 01 11 10 y A A A B C 0 B – C B C 1 C A C C C 0 S I T Tadeusz P Łuba W 00 ZCB ZPT a kodowanie . . . 4 Kodowanie stanów . . . jest trudne Kod stanu 00 01 11 A/0 B/1 01 10 00 C/0 10 11 10 y A A A B C 0 B – C B C 1 C A C C C 0 x1x2 00 01 11 10 y A 00 00 00 01 10 0 B 01 – 10 01 10 1 (-) 11 – – – – – C 10 00 10 10 10 0 10 01 Graf stanów automatu minimalnego ZCB 01 10 01 11 I T Tadeusz P Łuba W 00 S 11 00 x 1x 2 S Y = Q2 ZPT 5 Analiza działania układu asynchronicznego (1) x1x2 S 00 01 11 10 y x1 Układ kombinacyjny (bez opóźnień) x2 A 00 00 00 01 10 0 B 01 – 10 01 10 1 (-) 11 – – – – Q1 C 10 – 10 00 10 10 10 0 Q2 ∆1 ∆2 y q1 q2 Opóźnienia Stan wejść 11 ––;01 01 I T Tadeusz P Łuba W Stan wewn. 01 Stan następny 01 ––;10 01 01 Wyścig ––;00 krytyczny! 00 01 ––;10 11 01 ––;10 10 ∆1 > ∆ 2 01 00 10 ∆1<∆2 01 11 10 Wyścig niekrytyczny! ZCB ZPT 6 Analiza działania układu asynchronicznego (2) x1x2 S 00 01 11 10 y x1 Układ kombinacyjny (bez opóźnień) x2 A 00 00 00 01 10 0 B 01 – 10 01 10 1 (-) 11 – 10 – – 10 – – Q1 C 10 00 10 10 10 Q2 0 Stan wejść ∆1 ∆2 y q1 q2 Opóźnienia 11 ––;01 01 Stan wewn. 10 Stan następny 10 ––;10 01 10 ––;10 00 10 ––;10 10 10 ––;10 11 10 ––;10 10 Wyścig niekrytyczny! I T Tadeusz P Łuba W ZCB ZPT 7 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 I T Tadeusz P Łuba W ZCB 00 01 10 11 110 000 001 010 011 111 ZPT 8 Kodowanie stanów Kod stanu 00 01 00 A/0 10 11 11 B/1 10 00 C/0 10 10 01 00 A ZCB B 01 01 10 10 01 (-) 01 11 C Wyścig niekrytyczny można wykorzystać do właściwego kodowania stanów w układach asynchronicznych. 10 11 (-) x1x2 00 01 11 10 y A 00 00 00 01 10 0 B 01 – 11 01 10 1 (-) 11 – 10 – 10 – C 10 00 10 10 10 0 S 11 I T Tadeusz P Łuba W 01 ZPT 9 Tablice przejść x1x2 00 01 11 10 y A 00 00 00 01 10 0 B 01 – 11 01 10 1 (-) 11 – 10 – 10 – C 10 00 10 10 10 0 S x1x2 00 01 11 10 00 01 11 10 00 01 11 10 Q1Q2 I T Tadeusz P Łuba W ZCB 00 00 00 01 10 0 0 0 1 0 0 1 0 01 -- 11 01 10 - 1 0 1 - 1 1 0 11 -- 10 10 - 1 - 1 - 0 - 0 10 00 10 10 10 0 1 1 1 0 0 0 0 -- Q1’Q2’ Q1’ Q2’ ZPT 10 Funkcje wzbudzeń x1x2 00 01 11 10 00 01 11 10 00 01 11 10 Q1Q2 00 00 00 01 10 0 0 0 1 0 0 1 0 01 -- 11 01 10 - 1 0 1 - 1 1 0 11 -- 10 10 - 1 - 1 - 0 - 0 10 00 10 10 10 0 1 1 1 0 0 0 0 Y = Q2 -- Q1’Q2’ Q1' = Q x + Q x + x x + Q x 12 2 1 12 11 Q1’ Q2’ Q2' = Q x x + Q Q x 112 1 2 2 Dlaczego dodano dodatkową pętlę – składnik Q x ? 11 I T Tadeusz P Łuba W ZCB ZPT Zjawisko hazardu 11 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 Tadeusz P Łuba W ZCB 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! 12 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 00 01 11 10 Q1Q2 I T Tadeusz P Łuba W 00 0 0 0 1 01 - 1 0 1 11 - 1 - 1 10 0 1 1 1 Qx 11 ZCB ZPT 13 Realizacja układu Y = Q2 Q1' = Q x + Q x + x x + Q x 1 2 2 1 1 2 1 1 Q2' = Q1x1x2 + Q1Q2x2 X1 X2 Q1’ Y Q2’ I T Tadeusz P Łuba W Q1’ ZCB ZPT 14 Jak jest zbudowany przerzutnik synchroniczny? (1) S S Q Clk Q R R Jest to synchronizacja „szerokością impulsu” – latch (zatrzask) Strefa oddziaływania CLK I T Tadeusz P Łuba W S R Stan Q przerzutnika zmienia się dwukrotnie w czasie trwania okresu przebiegu zegarowego! Q ZCB ZPT 15 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. I T Tadeusz P Łuba W ZCB ZPT 16 Jak jest zbudowany przerzutnik synchroniczny? (2) D Clk ? Przerzutnik typu D Q Q D 0 1 0 0 1 1 0 1 Q I T Tadeusz P Łuba W ZCB ZPT 17 Przykład – synteza przerzutnika D 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 Tadeusz P Łuba W S Q SR 00 01 11 0 – 1 0 0 1 – 1 1 0 10 ZCB ZPT 18 Przykład c.d. D Clk I T Tadeusz P Łuba W Y1 S Automat sterujący Przerzutnik RS Y2 Automat sterujący wytwarza na wyjściach Y1 lub Y2 sygnał 0 (włączający lub wyłączający przerzutnik S 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 (S) – przerzutnik S 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 Q Q R 11 01 D clk 00 10 11 2/01 00 10 1/11 01 SR 00 10 SR 11 01 3/10 ZCB ZPT 19 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 Tadeusz P Łuba W ZCB 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 20 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 Tadeusz P Łuba W ZCB 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 Q1’ = c + Q2D + Q1 21 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 Tadeusz P Łuba W Automat sterujący Q2’=Y2 ZCB ZPT 22 Kodowanie metodą „n− −1” Liczba stanów automatu wynosi n. Długość wektora kodowego ustalamy na n − 1. A: 000 Jeden stan kodujemy wektorem złożonym z samych zer. Pozostałe stany kodujemy wektorami z jedną jedynką. C: 100, B: 010, D: 001 Między każde dwa stany S, T kodowane wektorami z jedną jedynką wstawiamy stan niestabilny R o wektorze kodowym R = S ⊕ T 110 x1x2 S I T Tadeusz P Łuba W ZCB ZPT 00 01 11 10 y A D B A A 0 B D B C B 0 C – B C A 1 D D D A B 0 11 10 000 A/0 11 01 C/1 10 11 01 11 110 01 00 D/0 00 100 001 10 011 00 B/0 010 01 10 23 Kodowanie „n − 1” 11 10 000 A/0 11 01 C/1 10 Modyfikacja tablicy p-w 11 x1x2 00 Q1Q2Q3 01 00 D/0 00 100 001 11 110 01 10 011 00 F B/0 010 01 11 10 y E A 000 D B A A 0 01 B 010 F D B E C B 0 10 C 100 – B E C A 1 D 001 D D A B F 0 – E – F 110 – – B – C – – 011 D– – – – B – I T Tadeusz P Łuba W ZCB ZPT 24 Kodowanie „n − 1” Zakodowana tablica p-w I T Tadeusz P Łuba W x1x2 Q1Q2Q3 00 01 11 10 y A 000 001 010 000 000 0 D 001 001 001 000 011 0 F 011 001 – – 010 – B 010 011 010 110 010 0 E 110 – 010 100 – – (-) 111 – – – – – (-) 101 – – – – – C 100 – 110 100 000 1 Q1’ Q2’Q3’ Y = Q1 ZCB ZPT 25 Kodowanie „n − 1” I T Tadeusz P Łuba W x1x2 Q1Q2Q3 00 01 11 10 000 0 0 0 0 001 0 0 0 0 011 0 – – 0 010 0 0 1 0 110 – 0 1 – 111 – – – – 101 – – – – 100 – 1 1 0 Q1' = Q1Q2 x 2 + Q 2 x1x 2 ZCB ZPT 26 Kodowanie „n − 1” I T Tadeusz P Łuba W x1x2 Q1Q2Q3 00 01 11 10 000 0 1 0 0 001 0 0 0 1 011 0 – – 1 010 1 1 1 1 110 – 1 0 – 111 – – – – 101 – – – – 100 – 1 0 0 Pętla antyhazardowa Q2' = Q1Q 2 Q3 + Q3 x1x 2 + Q3 x1x 2 + Q1Q2 x1 ZCB ZPT 27 Kodowanie „n − 1” I T Tadeusz P Łuba W x1x2 Q1Q2Q3 00 01 11 10 000 1 0 0 0 001 1 1 0 1 011 1 – – 0 010 1 0 0 0 110 – 0 0 – 111 – – – – 101 – – – – 100 – 0 0 0 Q3' = x1x 2 + Q1Q 3 x1 + + Q2Q 3 x 2 ZCB ZPT 28 Zadanie dodatkowe Zmiana przedostatnia 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. 01 11 11/1 00 10 01 7/0 11 00 11 01 1/0 01 11 2/0 3/1 00 01 11 01 11 10 10 11 ZCB ZPT 11 10 00 4/0 5/0 00 10 I T Tadeusz P Łuba W Zmiana ostatnia 00 6/0 10 29 Zadanie c.d. 01 7/0 11 00 11 01 1/0 01 11 01 11 01 2/0 3/1 00 11 10 00 4/0 5/0 10 11 00 10 11 10 00 6/0 10 I T Tadeusz P Łuba W ZCB ZPT x1x2 00 01 11 10 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 7 5 7 1 – 0 S 30 Zadanie c.d. Minimalizacja x1x2 00 01 11 10 y 1 – 2 1 6 0 2 5 2 3 – 3 – 2 3 4 5 – 5 5 6 7 S I T Tadeusz P Łuba W ZCB x1x2 00 01 11 10 y 1,6 5 2 1 6 0 0 2,4 5 2 3 4 0 6 1 3 – 2 3 6 1 3 4 0 5,7 5 7 1 4 0 7 – 4 0 5 – 1 6 0 5 7 1 – 0 S Automat x1x2 S minimalny 00 01 11 10 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 ZPT 31 Zadanie c.d. Kodowanie x1x2 00 01 11 10 y A D B A A 0 B D B C B C – B C D D D A S 11 10 A/0 11 I T Tadeusz P Łuba W ZCB ZPT 00 01 10 00 01 11 10 y A 00 10 11 01 00 00 0 0 C 01 – 11 01 00 1 A 1 B 11 10 11 01 11 0 B 0 D 10 10 10 00 11 0 S 01 C/1 11 01 00 D/0 00 01 x1x2 10 11 10 00 B/0 01 01 10 11 32 Zadanie c.d. x1x2 Q1Q2 00 01 11 10 y 00 10 01 00 00 0 01 – 11 01 00 1 11 10 11 01 11 0 10 10 10 00 11 0 Synteza kombinacyjna y = Q1Q 2 Q1’ Q2’ I T Tadeusz P Łuba W ZCB ZPT x1x2 Q1Q2 00 01 11 10 x1x2 Q1Q2 00 01 11 10 00 1 0 0 0 00 0 1 0 0 01 – 1 0 0 01 – 1 1 0 11 1 1 0 1 11 0 1 1 1 10 1 1 0 1 10 0 0 0 1 Q1' = x1x 2 + Q2 x1 + Q1x1 + Q1x 2 Q2' = Q 2 x 2 + Q1x1x 2 + Q1x1x 2 + Q1Q 2 x1 33 Zadanie c.d. - realizacja y x1 x2 Q1’ Q2’ I T Tadeusz P Łuba W ZCB ZPT 34