Technika Cyfrowa 1 Wykład 5: Synteza automatów sekwencyjnych

Transkrypt

Technika Cyfrowa 1 Wykład 5: Synteza automatów sekwencyjnych
JS TC 1
JS TC 1
III UKŁADY SEKWENCYJNE – C.D.
4 GRAF AUTOMATU, TABELE PRZEJŚĆ / WYJŚĆ
Technika Cyfrowa 1
Opis sekwencyjnego układu cyfrowego…
Wykład 5:
Synteza automatów sekwencyjnych
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.”
x
dr inż. Jarosław Sugier
[email protected]
y
CLK
IIAR, pok. 227 C-3
• 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ść.
5-1
Konstrukcja grafu automatu
5-2
JS TC 1
JS TC 1
Przykłady
Dany automat A = (A, X, Y, δ, λ ):
X = <x1>,
Y = <y1, y2>,
A = { a, b, c }.
1) Stany wewnętrzne Ai automatu tworzą wierzchołki grafu.
2) Przejściu ze stanu Ak do Al pod wpływem pobudzenia Xm
(czyli Al = δ ( Ak, Xm ) ) odpowiada krawędź grafu od Ak do Al
etykietowana sygnałem Xm.
1) Automat Mealy’ego:
3) Dla automatu Mealy'ego: jeśli Yk = λ( Al, Xm ), to sygnał Yk przypisujemy
krawędzi wychodzącej z Al etykietowanej przez Xm;
a
0/00
Uwaga
W automatach Moore’a sygnał Yi skojarzony jest z przebywaniem w
określonym stanie, w automatach Mealy’ego – z przełączaniem się między
stanami.
Tabele – przejść:
b
X
A
c
0/01
0/01
Czyli: w grafie automatu Mealy’ego odpowiedzi automatu przypisane są
krawędziom (krawędzie mają dwie etykiety: sygnał WE Xi / sygnał WY Yj), a
w grafie automatu Moore’a – wierzchołkom.
- alfabet WE
- alfabet WY
- alfabet wewnętrzny
1/01
1/01
Dla automatu Moore’a: jeśli Yk = λ( Al ), to sygnał Yk przypisujemy
wierzchołkowi Al.
5 SYNTEZA ABSTRAKCYJNA AUTOMATÓW
X = { 0, 1 }
Y = { 00, 01, 11 }
1/11
X/Y
a
b
c
0
a
a
b
wyjść:
X
A
1
b
c
c
0
a 00
b 01
c 01
1
01
01
11
A’
Y
2) Automat Moore’a:
1
1
0
b
a
00
0
01
c
0
1
j.w.
11
5-3
JS TC 1
A Y
a 00
b 01
c 11
5-4
JS TC 1
5.1 Przykłady
Przykład 1: Rewersyjny licznik modulo 6
Synteza abstrakcyjna: zdefiniowanie automatu abstrakcyjnego (alfabetów
X, Y, A oraz funkcji δ i λ), realizującego określone zadanie.
Automat zliczający impulsy zegarowe modulo 6 (0 ÷ 5); liczba 3b
wyprowadzana w NKB. Wejścia:
- G (Gate)
– bramkowanie,
• Podanie tabeli prawdy dla funkcji boolowskiej było zadaniem
trywialnym, ale synteza abstrakcyjna automatu zwykle jest nietrywialna.
Alfabety X, Y – wprost z idei pracy, ale alfabet A oraz funkcje δ i λ… ?
- U/D (Up / Not Down)
• Będziemy omawiali głównie przypadki syntezy intuicyjnej, 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.
X = <G U/D>,
– kierunek zliczania.
U/D
G
Q0
CLK
Q2
Q1
X = { 0-, 10, 11 } (stop, licz w dół, licz w górę)
Y = <Q2 Q1 Q0>, Y = {000, 001, 010, 011, 100, 101}
A = { 0, 1, 2, 3, 4, 5 } – stany licznika
5-5
5-6
1
JS TC 1
Graf:
00
11
5
101
011
0-
11
000
4
3
11
011
A
11
2
10
10
100
0-
001
10
10
Na dwa wejścia automatu podawane są w takt zegara kolejne bity liczb w NKB
począwszy od najmłodszego, na wyjściu powinny pojawiać się kolejne bity
sumy.
Tabele przejść i wyjść:
1
10
10
010
0-
11
X
00
1
2
3
4
5
0
1
2
3
4
5
10
5
0
1
2
3
4
11
1
2
3
4
5
0
A
0
1
2
3
4
5
a
b
Y
000
001
010
011
100
101
Y = <s>,
A
00/1
X
00
0 0/0
1 0/1
01
0/1
1/0
10
0/1
1/0
ci-1
0
1
0
1
0
1
0
1
ci
0
0
0
1
0
1
1
1
si
0
1
1
0
1
0
0
1
ci-1 ai
bi
0 0 0 1 0 0 Å przeniesienie
ci
100100
+ 010101
111001
si
11/0
01/0
10/0
11/1
1
0
00/1
Połączone tabele przejść/wyjść:
1
bi
0
0
1
1
0
0
1
1
5-7
JS TC 1
0
Y = {0, 1}
00/0
01/1
10/1
2) W sygnale WE 0- pojawia się wartość dowolna – w syntezie będzie
funkcja niezupełna.
01/0
10/0
11/1
ai
0
0
0
0
1
1
1
1
s
A = { 0, 1 }; A = przeniesienie zapamiętane z sumowania poprzedniego
bitu; stan początkowy A = 0.
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 = A).
11/0
∑
X = <a b>, X = {00, 01, 10, 11}
Uwagi:
00/0
01/1
10/1
Tabela sumowania binarnego:
CLK
A’
0-
JS TC 1
Przykład 2: Sumator szeregowy
5-8
JS TC 1
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.
11
1/0
1/1
a
b
A’/Y
A<B
A=B
A>B
CLK
Uwagi:
Idea pracy: porównywanie od najmłodszego bitu,
stan początkowy R,
ostatnia nierówność jest rozstrzygająca.
Å⇓
1 1 0 0 1 0ÅA
1 0 0 1 1 0ÅB
W W M M R R Å wynik
M ⇔ A<B
R ⇔ A=B
W ⇔ A>B
• Automat Mealy’ego – naturalne przy takiej idei pracy sumatora.
• Do układu w pełni funkcjonalnego brakuje:
a) sygnału inicjalizacji (wymuszenie stanu A = 0)
b) odczytu stanu automatu po zakończeniu sumowania (ostatniego bitu
przeniesienia) – albo kończyć zawsze słowem X = 00.
X = <a b>,
X = {00, 01, 10, 11}
Y = <A<B A=B A>B>,
Y = {100, 010, 001} – kod „1 z 3”
A = { M, R, W } – aktualny wynik porównywania: A mniejsze / równe /
większe od B.
5-9
JS TC 1
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
Tabele:
00, 11
x
A
R
010
00
11
01
M
10
10
100
X
M
R
W
00
M
R
W
01
M
M
M
10
W
W
W
11
M
R
W
CLK
Y
100
010
001
W
1/0
y
1/0
0/0
X = <x>,
Y = <y>,
A’
001
JS TC 1
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”:
Graf automatu:
01
5-10
00
11
10
01
• Automat Moore’a – wynika z zasady pracy.
5-11
X = {0, 1}
Y = {0, 1}
0/0
a
1/0
b
1/0
c
0/0
0/1
Idea pracy:
• stany wewnętrzne odpowiadają wykrywaniu kolejnych przedrostków
sekwencji,
x
0
1
A
A = {a, b, c, d }; (a) – stan początkowy,
a
a/0 b/0
(b) – wykryto przedrostek „1”,
b a/0 c/0
(c) – wykryto przedrostek „11”,
c d/0 c/0
(d) – wykryto przedrostek „110”.
d a/1 b/0
• automat Mealy’ego
A’/Y
d
X /Y
5-12
2
JS TC 1
5.2 Minimalizacja stanów
JS TC 1
Przykład 5: Selektor triad
Cel: redukcja liczby stanów automatu (uproszczenie grafu), w konsekwencji
uproszczenie późniejszej implementacji w postaci układu cyfrowego.
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
Fragment teorii automatów, tutaj omówiony tylko na przykładach.
x
Zasady
y1
y2
CLK
• Dwa stany automatu nazywamy zgodnymi, jeśli automat znajdując się w
nich zachowuje się identycznie, tzn. pod wpływem dowolnego ciągu
pobudzeń Xi generuje identyczne sekwencje odpowiedzi Yi.
0 1
y1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1
y2 - - 0 - - 1 - - 0 - - 0 - - 1 - - 0 - - 0
X = {0, 1}
• Stany zgodne można łączyć zastępując je pojedynczym nowym stanem.
y1 = 1 – zakończono wczytywanie triady,
y2 = 1 – wykryto wyróżnione „010” i „110”;
• 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.
Y = <y1, y2>, Y = {0-, 10, 11} – trwa wprowadzanie triady, triada inna niż
„010”/„110”, wykryto „010”/„110”.
• Niezgodność WY implikuje natychmiast nierównoważność, zgodność
stanów następnych może być rozpatrywana warunkowo.
Graf automatu Mealy’ego, obrazujący wczytywanie wszystkich możliwych 8
triad…
5-13
5-14
JS TC 1
• Drzewo binarne tworzone wg zasady:
x = 0 ⇒ przejdź do lewego poddrzewa,
1
0-
0
0-
e
1
10
c
0
0-
e
1
10
0
11
1
0-
f
1
10
0
10
g
1
10
0
11
1
10
c
d
0
10
1/0-
1
0-
d
0
10
1/0-
b
0
0-
0
0-
⇓
b, c równoważne ⇒ nowy stan k.
a
0/0-
0/0-
b
d, f identyczne ⇒ nowy stan l;
e, g identyczne ⇒ nowy stan m;
x = 1 ⇒ przejdź do prawego poddrzewa.
JS TC 1
a
• W naszym przykładzie:
0
11
f
1
10
0
10
• Wynik minimalizacji:
1
0-
g
1
10
do stanu a
a
0
11
0/01/0-
0/10
1/10
1
10
0
0-
l
do stanu a
0/11
1/10
k
A
X
a
k
l
m
1
0-
m
0
1
k/0- k/0l/0- m/0a/10 a/10
a/11 a/10
A’/Y
• Czyli: A = {a, k, l, m} – ostatecznie uzyskany zbiór 4 stanów.
• Ścieżki odpowiadające szukanym triadom zostały wyróżnione.
5-15
JS TC 1
Przykład 6: Minimalizacja stanów
A
Przykład automatu Moore’a:
5-16
X
1
2
3
4
5
6
7
00
5
5
3
5
6
3
7
01
3
3
4
3
7
3
1
11
2
1
4
2
1
1
1
10
1
4
5
2
1
7
5
A’
A
Tabela potencjalnej równoważności:
Y
0
0
1
0
0
0
1
Równoważność
stanów:
(1, 2)
(1, 4)
(1, 5)
(1, 6)
(2, 4)
(2, 5)
(2, 6)
(3, 7)
(4, 5)
(4, 6)
(5, 6)
• 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 ½ 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)...
Pod warunkiem
równoważności:
(1,2), (1,4)
(1,2)
(5,6), (3,7), (1,2)
(3,5), (1,2), (1,7)
(1,2)
(5,6), (3,7), (1,4)
(3,5), (4,7)
(3,7), (1,4)
(5,6), (3,7), (1,2)
(3,5), (1,2), (2,7)
(3,6), (3,7), (1,7)
Niezgodność
WY:
×
×
• Dla każdej pary (Ai, Aj): porównując wiersze tabeli przejść odpowiadające
stanom Ai,Aj wypisujemy jakie inne pary stanów muszą być równoważne,
aby nastąpiła zgodność.
×
×
×
½ K (K − 1) = 21
⇓
pominięcie stanów wyjściowo niezgodnych
zredukowało natychmiast liczbę wierszy do
11 – o połowę.
• Niezgodność WY w choć jednej parze, która się w ten sposób pojawia,
przekreśla szanse na zgodność (Ai, Aj) ⇒ dalsza eliminacja par.
5-17
00
5
5
3
5
6
3
7
01
3
3
4
3
7
3
1
11
2
1
4
2
1
1
1
10
1
4
5
2
1
7
5
A’
Y
0
0
1
0
0
0
1
×
×
Niekiedy spotykana trójkątna
postać tej samej tabeli:
2
K = 7,
JS TC 1
X
1
2
3
4
5
6
7
3
(1,4)
×
×
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
5-18
3
JS TC 1
JS TC 1
5.3 Zmiana typu automatu Mealy ↔ Moore
Pod warunkiem
równoważności:
(1,2), (1,4)
(1,2)
(5,6), (3,7), (1,2)
(3,5), (1,2), (1,7)
(1,2)
(5,6), (3,7), (1,4)
(3,5), (4,7)
(3,7), (1,4)
(5,6), (3,7), (1,2)
(3,5), (1,2), (2,7)
(3,6), (3,7), (1,7)
Niezgodność
WY:
1 ≡ 2 ≡ 4 => nowy stan a;
X
A
Równoważność:
(1, 2)
(1, 4)
(1, 5)
(1, 6)
(2, 4)
(2, 5)
(2, 6)
(3, 7)
(4, 5)
(4, 6)
(5, 6)
• 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.
×
×
×
• 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 (nadmiarowy) 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.
A. Konwersja Moore ⇒ Mealy
Ostatecznie:
3 ≡ 7 => nowy stan b;
5 => nowy stan c;
a
b
c
d
6 => nowy stan d;
A = {a, b, c, d}
00
c
b
d
b
01
b
a
b
b
11
a
a
a
a
10
a
c
a
b
A’
Kroki:
Y
0
1
0
0
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.
5-19
5-20
JS TC 1
JS TC 1
Przykład:
2) Minimalizacja stanów:
0) Automat Moore’a (detektor sekwencji „011”):
A
X
0
c
c
c
c
a
b
c
d
1
a
a
d
b
A’
1
Y
0
1
0
0
0
a
0
0
1
0
b
1
1
c
d
0
0
X
a
b
c
d
0
c/0
c/0
c/0
c/0
Pod warunkiem:
(a, b)
(a, c)
(b, c)
−
(a, d)
(a, d)
Niezg.
WY:
×
×
0
c/0
c/0
c/0
c/0
1
a/0
a/0
d/0
b/1
A’/Y
1
3) Wynik konwersji:
A
1
a/0
a/0
d/0
b/1
A’/Y
X
a
b
c
d
a ≡ b ⇒ a, b → nowy stan a;
A = {a, c, d}
0
1) Tabela przejść / wyjść z dopisanymi sygnałami Y:
A
Równow.:
A
to już jest
automat Mealy’ego!
X
0
a c/0
c c/0
d c/0
1/0
1
a/0
d/0
a/1
A’/Y
0/0
1/0
0/0
a
c
d
0/0
1/1
5-21
JS TC 1
B. Konwersja Mealy ⇒ Moore
5-22
A
0) Wersja automatu Mealy’ego:
Kroki:
A = {a, b, c, d}
1) Utworzenie nowych stanów:
Każda para A’/Y w tabeli przejść / wyjść staje się osobnym stanem w
automacie Moore’a, np.
1) Nowe stany:
a/10 → nowy stan A0,
a/11 → nowy stan A1,
b/0- → nowy stan B,
c/0- → nowy stan C,
d/0- → nowy stan D.
Ak / Yl → nowy stan am.
… liczba stanów (zazwyczaj) wzrasta.
2) Nowa tabela przejść:
Dla każdego nowego stanu am, odpowiadający mu wiersz w tabeli
przejść powstaje przez powielenie wiersza stanu Ak z tabeli automatu
Maely’ego z parami A’/Y zastąpionymi nowymi stanami.
X
a
b
c
d
0
1
b/0- b/0c/0- d/0a/10 a/10
a/11 a/10
X
0
A0 B
A1 B
B C
C A0
D A1
A
λ(am) = Yl
5-23
a
Y
10
11
000-
0/11
1/10
b
0
0-
1
0-
c
d
A1
A0
1
B
B
D
A0
A0
A’
0/01/0-
0/10
1/10
A’/Y
2) Automat Moore’a:
3) Nowa tabela wyjść:
Powstaje wprost z definicji nowych stanów:
JS TC 1
Przykład 1: Selektor triad w wersji Moore’a
11
10
0,1
B
0,1
0
00
1
0,1
1
C
D
0-
0-
5-24
4
JS TC 1
Przykład 2: Sumator szeregowy jako automat Moore’a
0) Wersja automatu Mealy’ego:
A = {0, 1}
A
X
00
0 0/0
1 0/1
01
0/1
1/0
10
0/1
1/0
11
1/0
1/1
A’/Y
1) „Każda para A’/Y w tabeli przejść / wyjść staje się osobnym stanem”:
0/0 → nowy stan a0,
0/1 → nowy stan a1,
01,10
00
1/0 → nowy stan b0,
1/1 → nowy stan b1.
A
X
a0
a1
b0
b1
00
a0
a0
a1
a1
01
a1
a1
b0
b0
10
a1
a1
b0
b0
A = { a0, a1, b0, b1}
11
a0
0
2) Automat Moore’a:
11
b0
b0
b1
b1
A’
Y
0
1
0
1
01
10
00
a1
1
01,10
b0
0
11
00
00
11
01
10
b1
1
11
5-25
5

Podobne dokumenty