Projektowanie automatów: minimalizacja automatów realizacja automatów Układy sekwencyjne - minimalizacja automatów 2/21 Minimalizacja liczby stanów automatu Celem minimalizacji liczby stanów jest takie przekształcenie automatu do.

Download Report

Transcript Projektowanie automatów: minimalizacja automatów realizacja automatów Układy sekwencyjne - minimalizacja automatów 2/21 Minimalizacja liczby stanów automatu Celem minimalizacji liczby stanów jest takie przekształcenie automatu do.

Projektowanie automatów:
minimalizacja automatów
realizacja automatów
Układy sekwencyjne - minimalizacja automatów
2/21
Minimalizacja liczby stanów automatu
Celem minimalizacji liczby stanów jest takie przekształcenie automatu do innego
automatu, równoważnego pierwotnemu, aby można było go zrealizować przy
użyciu jak najmniejszej liczby elementów pamiętających - przerzutników.
Jeżeli automat przed minimalizacją ma N stanów, to do jego realizacji potrzeba
M przerzutników, zgodnie z:
2M-1 < N  2M
Jeżeli w efekcie minimalizacji liczby stanów z N do N’ otrzymamy relację:
2M’-1 < N’  2M’ i M’ < M
to już jest to korzystne.
Układy sekwencyjne - minimalizacja automatów
3/21
Pojęcia:
Stany niesprzeczne - dwa stany następne automatu są niesprzeczne, gdy są jednakowe
albo co najmniej jeden z nich jest nieokreślony.
Niesprzeczne stany wyjść - występują wtedy, gdy bity reprezentujących je słów
wyjściowych są parami jednakowe lub co najmniej jeden z nich jest nieokreślony.
Stany zgodne - dwa stany wewnętrzne Ai oraz Aj są zgodne, gdy dla każdego słowa
wejściowego Xi spełnione są warunki:
 stany wyjść są niesprzeczne;
 stany następne są niesprzeczne lub zgodne.
