Technika Cyfrowa 1 Wykład 5: Synteza automatów sekwencyjnych
Transkrypt
Technika Cyfrowa 1 Wykład 5: Synteza automatów sekwencyjnych
JS TC 1 JS TC 1 III UKŁADY SEKWENCYJNE – C.D. 4 GRAF AUTOMATU, TABELE PRZEJŚĆ / WYJŚĆ Technika Cyfrowa 1 Opis sekwencyjnego układu cyfrowego… Wykład 5: Synteza automatów sekwencyjnych Proste przypadki: • Opis słowny, np.: „Układ wykrywający tetrady (ciągi 4-bitowe) od 1010 do 1111 (zabronione w kodzie BCD) podawane szeregowo od najmłodszego bitu.” x dr inż. Jarosław Sugier [email protected] y CLK IIAR, pok. 227 C-3 • Wykresy czasowe, ciągi zero-jedynkowe: opis pracy układu poprzez podanie charakterystycznych przebiegów na WE i WY. Metoda ogólna: • Graf automatu lub (równoważne mu) tabele: przejść i wyjść. 5-1 Konstrukcja grafu automatu 5-2 JS TC 1 JS TC 1 Przykłady Dany automat A = (A, X, Y, δ, λ ): X = <x1>, Y = <y1, y2>, A = { a, b, c }. 1) Stany wewnętrzne Ai automatu tworzą wierzchołki grafu. 2) Przejściu ze stanu Ak do Al pod wpływem pobudzenia Xm (czyli Al = δ ( Ak, Xm ) ) odpowiada krawędź grafu od Ak do Al etykietowana sygnałem Xm. 1) Automat Mealy’ego: 3) Dla automatu Mealy'ego: jeśli Yk = λ( Al, Xm ), to sygnał Yk przypisujemy krawędzi wychodzącej z Al etykietowanej przez Xm; a 0/00 Uwaga W automatach Moore’a sygnał Yi skojarzony jest z przebywaniem w określonym stanie, w automatach Mealy’ego – z przełączaniem się między stanami. Tabele – przejść: b X A c 0/01 0/01 Czyli: w grafie automatu Mealy’ego odpowiedzi automatu przypisane są krawędziom (krawędzie mają dwie etykiety: sygnał WE Xi / sygnał WY Yj), a w grafie automatu Moore’a – wierzchołkom. - alfabet WE - alfabet WY - alfabet wewnętrzny 1/01 1/01 Dla automatu Moore’a: jeśli Yk = λ( Al ), to sygnał Yk przypisujemy wierzchołkowi Al. 5 SYNTEZA ABSTRAKCYJNA AUTOMATÓW X = { 0, 1 } Y = { 00, 01, 11 } 1/11 X/Y a b c 0 a a b wyjść: X A 1 b c c 0 a 00 b 01 c 01 1 01 01 11 A’ Y 2) Automat Moore’a: 1 1 0 b a 00 0 01 c 0 1 j.w. 11 5-3 JS TC 1 A Y a 00 b 01 c 11 5-4 JS TC 1 5.1 Przykłady Przykład 1: Rewersyjny licznik modulo 6 Synteza abstrakcyjna: zdefiniowanie automatu abstrakcyjnego (alfabetów X, Y, A oraz funkcji δ i λ), realizującego określone zadanie. Automat zliczający impulsy zegarowe modulo 6 (0 ÷ 5); liczba 3b wyprowadzana w NKB. Wejścia: - G (Gate) – bramkowanie, • Podanie tabeli prawdy dla funkcji boolowskiej było zadaniem trywialnym, ale synteza abstrakcyjna automatu zwykle jest nietrywialna. Alfabety X, Y – wprost z idei pracy, ale alfabet A oraz funkcje δ i λ… ? - U/D (Up / Not Down) • Będziemy omawiali głównie przypadki syntezy intuicyjnej, w których tworzony będzie graf automatu. • Następnym etapem syntezy będzie synteza strukturalna: synteza układu cyfrowego, (bramki + przerzutniki) realizującego dany automat abstrakcyjny. X = <G U/D>, – kierunek zliczania. U/D G Q0 CLK Q2 Q1 X = { 0-, 10, 11 } (stop, licz w dół, licz w górę) Y = <Q2 Q1 Q0>, Y = {000, 001, 010, 011, 100, 101} A = { 0, 1, 2, 3, 4, 5 } – stany licznika 5-5 5-6 1 JS TC 1 Graf: 00 11 5 101 011 0- 11 000 4 3 11 011 A 11 2 10 10 100 0- 001 10 10 Na dwa wejścia automatu podawane są w takt zegara kolejne bity liczb w NKB począwszy od najmłodszego, na wyjściu powinny pojawiać się kolejne bity sumy. Tabele przejść i wyjść: 1 10 10 010 0- 11 X 00 1 2 3 4 5 0 1 2 3 4 5 10 5 0 1 2 3 4 11 1 2 3 4 5 0 A 0 1 2 3 4 5 a b Y 000 001 010 011 100 101 Y = <s>, A 00/1 X 00 0 0/0 1 0/1 01 0/1 1/0 10 0/1 1/0 ci-1 0 1 0 1 0 1 0 1 ci 0 0 0 1 0 1 1 1 si 0 1 1 0 1 0 0 1 ci-1 ai bi 0 0 0 1 0 0 Å przeniesienie ci 100100 + 010101 111001 si 11/0 01/0 10/0 11/1 1 0 00/1 Połączone tabele przejść/wyjść: 1 bi 0 0 1 1 0 0 1 1 5-7 JS TC 1 0 Y = {0, 1} 00/0 01/1 10/1 2) W sygnale WE 0- pojawia się wartość dowolna – w syntezie będzie funkcja niezupełna. 01/0 10/0 11/1 ai 0 0 0 0 1 1 1 1 s A = { 0, 1 }; A = przeniesienie zapamiętane z sumowania poprzedniego bitu; stan początkowy A = 0. 1) Jest naturalne, że liczniki są automatami Moore’a; ponadto, stan wewnętrzny układu jest zwykle zakodowany tak jak odpowiadające mu słowo cyklu (funkcja wyjść λ jest tożsamością, Y = A). 11/0 ∑ X = <a b>, X = {00, 01, 10, 11} Uwagi: 00/0 01/1 10/1 Tabela sumowania binarnego: CLK A’ 0- JS TC 1 Przykład 2: Sumator szeregowy 5-8 JS TC 1 Przykład 3: Komparator szeregowy Na dwa wejścia automatu podawane są kolejne bity liczb w NKB począwszy od najmłodszego, na wyjściu powinien pojawić się wynik porównania. 11 1/0 1/1 a b A’/Y A<B A=B A>B CLK Uwagi: Idea pracy: porównywanie od najmłodszego bitu, stan początkowy R, ostatnia nierówność jest rozstrzygająca. Å⇓ 1 1 0 0 1 0ÅA 1 0 0 1 1 0ÅB W W M M R R Å wynik M ⇔ A<B R ⇔ A=B W ⇔ A>B • Automat Mealy’ego – naturalne przy takiej idei pracy sumatora. • Do układu w pełni funkcjonalnego brakuje: a) sygnału inicjalizacji (wymuszenie stanu A = 0) b) odczytu stanu automatu po zakończeniu sumowania (ostatniego bitu przeniesienia) – albo kończyć zawsze słowem X = 00. X = <a b>, X = {00, 01, 10, 11} Y = <A<B A=B A>B>, Y = {100, 010, 001} – kod „1 z 3” A = { M, R, W } – aktualny wynik porównywania: A mniejsze / równe / większe od B. 5-9 JS TC 1 x 0 0 1 0 1 1 0 1 1 0 0 1 0 0 1 1 0 0 1 0 1 y 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 Tabele: 00, 11 x A R 010 00 11 01 M 10 10 100 X M R W 00 M R W 01 M M M 10 W W W 11 M R W CLK Y 100 010 001 W 1/0 y 1/0 0/0 X = <x>, Y = <y>, A’ 001 JS TC 1 Przykład 4: Detektor sekwencji 4-bitowej Na wejście x automatu podawany jest ciąg bitów, sygnał y = 1 ma oznaczać wykrycie sekwencji np. „1100”: Graf automatu: 01 5-10 00 11 10 01 • Automat Moore’a – wynika z zasady pracy. 5-11 X = {0, 1} Y = {0, 1} 0/0 a 1/0 b 1/0 c 0/0 0/1 Idea pracy: • stany wewnętrzne odpowiadają wykrywaniu kolejnych przedrostków sekwencji, x 0 1 A A = {a, b, c, d }; (a) – stan początkowy, a a/0 b/0 (b) – wykryto przedrostek „1”, b a/0 c/0 (c) – wykryto przedrostek „11”, c d/0 c/0 (d) – wykryto przedrostek „110”. d a/1 b/0 • automat Mealy’ego A’/Y d X /Y 5-12 2 JS TC 1 5.2 Minimalizacja stanów JS TC 1 Przykład 5: Selektor triad Cel: redukcja liczby stanów automatu (uproszczenie grafu), w konsekwencji uproszczenie późniejszej implementacji w postaci układu cyfrowego. Na wejście x podawane są triady (sekwencje 3b). Układ ma wykrywać dwie wyróżnione: „010” i „110”: x 0 0 1 0 1 0 0 1 1 0 0 0 1 1 0 1 0 0 1 Fragment teorii automatów, tutaj omówiony tylko na przykładach. x Zasady y1 y2 CLK • Dwa stany automatu nazywamy zgodnymi, jeśli automat znajdując się w nich zachowuje się identycznie, tzn. pod wpływem dowolnego ciągu pobudzeń Xi generuje identyczne sekwencje odpowiedzi Yi. 0 1 y1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 y2 - - 0 - - 1 - - 0 - - 0 - - 1 - - 0 - - 0 X = {0, 1} • Stany zgodne można łączyć zastępując je pojedynczym nowym stanem. y1 = 1 – zakończono wczytywanie triady, y2 = 1 – wykryto wyróżnione „010” i „110”; • Stany identyczne – te same sygnały WY oraz te same stany następne. Stany równoważne – te same sygnały WY oraz stany następne te same lub równoważne. Y = <y1, y2>, Y = {0-, 10, 11} – trwa wprowadzanie triady, triada inna niż „010”/„110”, wykryto „010”/„110”. • Niezgodność WY implikuje natychmiast nierównoważność, zgodność stanów następnych może być rozpatrywana warunkowo. Graf automatu Mealy’ego, obrazujący wczytywanie wszystkich możliwych 8 triad… 5-13 5-14 JS TC 1 • Drzewo binarne tworzone wg zasady: x = 0 ⇒ przejdź do lewego poddrzewa, 1 0- 0 0- e 1 10 c 0 0- e 1 10 0 11 1 0- f 1 10 0 10 g 1 10 0 11 1 10 c d 0 10 1/0- 1 0- d 0 10 1/0- b 0 0- 0 0- ⇓ b, c równoważne ⇒ nowy stan k. a 0/0- 0/0- b d, f identyczne ⇒ nowy stan l; e, g identyczne ⇒ nowy stan m; x = 1 ⇒ przejdź do prawego poddrzewa. JS TC 1 a • W naszym przykładzie: 0 11 f 1 10 0 10 • Wynik minimalizacji: 1 0- g 1 10 do stanu a a 0 11 0/01/0- 0/10 1/10 1 10 0 0- l do stanu a 0/11 1/10 k A X a k l m 1 0- m 0 1 k/0- k/0l/0- m/0a/10 a/10 a/11 a/10 A’/Y • Czyli: A = {a, k, l, m} – ostatecznie uzyskany zbiór 4 stanów. • Ścieżki odpowiadające szukanym triadom zostały wyróżnione. 5-15 JS TC 1 Przykład 6: Minimalizacja stanów A Przykład automatu Moore’a: 5-16 X 1 2 3 4 5 6 7 00 5 5 3 5 6 3 7 01 3 3 4 3 7 3 1 11 2 1 4 2 1 1 1 10 1 4 5 2 1 7 5 A’ A Tabela potencjalnej równoważności: Y 0 0 1 0 0 0 1 Równoważność stanów: (1, 2) (1, 4) (1, 5) (1, 6) (2, 4) (2, 5) (2, 6) (3, 7) (4, 5) (4, 6) (5, 6) • Przy poszukiwaniu stanów warunkowo równoważnych pomocna może być tabela testująca potencjalną równoważność wszystkich par stanów. Uwaga: dla K stanów ½ K (K − 1) par – dużo! • Do tabeli można od razu nie wpisywać par wyjściowo niezgodnych, np. w powyższym przykładzie (1, 3), (1, 7), (2, 3)... Pod warunkiem równoważności: (1,2), (1,4) (1,2) (5,6), (3,7), (1,2) (3,5), (1,2), (1,7) (1,2) (5,6), (3,7), (1,4) (3,5), (4,7) (3,7), (1,4) (5,6), (3,7), (1,2) (3,5), (1,2), (2,7) (3,6), (3,7), (1,7) Niezgodność WY: × × • Dla każdej pary (Ai, Aj): porównując wiersze tabeli przejść odpowiadające stanom Ai,Aj wypisujemy jakie inne pary stanów muszą być równoważne, aby nastąpiła zgodność. × × × ½ K (K − 1) = 21 ⇓ pominięcie stanów wyjściowo niezgodnych zredukowało natychmiast liczbę wierszy do 11 – o połowę. • Niezgodność WY w choć jednej parze, która się w ten sposób pojawia, przekreśla szanse na zgodność (Ai, Aj) ⇒ dalsza eliminacja par. 5-17 00 5 5 3 5 6 3 7 01 3 3 4 3 7 3 1 11 2 1 4 2 1 1 1 10 1 4 5 2 1 7 5 A’ Y 0 0 1 0 0 0 1 × × Niekiedy spotykana trójkątna postać tej samej tabeli: 2 K = 7, JS TC 1 X 1 2 3 4 5 6 7 3 (1,4) × × 4 (1,2) (1,2) × 5 (5,6), (3,7), (1,2) (5,6), (3,7), (1,4) × (5,6),(3,7) (1,2) 6 (3,5), (1,2), (1,7) (3,5), (4,7) × (3,5),(1,2), (2,7) (3,6),(3,7) (1,7) 7 × × (1,4) × × × 1 2 3 4 5 6 5-18 3 JS TC 1 JS TC 1 5.3 Zmiana typu automatu Mealy ↔ Moore Pod warunkiem równoważności: (1,2), (1,4) (1,2) (5,6), (3,7), (1,2) (3,5), (1,2), (1,7) (1,2) (5,6), (3,7), (1,4) (3,5), (4,7) (3,7), (1,4) (5,6), (3,7), (1,2) (3,5), (1,2), (2,7) (3,6), (3,7), (1,7) Niezgodność WY: 1 ≡ 2 ≡ 4 => nowy stan a; X A Równoważność: (1, 2) (1, 4) (1, 5) (1, 6) (2, 4) (2, 5) (2, 6) (3, 7) (4, 5) (4, 6) (5, 6) • Na podstawie tabeli: a) 1 ≡ 2, 1 ≡ 4 (2 pierwsze wiersze); × × × × b) 2 ≡ 4 (na podstawie a); c) 3 ≡ 7 (na podstawie a); • Pozostałe równoważności niemożliwe ze względu na niezgodność wyjść – wprost lub z powodu 5 ≠ 6. × × × • Można oczekiwać, że przy przejściu Mealy → Moore liczba stanów zwiększy się, a przy przejściu odwrotnym – zmniejszy. • Każdy automat Moore’a można uważać za (nadmiarowy) automat Mealy’ego, ale nie na odwrót; konwersja Moore → Mealy powinna być łatwiejsza. • Na tym wykładzie bez cytowania rozważań z teorii automatów podamy gotowe przepisy na obie konwersje. A. Konwersja Moore ⇒ Mealy Ostatecznie: 3 ≡ 7 => nowy stan b; 5 => nowy stan c; a b c d 6 => nowy stan d; A = {a, b, c, d} 00 c b d b 01 b a b b 11 a a a a 10 a c a b A’ Kroki: Y 0 1 0 0 1. W tabeli przejść do każdego stanu dopisujemy generowany przez niego sygnał Y – powstaje połączona tabela przejść / wyjść automatu Mealy’ego. 2. Minimalizujemy (łączymy) stany zgodne. 5-19 5-20 JS TC 1 JS TC 1 Przykład: 2) Minimalizacja stanów: 0) Automat Moore’a (detektor sekwencji „011”): A X 0 c c c c a b c d 1 a a d b A’ 1 Y 0 1 0 0 0 a 0 0 1 0 b 1 1 c d 0 0 X a b c d 0 c/0 c/0 c/0 c/0 Pod warunkiem: (a, b) (a, c) (b, c) − (a, d) (a, d) Niezg. WY: × × 0 c/0 c/0 c/0 c/0 1 a/0 a/0 d/0 b/1 A’/Y 1 3) Wynik konwersji: A 1 a/0 a/0 d/0 b/1 A’/Y X a b c d a ≡ b ⇒ a, b → nowy stan a; A = {a, c, d} 0 1) Tabela przejść / wyjść z dopisanymi sygnałami Y: A Równow.: A to już jest automat Mealy’ego! X 0 a c/0 c c/0 d c/0 1/0 1 a/0 d/0 a/1 A’/Y 0/0 1/0 0/0 a c d 0/0 1/1 5-21 JS TC 1 B. Konwersja Mealy ⇒ Moore 5-22 A 0) Wersja automatu Mealy’ego: Kroki: A = {a, b, c, d} 1) Utworzenie nowych stanów: Każda para A’/Y w tabeli przejść / wyjść staje się osobnym stanem w automacie Moore’a, np. 1) Nowe stany: a/10 → nowy stan A0, a/11 → nowy stan A1, b/0- → nowy stan B, c/0- → nowy stan C, d/0- → nowy stan D. Ak / Yl → nowy stan am. … liczba stanów (zazwyczaj) wzrasta. 2) Nowa tabela przejść: Dla każdego nowego stanu am, odpowiadający mu wiersz w tabeli przejść powstaje przez powielenie wiersza stanu Ak z tabeli automatu Maely’ego z parami A’/Y zastąpionymi nowymi stanami. X a b c d 0 1 b/0- b/0c/0- d/0a/10 a/10 a/11 a/10 X 0 A0 B A1 B B C C A0 D A1 A λ(am) = Yl 5-23 a Y 10 11 000- 0/11 1/10 b 0 0- 1 0- c d A1 A0 1 B B D A0 A0 A’ 0/01/0- 0/10 1/10 A’/Y 2) Automat Moore’a: 3) Nowa tabela wyjść: Powstaje wprost z definicji nowych stanów: JS TC 1 Przykład 1: Selektor triad w wersji Moore’a 11 10 0,1 B 0,1 0 00 1 0,1 1 C D 0- 0- 5-24 4 JS TC 1 Przykład 2: Sumator szeregowy jako automat Moore’a 0) Wersja automatu Mealy’ego: A = {0, 1} A X 00 0 0/0 1 0/1 01 0/1 1/0 10 0/1 1/0 11 1/0 1/1 A’/Y 1) „Każda para A’/Y w tabeli przejść / wyjść staje się osobnym stanem”: 0/0 → nowy stan a0, 0/1 → nowy stan a1, 01,10 00 1/0 → nowy stan b0, 1/1 → nowy stan b1. A X a0 a1 b0 b1 00 a0 a0 a1 a1 01 a1 a1 b0 b0 10 a1 a1 b0 b0 A = { a0, a1, b0, b1} 11 a0 0 2) Automat Moore’a: 11 b0 b0 b1 b1 A’ Y 0 1 0 1 01 10 00 a1 1 01,10 b0 0 11 00 00 11 01 10 b1 1 11 5-25 5