Do stworzenia mamy układ rozróżniający ciąg binarny 0110011.
W tym celu tworzymy graf przejśd, każdy punkt grafu to poszczególne miejsce w ciągu (dla automatu Moore’a), czyli w naszym przypadku punktów jest 7 (bo
7 cyfr binarnych), oraz ilośd miejsc +1 dla automatu Mealy’ego, czyli w naszym przypadku 8.
Z każdego punktu grafu możemy wyjśd z wartością 1 lub 0 oraz możemy z takimi wartościami do niego wejśd. Jeśli wartośd która wchodzi spełnia warunek
przejścia do następnego punktu (jest zgodna z rozpoznawanym kodem) to przechodzimy dalej, w przeciwnym przypadku sprawdzamy jakie mieliśmy
poprzednie wartości i od tego uzależniamy do którego miejsca się cofamy (ustalamy, że nie wiemy kiedy nowy ciąg się zaczyna), tak więc np. jak poprzednią
wartością było 0, jesteśmy na 5tym punkcie i wchodzimy z 1 to nie cofamy się na sam początek, ponieważ dostaliśmy kombinację 0 i 1 co mogło byd
początkiem nowej sekwencji (poprzednie zero mogło nim byd), więc wchodzimy do punktu 3ciego.
Zapis zgodnie z automatem Moore’a:
Q
1
Q
2
Q
3
Q
4
Q
5
Q
6
Q
7
0/0
0/0
1/0
1/0
0/0
0/0
1/0
0/0
1/0
0/0
1/0
1/0
0/0
1/1
Zapis zgodnie z automatem Mealy’ego:
Q
1
Q
2
Q
3
Q
4
Q
5
Q
6
Q
7
Q
8
0
0
0
1
1
0
0
1
0
0
0
0
0
0
0
1
0
1
0
1
1
0
1
Po stworzeniu grafu tworzymy tablicę przejśd (dokładniej stany symboliczne), różne w zależności od automatu:
Automat Moore’a:
X Q
n
Q
n+1
Y
0 Q
1
Q
2
0
0 Q
2
Q
2
0
0 Q
3
Q
2
0
0 Q
4
Q
4
0
0 Q
5
Q
6
0
0 Q
6
Q
2
0
0 Q
7
Q
2
0
1 Q
1
Q
1
0
1 Q
2
Q
3
0
1 Q
3
Q
4
0
1 Q
4
Q
1
0
1 Q
5
Q
3
0
1 Q
6
Q
7
0
1 Q
7
Q
1
1
Automat Mealy’ego:
Q
n
Q
n+1
Y
x=0 x=1
Q
1
Q
2
Q
1
0
Q
2
Q
2
Q
3
0
Q
3
Q
2
Q
4
0
Q
4
Q
5
Q
1
0
Q
5
Q
6
Q
3
0
Q
6
Q
2
Q
7
0
Q
7
Q
2
Q
8
0
Q
8
Q
2
Q
1
1
Dalsza częśd będzie osobno dla obu automatów.
Automat Moore’a:
Etap stanów binarnych – przypisujemy poszczególnym stanom (punktom grafu) odpowiedniki binarne.
Q
2
→ 111
Q
3
→ 101
Q
6
→ 110
Q
7
→ 011
Q
1
→ 000
Q
4
→ 001
Q
8
→ 100
Q
5
→ 010
//Szczerze powiedziawszy to nie wiem jak się przypisuje, tzn. skrajne wartości dostają te najczęściej występujące, reszta chyba taki random
Przypisujemy w tabeli zamiast nazw odpowiednie kody:
Q
n
Q
n+1
Y
x=0 x=1
000 111 000 0
111 111 101 0
101 111 001 0
001 010 000 0
010 110 101 0
110 111 011 0
011 111 100 0
100 111 000 1
Wypisujemy z ostatniego wiersza
Wyznaczamy funkcję dla pierwszego przerzutnika (liczba przerzutników to najmniejszą ilośd bitów na której możemy zapisad ilośd cyfr binarnych po
przekształceniu ilości punktów (ogniw), czyli w naszym przypadku 3, bo 2^3>=7 a 2^2<7.
D
1
=δ
1
(Q,X)
D
2
=δ
2
(Q,X)
D
3
=δ
3
(Q,X)
Potrzebna jest tablica wzbudzeo (zrobimy dla przerzutnika D):
Q→Q’ D
0→0
0
0→1
1
1→0
0
1→1
1
Tworzymy tablice Karnaugh:
D
1
:
(sprawdzamy jak się zmienia dany bit – w tym przypadku q
1
bo sprawdzamy dla D
1
)
q
1
x
q
3
q
2
00 01 11 10
00
1
0
0
0
01
0
1
0
1
11
1
1
1
1
10
1
0
1
1
Dla pozostałych tak samo…
Piszemy funkcję boolowską i teraz tylko układzik narysowad – był taki miły, że powiedział, że tego nie da więc was nie uraczę moim super rysuneczkiem.
Automat Mealy’ego:
Etap stanów binarnych:
Q
2
→ 111
Q
3
→ 101
Q
6
→ 110
Q
7
→ 011
Q
1
→ 000
Q
4
→ 001
Q
5
→ 010
Przypisujemy w tabeli zamiast nazw odpowiednie kody:
Q
n
X Q
n+1
Y
000 0 111 0
111 0 111 0
101 0 111 0
001 0 010 0
010 0 110 0
110 0 111 0
011 0 111 0
000 1 000 0
111 1 101 0
101 1 001 0
001 1 000 0
010 1 101 0
110 1 011 0
011 1 000 1
Wypisujemy z ostatniego wiersza:
Potrzebujemy tablicy przejśd przerzutnika (tym razem JK):
Q
n
→Q
n+1
J K
0→0
0 X
0→1
1 X
1→0
X 1
1→1
X 0
W przypadku takiego przerzutnika potrzebujmy dwóch tablic Karnaugh na każdy z przerzutników (osobno dla wejścia J i dla wejścia K):
Przerzutnik dla q
3
J:
q
1
x
q
3
q
2
00 01 11 10
00
1
0
0
0
01
1
1
0
1
11
X
X
X
X
10
-
-
X
X
Wyznaczamy funkcję δ
3J
K:
q
1
x
q
3
q
2
00 01 11 10
00
X
X
X
X
01
X
X
X
X
11
0
1
0
0
10
-
-
1
0
Wyznaczamy funkcję δ
3K
Dla pozostałych tak samo…
Piszemy funkcje boolowskie i teraz tylko układzik narysowad – był taki miły, że powiedział, że tego nie da więc was nie uraczę moim super rysuneczkiem.