Automat Moore’a

Automat Moore’a – automat, którego wyjście jest funkcją wyłącznie stanu wewnętrznego (por. automat Mealy’ego).

Definicja formalna

Automat Moore’a jest to rodzaj deterministycznego automatu skończonego, reprezentowany przez uporządkowaną szóstkę:

Moore machine-diagram.svg

gdzie:

– zbiór sygnałów wejściowych,
– zbiór stanów wewnętrznych,
– zbiór sygnałów wyjściowych,
– funkcja przejść,
– funkcja wyjść, zależy tylko od stanu w którym znajduje się automat,
– stan początkowy, należy do zbioru

Automat Moore’a przedstawia się jako graf skierowany z wyróżnionym wierzchołkiem zwanym stanem początkowym. Podając sygnały na wejście automatu powodujemy zmianę bieżącego stanu i zwrócenie wartości przypisanej do nowego stanu.

Przykład automatu Moore’a

Poniżej przedstawiony został przykładowy graf automatu Moore’a. Automat ten realizuje funkcję „zamka szyfrowego”, akceptującego w stanie kombinację określaną przez wyrażenie regularne

Graf automatu moore.svg

Synteza strukturalna

Synteza strukturalna automatu Moore’a ma na celu uzyskanie schematu logicznego. Składa się ona z pięciu etapów. Poszczególne etapy zostały przedstawione na przykładzie pokazanego wyżej grafu automatu.

Etap I – kodowanie stanów, sygnałów i wyjść

Przypisuje się tu stanom sygnałom i wyjściom reprezentację w systemie binarnym:

  • sygnały wejściowe:
  • wyjścia automatu:
  • stany wewnętrzne:
stanQ1Q2Q3
q0000
q1001
q2010
q3011
q4100
q5101

Etap II – budowa tablicy wzbudzeń przerzutników

W powyższym układzie użyte zostały trzy przerzutniki typu D (stany zapisane są na trzech bitach). Trzeba określić funkcje wejść przerzutników (D1, D2, D3) w zależności od przejść między stanami. Tabela przejść i wyjść automatu połączona z tabelą wzbudzeń przerzutników wygląda następująco:

zQ1Q2Q3Q1(t+1)Q2(t+1)Q3(t+1)D1D2D3
0000011011
0001000000
0010000000
0011101101
0100011011
0101101101
1000001001
1001010010
1010101101
1011100100
1100001001
1101101101

Aby zrozumieć zasadę budowy tabeli, należy przynajmniej prześledzić tworzenie pierwszego wiersza: bit Q w następnym takcie zegara przechodzi w bit Q(t+1). W tablicy wzbudzeń sprawdza się wartość, którą należy podać na przerzutnik D. Przykładowo Q2=0 przechodzi w Q2(t+1)=1. Na wejście przerzutnika D2 trzeba więc podać 1.

Etap III – odczyt funkcji wzbudzeń przerzutników

Ze zbudowanej w poprzednim etapie tablicy odczytuje się funkcje, które trzeba podać na wejścia odpowiednich przerzutników (przy określaniu funkcji nie bierze się już pod uwagę stanów ):

Po minimalizacji metodą siatek Karnaugh:

Etap IV – określenie funkcji wyjścia y

Wyjście może się zmieniać w zależności od stanu w którym automat się znajduje. W tym przypadku dla automatu w stanie Ponieważ funkcja wyjścia zwraca jeden bit, dlatego otrzymuje się jeden wzór bitu wyjścia automatu: Wiadomo także, że automat nie posiada stanów dla i dlatego można wzór uprościć do

Etap V – schemat logiczny

Można teraz przystąpić do budowy schematu logicznego automatu Moore’a (została użyta optymalizacja zgodnie z twierdzeniem Boole’a, że suma logiczna argumentów jest równa negacji iloczynu logicznego zanegowanych argumentów, co pozwoliło na użycie wyłącznie bramek NAND): Automat moore'a uklad.png

Media użyte na tej stronie

Graf automatu moore.svg
Autor: Vindicator, Licencja: CC BY 2.5
Przykładowy graf automatu Moore'a