problem kodowania stanów w układach sekwencyjnych (automatach)
DESCRIPTION
Problem kodowania stanów w układach sekwencyjnych (automatach). Informacje uzupełniające o układach sekwencyjnych ( zamiast W12 i W13). Sekwencyjne układy asynchroniczne. Problem kodowania w automatach. - PowerPoint PPT PresentationTRANSCRIPT
ITPW
ZPT1
Problem kodowania stanów w układach sekwencyjnych (automatach)
Sekwencyjne układy asynchroniczne
Informacje uzupełniające o układach
sekwencyjnych (zamiast W12 i W13)
ITPW
ZPT2
Kodowanie stanów to przypisanie kolejnym stanom automatu odpowiednich kodów binarnych.
b = log2|S|
Problem kodowania w automatach
Minimalna liczba bitów b potrzebna do zakodowania automatu, w którym liczność zbioru S jest |S|
v1 v2 v3 Y
S1 S1 S4 ─ y2
S2 S5 S3 S1 y1
S3 S4 ─ S5 y3
S4 S1 S2 S3 y2
S5 S4 ─ S2 y4
000
001
010
011
100
Q1Q2Q3Q1Q2Q3
Złożoność realizacji sprzętowej automatu silnie zależy od sposobu zakodowania stanów!
ITPW
ZPT
3
Problem kodowania
xs
0 1 0 1
A A B 0 0
B A C 0 0
C D C 0 0
D A B 0 1
Wariant I
A = 00B = 01C = 10D = 11
Wariant I
A = 00B = 01C = 10D = 11
Wariant II
A = 00B = 11C = 01D = 10
Wariant II
A = 00B = 11C = 01D = 10
21211 QQxQQD
2121212 QQxQxQQQxD
21QxQy
2121 QQxQxD
xD2
21QxQy
Wariant IIWariant II
Wariant IWariant I
ITPW
ZPT
4
Kodowanie
3 stany - 3 różne kodowania3 stany - 3 różne kodowania
4 stany - 3 różne kodowania4 stany - 3 różne kodowania
5 stanów - 5 stanów - 140 kodowań140 kodowań
7 stanów - 7 stanów - 840 kodowań840 kodowań
9 stanów - 9 stanów -
Jak przewidzieć (obliczyć) najlepsze kodowanie stanów?
Jak przewidzieć (obliczyć) najlepsze kodowanie stanów?
Czy realne jest sprawdzenie wszystkich możliwościCzy realne jest sprawdzenie wszystkich możliwości
??????????????????????
ITPW
ZPT
5
Problem kodowania jest bardzo trudny i nawet na poziomie akademickim nie powstały żadne praktycznie użyteczne narzędzia komputerowe wspomagające ten proces (SUL rozdz. 4.3.2).
Problem kodowania jest bardzo trudny i nawet na poziomie akademickim nie powstały żadne praktycznie użyteczne narzędzia komputerowe wspomagające ten proces (SUL rozdz. 4.3.2).
KODOWANIE
Jedyną realną do omówienia w ograniczonym czasie wykładu jest metoda wykorzystująca podział z własnością podstawienia.
Jedyną realną do omówienia w ograniczonym czasie wykładu jest metoda wykorzystująca podział z własnością podstawienia.
ITPW
ZPT
6
Własność podstawienia
Podział na zbiorze stanów automatu M=<S, I , δ> ma własność podstawienia (closed partition), gdy dla każdej pary stanów Si, Sj należącej do tego samego bloku i każdego wejścia Ik stany następne Ik Si oraz Ik Sj należą do wspólnego bloku .
Podział na zbiorze stanów automatu M=<S, I , δ> ma własność podstawienia (closed partition), gdy dla każdej pary stanów Si, Sj należącej do tego samego bloku i każdego wejścia Ik stany następne Ik Si oraz Ik Sj należą do wspólnego bloku .
xs
0 1 0 1
A A F 0 0
B E C 0 1
C C E 0 1
D F A 1 0
E B F 1 1
F D E 0 0
FDCEBA ,,;,,1
Podziały z własnością podstawienia:Podziały z własnością podstawienia:
FEDBCA ,;,;,2
ITPW
ZPT
7
Twierdzenie
Dany jest automat M o zbiorze stanów S, |S| = n.Do zakodowania stanów potrzeba Q1, ..., Qk elementów pamięci.
() – liczba bloków podziału
Jeżeli istnieje podział z własnością podstawienia i jeżeli r
spośród k zmiennych kodujących Q1, ..., Qk, gdzie
r = log2(), jest przyporządkowanych blokom podziału tak, że
wszystkie stany zawarte w jednym bloku są oznaczone tymi samymi
kodami Q1, ..., Qr , to funkcje Q’1, ..., Q’r, są niezależne od pozostałych
(k – r) zmiennych.
Dany jest automat M o zbiorze stanów S, |S| = n.Do zakodowania stanów potrzeba Q1, ..., Qk elementów pamięci.
() – liczba bloków podziału
Jeżeli istnieje podział z własnością podstawienia i jeżeli r
spośród k zmiennych kodujących Q1, ..., Qk, gdzie
r = log2(), jest przyporządkowanych blokom podziału tak, że
wszystkie stany zawarte w jednym bloku są oznaczone tymi samymi
kodami Q1, ..., Qr , to funkcje Q’1, ..., Q’r, są niezależne od pozostałych
(k – r) zmiennych.
ITPW
ZPT
8
Przykład - interpretacja w.p.
xs
0 1 0 1
A A F 0 0
B E C 0 1
C C E 0 1
D F A 1 0
E B F 1 1
F D E 0 0
FDCEBA ,,;,,1
0 0
0 1
0 1
0 0
1 0
1 0
Kodowanie wg 1Kodowanie wg 1
A
B
C
D
E
F
0
0
1
1
0
1
FECBDAτ ,;,;,
Nie wystarcza to do zakodowania
1 • = (0) Warunek jednoznaczności kodowania!Warunek jednoznaczności kodowania!
ITPW
ZPT
9
Przykład …
xs
0 1 0 1
A A F 0 0
B E C 0 1
C C E 0 1
D F A 1 0
E B F 1 1
F D E 0 0
Q1Q2Q3
A 0 0 0
B 0 0 1
C 1 0 1
D 1 0 0
E 0 1 0
F 1 1 0
Co to znaczy, że zastosujemy kodowanie wg podziału zamkniętego:
Co to znaczy, że zastosujemy kodowanie wg podziału zamkniętego:
Q1’ = D1 = f(x,Q1)Q1’ = D1 = f(x,Q1)
Nie musimy obliczać funkcji wzbudzeń, aby stwierdzić, że
pierwsza z nich, czyli D1 będzie…
Niestety tylko jedną zmienną zakodowaliśmy wg podziału zamkniętego, zatem:
Niestety tylko jedną zmienną zakodowaliśmy wg podziału zamkniętego, zatem:
a co z pozostałymi?
Q2’ = D2 = f(x,Q1,Q2,Q3)
Q3’ = D3 = f(x,Q1,Q2,Q3)
Q2’ = D2 = f(x,Q1,Q2,Q3)
Q3’ = D3 = f(x,Q1,Q2,Q3)
ITPW
ZPT
10
Przykład …
xs
0 1 0 1
A A F 0 0
B E C 0 1
C C E 0 1
D F A 1 0
E B F 1 1
F D E 0 0
FEDBCA ,;,;,2π
FDCEBA ,,;,,1π
Kodowanie wg 1 Kodowanie wg 1
0 0
0 1
0 0
0 1
1 0
1 0
A
B
C
D
E
F
0
0
1
1
0
1
2 2
)(0 21
Jest to kodowanie jednoznaczne
A może jest więcej podziałów zamkniętych:A może jest więcej podziałów zamkniętych:
Można wykazać, że oprócz 1 Można wykazać, że oprócz 1
jest 2 jest 2
ITPW
ZPT
11
PRZYKŁAD c.d.
Przy tak dobranym kodowaniu pierwsza funkcja wzbudzeń Q1’ tego automatu będzie zależna od jednej zmiennej wewnętrznej, a druga i trzecia łącznie (Q2’, Q3’) od dwóch zmiennych wewnętrznych, czyli
Q1’ = f(x,Q1)
Q2’ = f(x,Q2,Q3)
Q3’ = f(x,Q2,Q3)
Przy tak dobranym kodowaniu pierwsza funkcja wzbudzeń Q1’ tego automatu będzie zależna od jednej zmiennej wewnętrznej, a druga i trzecia łącznie (Q2’, Q3’) od dwóch zmiennych wewnętrznych, czyli
Q1’ = f(x,Q1)
Q2’ = f(x,Q2,Q3)
Q3’ = f(x,Q2,Q3)
Kto nie wierzy, niech zakoduje, obliczy funkcje Q1’, Q2’, Q3’ i sprawdzi.
Kto nie wierzy, niech zakoduje, obliczy funkcje Q1’, Q2’, Q3’ i sprawdzi.
Dla całego roku! Dla całego roku!
ITPW
ZPT
12
W rozwiązaniu problemu kodowania z pomocą przychodzi technologia…
KODOWANIE
Zadanie to znacznie się upraszcza w strukturach z pamięciami, które są
bezpośrednio realizowalne w układach FPGA.
ITPW
ZPT
Sekwencyjne układy asynchroniczne
Układy asynchroniczne – przeznaczone do specyficznych, nietypowych zastosowań
W najnowszych książkach…
…nic się na ten temat nie pisze …jedynie w specjalistycznych
ITPW
ZPT14
x1
xn
y1
ym
Q1
Qk
q1
qk
Model układu asynchronicznego
układ kombinacyjny
Pamięć jest realizowana przez współdziałanie litery wejściowej i stanu wewnętrznego
UK
BP
Model układu sekwencyjnego(synchronicznego)
Model układu sekwencyjnego(synchronicznego)
Stan stabilny s: (s,x) = s
W automacie asynchronicznym wszystkie stany są stanami stabilnymi
W automacie asynchronicznym wszystkie stany są stanami stabilnymi
ttss
xxxx
Model układu asynchronicznegoModel układu asynchronicznego
clockclockprzerzutnikiprzerzutniki
(możliwe są również realizacje z przerzutnikami asynchronicznymi)
ITPW
ZPT
15
(Najprostszy układ asynchroniczny)SRq
00 01 11 10
0 0 0 – 1
1 1 0 – 1
QQ SRqQ
QQSS
RRQ
Rq
Asynchroniczny przerzutnik SRAsynchroniczny przerzutnik SR
SRq SRq
Dlaczego RS ≠ 11 ?
1
1
0
0
1
1
ITPW
ZPT
16
Synteza układów asynchronicznych
. . . jest bardzo trudna na etapie kodowania stanów, ale z całkiem innych powodów niż w układach synchronicznych.
. . . jest bardzo trudna na etapie kodowania stanów, ale z całkiem innych powodów niż w układach synchronicznych.
Przy niewłaściwym doborze kodowania automat może pracować niezgodnie z pierwotną tablica przejść-wyjść
Przy niewłaściwym doborze kodowania automat może pracować niezgodnie z pierwotną tablica przejść-wyjść
Powstają wtedy tzw. wyścigi krytyczne wprowadzające automat do stanu innego niż jest podany
w tablicy przejść wyjść.
Powstają wtedy tzw. wyścigi krytyczne wprowadzające automat do stanu innego niż jest podany
w tablicy przejść wyjść.
Przyczyną kłopotów są zjawiska niejednakowego opóźnienia sygnału w elementach logicznych.
Przyczyną kłopotów są zjawiska niejednakowego opóźnienia sygnału w elementach logicznych.
ITPW
ZPT
17
Synteza układów asynchronicznych
x1x2
S00 01 11 10 y
A 00 00 00 01 10 0
B 01 – 10 01 10 1
(-) 11 – – – – –
C 10 00 10 10 10 0
1010
0101
A/0A/0B/1B/1
C/0C/0
0000
0000 1010
1111 1111
10100101
1111
010100
01
10
Kod stanu
Graf stanówGraf stanów
x1x2
S00 01 11 10 y
A A A B C 0
B – C B C 1
C A C C C 0
ITPW
ZPT
18
Analiza działania układu asynchronicznego
1 > 2
0 1 0 0 1 0
1 < 2
0 1 1 1 1 0
x1x2
S00 01 11 10 y
A 00 00 00 01 10 0
B 01 – 10 01 10 1
(-) 11 – – – – –
C 10 00 10 10 10 0
10
x1
x2
y
Q1
Q2
q1
q2
Układkombinacyjny(bez opóźnień)
Układkombinacyjny(bez opóźnień)
1
2
OpóźnieniaOpóźnienia
Wyścigniekrytyczny
0110
Wyścigkrytyczny!
ITPW
ZPT
19
Zmodyfikowana tablica przejść
x1x2
S00 01 11 10 y
A 00 00 00 01 10 0
B 01 – 11 01 10 1
(-) 11 – 10 – 10 –
C 10 00 10 10 10 0
x1x2
Q1Q200 01 11 10 00 01 11 10 00 01 11 10
00 00 00 01 10 0 0 0 1 0 0 1 0
01 -- 11 01 10 - 1 0 1 - 1 1 0
11 -- 10 -- 10 - 1 - 1 - 0 - 0
10 00 10 10 10 0 1 1 1 0 0 0 0
Q1’Q1’Q1’Q2’Q1’Q2’ Q2’Q2’
W celu uzyskania prawidłowego działania układu asynchronicznego jego tablicę przejść należy odpowiednio modyfikować
W celu uzyskania prawidłowego działania układu asynchronicznego jego tablicę przejść należy odpowiednio modyfikować
ITPW
ZPT
20
Wyznaczanie funkcji wzbudzeń
x1x2
Q1Q200 01 11 10 00 01 11 10 00 01 11 10 Y
00 00 00 01 10 0 0 0 1 0 0 1 0 0
01 -- 11 01 10 - 1 0 1 - 1 1 0 1
11 -- 10 -- 10 - 1 - 1 - 0 - 0 -
10 00 10 10 10 0 1 1 1 0 0 0 0 0
Q1’Q1’Q1’Q2’Q1’Q2’ Q2’Q2’
1x
1Q
2x
1x
1x
2Q
2x
1QQ1'
2x
2Q
1Q
2x
1x
1QQ2'
Y = Q2Y = Q2
Dlaczego dodano dodatkową pętlę – składnik ? Dlaczego dodano dodatkową pętlę – składnik ? 1x
1Q
Zjawisko hazardu Zjawisko hazardu
ITPW
ZPT
21
Zjawisko hazardu
Z
ZX1
X2
X2
Q11
1
2
2
2x
1x
1x
2Q
2x
1QQ1'
11 22
Przy Q1 = 1, x1 = 1, a przy zmianie x2: 1 0 na wyjściu Z powinna być stała 1
Przy Q1 = 1, x1 = 1, a przy zmianie x2: 1 0 na wyjściu Z powinna być stała 1
2x
1x
2x
1QZ
Na skutek opóźnienia sygnału w sygnale Z pojawia się krótki impuls o wartości 0.
Jest to hazard statyczny - szkodliwy w układach asynchronicznych!
Na skutek opóźnienia sygnału w sygnale Z pojawia się krótki impuls o wartości 0.
Jest to hazard statyczny - szkodliwy w układach asynchronicznych!
2x
ITPW
ZPT
22
Zjawisko hazardu
W układach asynchronicznych funkcje wzbudzeń muszą być realizowane w taki sposób, aby nie występował hazard statyczny.
W układach asynchronicznych funkcje wzbudzeń muszą być realizowane w taki sposób, aby nie występował hazard statyczny.
Wyrażenia boolowskie należy uzupełnić o składnik (nadmiarowy), odpowiadający pętli na tablicy Karnaugha, w taki sposób, aby każde dwie sąsiednie jedynki były objęte wspólną pętlą.
Wyrażenia boolowskie należy uzupełnić o składnik (nadmiarowy), odpowiadający pętli na tablicy Karnaugha, w taki sposób, aby każde dwie sąsiednie jedynki były objęte wspólną pętlą.
x1x2
Q1Q200 01 11 10
00 0 0 0 1
01 - 1 0 1
11 - 1 - 1
10 0 1 1 1 1x
1Q
2x
1x
1x
2Q
2x
1QQ1'
1x
1Q
2x
1x
1x
2Q
2x
1QQ1'
ITPW
ZPT
23
Jak jest zbudowany przerzutnik synchroniczny?
??Przerzutnik
typu D
DD
ClkClk Q
DQ
0 1
0 0 1
1 0 1
Q
Przerzutniki synchroniczne realizujemy jako układy asynchroniczne
Przerzutniki synchroniczne realizujemy jako układy asynchroniczne
Sygnał zegarowy nie występuje w opisie działania (w tablicy przejść) tego przerzutnika
Sygnał zegarowy nie występuje w opisie działania (w tablicy przejść) tego przerzutnika
ITPW
ZPT
24
Przykład
Synchroniczny przerzutnik typu D synchronizowany zboczem dodatnim
Synchroniczny przerzutnik typu D synchronizowany zboczem dodatnim
S
R
Q
Q
Q00 01 11 10
0 – 1 0 0
1 – 1 1 0
R S
Przerzutn ikR S
SQ
RQ
Automatsteru jący
Y1
Y2
D
Clk
ITPW
ZPT
25
Przykład c.d.
Autom atsterujący
Przerzutn ikR S
Y1
Y2
SQ
RQ
D
Clk
0101
0010
00101/111/11
2/012/01
3/103/10
1101
1101
1101
1101
1111
0010
0010
0010
0010
R S
D clkD clk
R S
Graf Rozdz. 4.4
D
clk
Q
0000 10101111
ITPW
ZPT
26
Przykład c.d.
D,clkS
00 01 11 10 Y1Y2
1 1 3 2 1 11
2 1 2 2 1 01
3 1 3 3 1 10
0011
11
11
00
00
10
10
10
01
01
01
2/01
1/11
3/10
D clk
S R
Tablica przejść-wyjśćTablica przejść-wyjść
D,cQ1Q2
00 01 11 10 Y1Y2
00 -- -- -- -- --
(2) 01 11 01 01 11 01
(1) 11 11 10 01 11 11
(3) 10 11 10 10 11 10
(clk c)(clk c)
Zakodowana tablica p-w(kody stanów takie same,
jak wyjścia Y1, Y2)
Zakodowana tablica p-w(kody stanów takie same,
jak wyjścia Y1, Y2)
ITPW
ZPT
27
Przykład c.d.
D,cQ1Q2
00 01 11 10 Y1Y2
00 -- -- -- -- --
(2) 01 11 01 01 11 01
(1) 11 11 10 01 11 11
(3) 10 11 10 10 11 10
(clk c)(clk c)
Q1’ Q2’Q1’ Q2’
D,cQ1Q2
00 01 11 10
00 - - - -
(2) 01 1 0 0 1
(1) 11 1 1 0 1
(3) 10 1 1 1 1
D,cQ1Q2
00 01 11 10
00 - - - -
(2) 01 1 1 1 1
(1) 11 1 0 1 1
(3) 10 1 0 0 1
2QD
1Qc
1QD
2Qc
Q1’Q1’ Q2’Q2’
ITPW
ZPT
28
Przykład - realizacja
2Q D
1Qc
2QD
1Qc
2QD
1QcQ1'
1Q D
2Qc
1QD
2Qc
1QD
2QcQ2'
S
R
Q
Q
D
Clk(c)
Q 1’=Y1
Q 2’=Y2Autom at sterujący