Automat Moore’a: Różnice pomiędzy wersjami
[wersja przejrzana] | [wersja przejrzana] |
Usunięta treść Dodana treść
→Przykład automatu Moore’a: błąd merytoryczny w wyrażeniu regularnym - nieprawidłowe przejścia |
|||
Linia 1:
{{Dopracować|źródła=2013-09}}
'''Automat Moore’a'''
== Definicja formalna ==
Automat Moore’a jest to rodzaj [[Deterministyczny automat skończony|deterministycznego automatu skończonego]], reprezentowany przez uporządkowaną szóstkę:
:: <math>\langle Z,Q,Y,\Phi,\Psi,q_0\rangle,</math>
[[Plik:Moore machine-diagram.svg|center|200x200px]]
gdzie:▼
▲gdzie:
: <math>Y = \{y_1, y_2, \dots, y_n\}</math> – zbiór sygnałów wyjściowych,
: <math>\Psi</math> – funkcja wyjść, <math>y(t) = \Psi[q(t)],</math> zależy tylko od stanu w którym znajduje się automat,
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
[[Plik:Graf automatu moore.svg
== Synteza strukturalna ==
Linia 25:
=== Etap I – kodowanie stanów, sygnałów i wyjść ===
Przypisuje się tu stanom
* sygnały wejściowe:
* wyjścia automatu:
* stany wewnętrzne:
{| class="wikitable" style="text-align: center"
!width="40"| stan
!width="40"| Q<sub>1</sub>
!width="40"| Q<sub>2</sub>
!width="40"| Q<sub>3</sub>
|-
! q<sub>0</sub>
Linia 58:
W powyższym układzie użyte zostały trzy [[Przerzutnik#Przerzutniki typu D|przerzutniki typu D]] (stany zapisane są na trzech bitach). Trzeba określić funkcje wejść przerzutników (D<sub>1</sub>, D<sub>2</sub>, D<sub>3</sub>) 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:
{| class="wikitable" style="text-align: center"
!width="40"| z
!width="40"| Q<sub>1</sub>
!width="40"| Q<sub>2</sub>
!width="40"| Q<sub>3</sub>
!width="50"| Q<sub>1</sub>(t+1)
!width="50"| Q<sub>2</sub>(t+1)
!width="50"| Q<sub>3</sub>(t+1)
!width="40"| D<sub>1</sub>
!width="40"| D<sub>2</sub>
!width="40"| D<sub>3</sub>
|-
| 0 || 0 || 0 || 0 || 0 || 1 || 1 || 0 || 1 || 1
Linia 97:
=== 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 <math>q(t+1)</math>)
* <math>
* <math>
* <math>
▲* <math>D_3=\overline{z}\overline{Q_1}\overline{Q_2}\overline{Q_3}+\overline{z}\overline{Q_1}Q_2Q_3+\overline{z}Q_1\overline{Q_2}\overline{Q_3}+\overline{z}Q_1\overline{Q_2}Q_3+z\overline{Q_1}\overline{Q_2}\overline{Q_3}+z\overline{Q_1}Q_2\overline{Q_3}+zQ_1\overline{Q_2}\overline{Q_3}+zQ_1\overline{Q_2}Q_3</math>
Po minimalizacji metodą [[metoda Karnaugh|siatek Karnaugh]]:▼
* <math>D_1={zQ}_2+{Q}_2{Q}_3+{Q}_1{Q}_3,</math>
* <math>D_2=\overline{z}\overline{Q_2}\overline{Q_3}+z\overline{Q_1}\overline{Q_2}Q_3,</math> * <math>D_3=Q_1+z\overline{Q_3}+\overline{Q_2}\overline{Q_3}+\overline{z}Q_2Q_3.</math>
=== Etap IV – określenie funkcji wyjścia y ===
Wyjście <math>Y</math> może się zmieniać w zależności od stanu <math>Q,</math>
=== Etap V – schemat logiczny ===
|