Układy sekwencyjne - minimalizacja automatów
Podczas minimalizacji automatu muszą być przy tym spełnione warunki:
• pokrycia, tzn. nie pominięcia żadnego ze stanów pierwotnych automatu;
• zamkniętości, tzn. dla każdych dwóch stanów zgodnych Ai Aj należących
do grupy stanów zgodnych Gn i dla każdego słowa wejściowego Xi
stany następne A’i (A’i=(Ai,Xi)) oraz A’j (A’j=(Aj,Xi))
należą do tej samej grupy stanów zgodnych Gm.
4/21
Układy sekwencyjne - minimalizacja automatów
5/21
Minimalizacja metodą par:
Przykład 1
X
00
01
11
10
0
1/1
5/-
-
2/1
1
4/1
1/0
3/0
4/-
2
3/-
1/1
4/1
0/-
3
-
5/0
5/0
4/1
4
2/0
3/1
3/0
5/0
5
4/-
3/-
5/0
-
A
Układy sekwencyjne - minimalizacja automatów
a)
6/21
b)
1
2
3
1,4 1,5
1
2,4
1,3 1,5
2,4
2
1,5 3,5
3
4
5
1,4 1,5
2,4
1,3 1,5
2,4
1,5 3,5
4
1,4 3,5 1,3 3,5
0
1
2,4 3,5
2
3
kolumna 4 : kolumna 3 : (3,5)
kolumna 2 : kolumna 1 : (1,3,5)
kolumna 0 : (0,2)
4
5
1,4 3,5 1,3 3,5
0
1
2,4 3,5
2
3
MAX = {(0,2) (1,3,5) (4)}
MIN = MAX
4
Układy sekwencyjne - minimalizacja automatów
(0,2) - 0
X
7/21
(1,3,5) - 1
(4) - 2
00
01
11
10
0
1/1
1/1
2/1
0/1
1
2/1
1/0
1/0
2/1
2
0/0
1/1
1/0
1/0
A
Układy sekwencyjne - minimalizacja automatów
8/21
Wykres zgodności:
1
0
2
5
3
4
Układy sekwencyjne - minimalizacja automatów
9/21
Przykład 2
a)
b)
x
0
1
y1y2
1
2
5
_0
2
4
5
00
A
3
6
1
1_
2
3
4
4
3
8
10
5
5
2
7
10
6
6
4
3
00
7
-
3
_0
8
8
5
01
7
2,4
2,6 1,5
2,3 5,8
3,6 1,8
5,7
2,6 1,7 2,3 7,8
2,4 3,5
3,5
3,5
3,5
1,3
3,8
3,7
1
2
3
4
5
8
6
7
Układy sekwencyjne - minimalizacja automatów
10/21
Wyznaczanie MAX (przegląd kolumn tablicy trójkątnej):
kolumna 7 : kolumna 6 : (6,7)
kolumna 5 : (5,7)
kolumna 4 : kolumna 3 : (3,5,7)
kolumna 2 : (2,6,7)
kolumna 1 : (1,3,5,7)
Daje to klasę grup stanów zgodnych:
MAX = {(1,3,5,7) (2,6,7) (4) (8)}
(1,7)
(3,7)
(5,7)
(2,7)
(6,7)
W(3,5)
W(5,7)
W(1,5)
-
-
MIN = {(1,3,5,7) (2,6) (4) (8)}
(1,3,5,7) - 1
(2,6) - 2 (4) - 3
(8) - 4
Układy sekwencyjne - minimalizacja automatów
11/21
Tablica automatu zminimalizowanego:
a)
x
A
0
1
y1y2
(1,3,5,7)
1
2
1
10
(2,6)
2
3
1
00
(4)
3
1
4
10
(8)
4
4
1
01
Graf zgodności:
8
1
7
2
6
3
5
4
Układy sekwencyjne - minimalizacja automatów
12/21
Kodowanie automatów synchronicznych
Przykład:
a - tablica po minimalizacji; b - przykładowe kodowanie; c - tablica po zakodowaniu
a)
b)
x
c)
0
1
y
A
Q
1
1
2
1
1
00
2
3
2
0
2
3
1
4
0
4
1
4
1
A
x
0
1
y
00
00
01
1
01
01
10
01
0
3
10
10
00
11
0
4
11
11
00
11
1
Q
Układy sekwencyjne - minimalizacja automatów
13/21
Przykład
a - tablica po minimalizacji; b - przykładowe kodowanie; c - tablica po zakodowaniu
a)
b)
x
c)
x
0
1
A
Q
1
4/1
1/1
1
000
000 011/1 000/1
2
3/0
6/0
2
001
001 010/0 101/0
3
3/0
1/1
3
010
010 010/0 000/1
4
4/1
5/0
4
011
011 011/1 100/0
5
2/1
5/0
5
100
100 001/1 100/0
6
4/1
6/0
6
101
101 011/1 101/0
A
Q
0
1
Układy sekwencyjne - minimalizacja automatów
14/21
c.d. - inny wariant kodowania:
a - przykładowe kodowanie; b - tablica po zakodowaniu
a)
b)
x
0
1
A
Q
1
001
001 101/1 001/1
2
010
010 011/0 111/0
3
011
011 011/0 001/1
4
101
101 101/1 110/0
5
110
110 010/1 110/0
6
111
111 101/1 111/0
Q
Układy sekwencyjne - minimalizacja automatów
Realizacja automatu na przerzutnikach
przekształcenie zakodowanej tablicy
Moore’a w celu zastosowania sklejeń:
x
przekształcenie zakodowanej
tablicy Meale’go w celu
zastosowania sklejeń
0
1
y
00
00
01
0
01
10
01
10
00
11
00
Q
Q
15/21
x
0
x
0
1
y
00
00
01
0
0
01
10
01
0
11
0
11
00
11
1
11
1
10
00
11
0
1
Q
Q
x
0
1
-
-
001 101/1 001/1
000
010 011/0 111/0
001 101/1 001/1
011 011/0 001/1
011 011/0 001/1
101 101/1 110/0
010 011/0 111/0
110 010/1 110/0
110 010/1 110/0
111 101/1 111/0
111 101/1 111/0
101 101/1 110/0
100
-
-
Układy sekwencyjne - minimalizacja automatów
16/21
Wykorzystanie tablic wzbudzeń przerzutników
QQ’
00
01
10
11
QQ’
00
01
10
11
D
0
1
0
1
JK
0_
1_
_1
_0
przerzutnik D1
x
0
1
y
00
00
01
0
01
10
01
11
00
10
00
Q1Q0
x
0
1
00
0
0
0
01
1
11
1
11
11
0
10
Q1Q0
x
0
1
00
0
1
0
01
0
1
0
1
11
0
1
0
1
10
0
1
D1  xQ1  x Q1Q 0
D0  x
przerzutnik D0
Q 1 Q0
Układy sekwencyjne - minimalizacja automatów
17/21
przerzutnik J1K1
x
0
1
y
00
00
01
0
01
10
01
11
00
10
00
Q1Q0
x
0
1
00
0_
0_
0
01
1_
11
1
11
11
0
10
Q1Q0
J0  x
K0  x
x
0
1
00
0_
1_
0_
01
_1
_0
_1
_0
11
_1
_0
_1
_0
10
0_
1_
J1  xQ 0
K1  x
przerzutnik J0K0
Q 1 Q0
Układy sekwencyjne - minimalizacja automatów
Wykorzystanie uniwersalnych funkcji wzbudzeń
D = { F1 , F1 (Fx) }
J = { F1 (F1 , F0 , Fx ) }
K = { F0 (F0 , F1 , Fx ) }
D = { F0 , F0 (Fx) }
J = { F0 (F0 , F1 , Fx ) }
K = { F1 (F1 , F0 , Fx ) }
gdzie: Fx - nieokreślone stany następne przerzutników;
F1 - stany przerzutników zmieniające się z 0 na 1;
F0 - stany przerzutników zmieniające się z 1 na 0;
F1 , F0 - nie zmieniające się „1” i „0” przerzutników.
18/21
Układy sekwencyjne - minimalizacja automatów
przerzutnik D1
x
0
1
y
00
00
01
0
01
10
01
11
00
10
00
Q1Q0
x
0
1
00
0
0
0
01
1
11
1
11
11
0
10
Q1Q0
przerzutnik D0
x
0
1
00
0
1
0
01
0
1
0
1
11
0
1
0
1
10
0
1
D1  xQ1  x Q1Q 0
D0  x
19/21
Q 1 Q0
Układy sekwencyjne - minimalizacja automatów
20/21
przerzutnik J1K1
x
0
1
y
00
00
01
0
01
10
01
11
00
10
00
Q1Q0
x
x
0
1
J1  xQ 0
00
0
1
0
01
0
1
K1  x
0
1
11
0
1
J0  x
0
1
10
0
1
K0  x
0
1
00
0
0
0
01
1
11
1
11
11
0
10
Q1Q0
przerzutnik J0K0
Q 1 Q0
y = Q1 Q0
y
y
x
D
Q
C "0"
R
CLK
D
Q
x
R
Q
C "0"
C "1"
Q
J
Q
K
CLK
R
J
Q
C "1"
Q
K
R
Q
Układy sekwencyjne - minimalizacja automatów
21/21
Równoległe i szeregowe układy taktowania
niech:
Qi - zbiór pogrubionych symboli ( 1 i 0 ) i-tego przerzutnika
Q1j - zbiór pogrubionych 1 j-tego przerzutnika
Q0j - zbiór pogrubionych 0 j-tego przerzutnika
Qi Qj - wyjścia wprost przerzutników i-tego oraz j-tego
Ci Cj - sygnały taktujące przerzutniki i-ty oraz j-ty
1. jeżeli Qi  Q0j , to Ci = Qj i przy stanach następnych Qj'  0 wpisujemy Qi' = _
2. jeżeli Qi  Q1j , to Ci =Qj i przy stanach następnych Qj'  1 wpisujemy Qi' = _