3.4. GRF UTOMTU, TBELE PRZEJŚĆ / WYJŚĆ Definicja układu kombinacyjnego była stosunkowo prosta -tabela prawdy. Opis układu sekwencyjnego jest zadaniem bardziej złożonym. 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. 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ść. Konstrukcja grafu: Dany automat = (,, Y, δ, λ): 1) Stany wewnętrzne i automatu tworzą wierzchołki grafu. 2) Przejściu ze stanu k do l pod wpływem pobudzenia m, (czyli l = δ( k, m )) odpowiada krawędź grafu od k do l etykietowana sygnałem m. 3) Dla automatu Mealy'ego: jeśli Y k = λ( l, m ), to sygnał Y k przypisujemy krawędzi wychodzącej z l etykietowanej przez m ; Dla automatu Moore'a: jeśli Yk = λ( 1 ), to sygnał Yk przypisujemy wierzchołkowi l. Czyli: w grafie automatu Mealy'ego odpowiedzi automatu przypisane są krawędziom (krawędzie mają dwie etykiety: sygnał WE i / sygnał WY Y ), a w grafie automatu Moore'a - wierzchołkom. 1
Uwaga: Odpowiada to różnicy w sposobie generowania sygnału WY: w automatach Moore' a sygnał Y; skojarzony jest z przebywaniem w określonym stanie, w automatach Mealy' ego - z przełączaniem się do stanu następnego. Przykłady: = <x 1 >, = {0, 1} - alfabet WE Y= <y l, y 2 >, Y = {00, 0l, 11} - alfabet WY = {a, b, c}. - alfabet wewnętrzny 1)utomat Mealy'ego: Tabele: -przejść: 0 1 a a b b a c c b c ' -wyjść: 0 1 a 00 01 b 01 01 c 01 11 Y 2) utomat Moore'a: Y a 00 b 01 c 11 2
3.5. SYNTEZ BSTRKCYJN UTOMTÓW Synteza abstrakcyjna: zdefiniowanie automatu abstrakcyjnego (alfabetów, Y, oraz funkcji δ i λ), realizującego określone zadanie. Podanie tabeli prawdy dla funkcji boolowskiej było zadaniem trywialnym, ale synteza abstrakcyjna automatu zwykle jest nietrywialna. Ze sformułowania zadania często można prosto wywieść alfabety WE i WY, ale już np. alfabet wewnętrzny (zbiór stanów) nie jest łatwy do określenia; podobnie funkcje δ i λ. Będziemy omawiali przypadki syntezy intuicyjnej (poza jednym wyjątkiem), 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. 3.5.1. Przykłady Przykład 1: Rewersyjny licznik modulo 6 Zdefiniować automat zliczający impulsy synchronizujące w NKB modulo 6 (0-5). Wejścia: - G (Gate) - bramkowanie impulsów, - U/D (Up/NotDown) - kierunek zliczania. = <G U/D>, = {0-, 10, 11} (stop, licz w dół, licz w górę) Y= <Q 2 Q 1 Q 0 >, Y = {000, 001, 010, 011, 100, 101} = {0, 1, 2, 3, 4, 5} - stany licznika 3
Tabele przejść i wyjść: 0-10 11 0 0 5 1 1 1 0 2 2 2 1 3 3 3 2 4 4 4 3 5 5 5 4 0 ' Y 0 000 1 001 2 010 3 011 4 100 5 101 Uwagi: 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=). 2) W sygnale WE 0- pojawia się wartość dowolna - przypomni o sobie przy minimalizacji funkcji boolowskich w tym automacie. Przykład 2: Sumator szeregowy Na dwa wejścia automatu podawane są kolejne bity liczb w NKB począwszy od najmłodszego, na wyjściu powinny pojawiać się kolejne bity sumy. Tabela sumowania binarnego: a i b i c i-1 c i s i 0 0 0 0 0 0 0 1 0 1 0 1 0 0 1 0 1 1 1 0 1 0 0 0 1 1 0 1 1 0 1 1 0 1 0 1 1 1 1 1 0 0 0 1 0 0 przeniesienie 1 0 0 1 0 0 + 0 1 0 1 0 1 1 1 1 0 0 1 4
= <a b>, = {00,01,10,11} Y = <s>, Y = {0, 1} = {0, 1} - intuicyjnie: = przeniesienie zapamiętane z sumowania poprzedniego bitu; stan początkowy automatu = 0. Połączone tabele przejść/wyjść: 00 01 10 11 0 0/0 0/1 0/1 1/0 1 0/1 1/0 1/0 1/1 '/Y Uwagi: utomat Mealy'ego - naturalne przy takiej idei pracy sumatora. Do układu w pełni funkcjonalnego brakuje: a) sygnału inicjalizacji (wymuszenie stanu = 0) b) odczytu stanu automatu po zakończeniu sumowania (ostatniego bitu przeniesienia) - albo kończyć zawsze słowem = 00. 5
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. Idea pracy: porównywanie od najmłodszego bitu, stan początkowy R, ostatnia nierówność jest rozstrzygająca. 1 1 0 0 1 0 M <B 1 0 0 1 1 0 B R =B W W M M R R Wynik W >B =<ab>, ={00, 01, 10, 11} Y=< <B =B >B >, Y={100, 010, 001} kod l z 3 = { M, R, W } - aktualny wynik porównywania: mniejsze / równe / większe od B. Graf automatu: Tabele: 00 01 10 11 Y M M M W M 100 R R M W R 010 W W M W W 001 utomat Moore'a - wynika z zasady pracy. 6
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": 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 = < x >, = {0, 1} Y=< y >, Y = {0.1} Idea pracy: stany wewnętrzne odpowiadają wykrywaniu kolejnych przedrostków sekwencji, = {a, b, c, d }; (a) - stan początkowy, (b) - wykryto przedrostek 1, (c) - wykryto przedrostek 11, (d) - wykryto przedrostek 110. automat Mealy'ego 0 1 a a / 0 b / 0 b a / 0 c / 0 c d / 0 c / 0 d a / 1 b / 0 '/Y 7
3.5.2. Minimalizacja stanów Cel: Redukcja liczby stanów automatu (uproszczenie grafu), w konsekwencji uproszczenie późniejszej implementacji w postaci układu cyfrowego. Zaawansowany matematycznie fragment teorii automatów, tutaj przywoływany w wersji inżynierskiej" tylko na przykładach: Dwa stany automatu nazywamy zgodnymi, jeśli automat znajdując się w nich zachowuje się identycznie, tzn. pod wpływem dowolnego ciągu pobudzeń i generuje identyczne sekwencje odpowiedzi Y i. Stany zgodne można łączyć zastępując je pojedynczym nowym stanem. 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. Niezgodność WY implikuje natychmiast nierównoważność, zgodność stanów następnych może być rozpatrywana warunkowo. Przykład 5: Selektor triad 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 0 1 y 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 y 2 - - 0 - - 1 - - 0 - - 0 - - 1 - - 0 - - 0 = {0,1} y l = 1 - zakończono wczytywanie triady, y 2 = 1 - wykryto wyróżnione 010 i 110 ; Y = <y 1, y 2 >, Y = { 0-, 10, 11 } - trwa wprowadzanie triady, triada inna niż 010 / 110, wykryto 010 / 110. 8
Rozpatrzmy graf dla automatu Mealy'ego, obrazujący wczytywanie wszystkich możliwych 8 triad. Drzewo binarne tworzone wg zasady: x = 0 => przejdź do lewego poddrzewa, x = 1 => przejdź do prawego poddrzewa. Ścieżki odpowiadające szukanym triadom zostały wyróżnione. W naszym przykładzie: d, f identyczne nowy stan l; e, g identyczne nowy stan m; b, c równoważne nowy stan k. Wynik minimalizacji: 0 1 a k / 0- k / 0- k l / 0- m / 0- l a / 10 a / 10 m a / 11 a / 10 '/Y Czyli: = {a, k, l, m} -ostatecznie uzyskany zbiór 4 stanów. 9
Przykład 6: Minimalizacja stanów Przykład automatu Moore'a: 00 01 11 10 Y 1 5 3 2 1 0 2 5 3 1 4 0 3 3 4 4 5 1 4 5 3 2 2 0 5 6 7 1 1 0 6 3 3 1 7 0 7 7 1 1 5 1 ' 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 1/2 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)... Dla każdej pary ( i, j ): porównując wiersze tabeli przejść odpowiadające stanom i, j wypisujemy jakie inne pary stanów muszą być równoważne, aby nastąpiła zgodność. Niezgodność WY w choć jednej parze, która się w ten sposób pojawia, przekreśla szanse na zgodność ( i, j ) dalsza eliminacja par. 10
Tabela potencjalnej równoważności: Równoważność Pod warunkiem stanów: równoważności: Niezgodność WY: (1, 2) (1,2), (1,4) (1, 4) (1,2) (1, 5) (5,6), (3,7), (1,2) (1, 6) (3,5), (1,2), (1,7) (2, 4) (1,2) (2, 5) (5,6), (3,7), (1,4) (2, 6) (3,5), (4,7) (3, 7) (3,7), (1,4) (4, 5) (5,6), (3,7), (1,2) (4, 6) (3,5), (1,2), (2,7) (5, 6) (3,6), (3,7), (1,7) Niekiedy spotykana trójkątna postać tej samej tabeli: 2 (1,4) 3 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 K=7, 1/2K(K-1)=21 pominięcie stanów wyjściowo niezgodnych redukuje natychmiast liczbę wierszy do 11 - o połowę. 11
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. Ostatecznie: 1 2 4 => nowy stan a; 3 7 => nowy stan b; 5 => nowy stan c; 6 => nowy stan d; ={a,b,c,d} 00 01 11 10 Y a c b a a 0 b b a a c 1 c d b a a 0 d b b a b 0 3.5.3. Zmiana typu automatu Mealy Moore 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 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. 12
. Konwersja Moore Mealy Kroki: 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. Przykład: utomat Moore'a (detektor sekwencji 011 ): 0 1 Y a c a 0 b c a 1 c c d 0 d c b 0 1) Tabela przejść / wyjść z dopisanymi sygnałami Y: 0 1 a c/0 a/0 b c/0 a/0 to już jest automat Mealy'ego! c c/0 d/0 d c/0 b/1 /Y 2) Minimalizacja stanów: Równoważność Pod warunkiem stanów: równoważności: Niezgodność WY: (a, b) - (a, c) (a, d) (b, c) (a, d) a b a, b nowy stan a; = {a, c, d} 13
3) Wynik konwersji: 0 1 a c/0 a/0 c c/0 d/0 d c/0 a/1 /Y B. Konwersja Mealy Moore Kroki: 1) Utworzenie nowych stanów: Każda para '/Y w tabeli przejść / wyjść staje się osobnym stanem w automacie Moore'a, np. k / Y l nowy stan a m. Liczba stanów potencjalnie wzrasta. 2) Nowa tabela przejść: Dla każdego nowego stanu a m, odpowiadający mu wiersz w tabeli przejść powstaje przez powielenie wiersza stanu k z tabeli automatu Maely'ego z parami '/Y zastąpionymi nowymi stanami. 3) Nowa tabela wyjść: Powstaje wprost z definicji nowych stanów: λ(a m ) = Y i 14
Przykład 1: Selektor triad w wersji Moore'a Wersja automatu Mealy' ego: = {a, b, c, d} 0 1 a b / 0- b / 0- b c / 0- d / 0- c a / 10 a / 10 d a / 11 a / 10 '/Y c b d 1) Nowe stany: a/10 nowy stan 0, a/11 nowy stan l, b/0- nowy stan B, c/0- nowy stan C, d/0- nowy stan D. 2) utomat Moore' a: 0 1 Y 0 B B 10 1 B B 11 B C D 0- C 0 0 0- D 1 0 0-15
Przykład 2: Sumator szeregowy jako automat Moore'a Wersja automatu Mealy'ego: = {0, 1} 00 01 10 11 0 0/0 0/1 0/1 1/0 1 0/1 1/0 1/0 1/1 '/Y 1) Każda para /Y w tabeli przejść / wyjść staje się osobnym stanem: 0/0 nowy stan a 0, 0/1 nowy stan a 1, 1/0 nowy stan b 0, 1/1 nowy stan b 1. 2) utomat Moore' a: 00 01 10 11 Y a 0 a 0 a 1 a 1 b 0 0 a 1 a 0 a 1 a 1 b 0 1 b 0 a 1 b 0 b 0 b 1 0 b 1 a 1 b 0 b 0 b 1 1 16