Problem kodowania stanów w układach sekwencyjnych (automatach)

Transkrypt

Problem kodowania stanów w układach sekwencyjnych (automatach)
Informacje uzupełniające o układach
sekwencyjnych (zamiast W11 i W12)
Problem kodowania stanów w układach
sekwencyjnych (automatach)
Sekwencyjne układy asynchroniczne
I
T
P
W
ZPT
1
Problem kodowania w automatach
Kodowanie stanów to przypisanie kolejnym stanom
automatu odpowiednich kodów binarnych.
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
Q1Q2Q3
000
001
010
011
100
I
T
P
W
b = log2|S|
Złożoność realizacji sprzętowej automatu silnie
zależy od sposobu zakodowania stanów!
ZPT
2
Problem kodowania
x
0
1
0
1
Wariant I
Wariant II
A
A
B
0
0
B
A C
0
0
C
D C
0
0
D
A
0
1
A = 00
B = 01
C = 10
D = 11
A = 00
B = 11
C = 01
D = 10
s
B
Wariant I
I
T
P
W
Wariant II
' = 44 + [ 44 ' = [ 4 + [ 44 ' = [44 + [44 + [ 44
' = [
\ = [44
\ = [44 ZPT
3
Kodowanie
Jak przewidzieć (obliczyć) najlepsze
kodowanie stanów?
Czy realne jest sprawdzenie wszystkich możliwości
3 stany - 3 różne kodowania
4 stany - 3 różne kodowania
5 stanów - 140 kodowań
I
T
P
W
7 stanów - 840 kodowań
9 stanów - ponad 10 milionów kodowań
ZPT
4
KODOWANIE
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).
Z pomocą przychodzi technologia…
Zadanie to znacznie się upraszcza w
strukturach z pamięciami, które są
bezpośrednio realizowalne w układach FPGA.
I
T
P
W
ZPT
5
Sekwencyjne układy asynchroniczne
Układy asynchroniczne – przeznaczone do specyficznych,
nietypowych zastosowań
W najnowszych książkach…
I
T
P
W
ZPT
…nic się na ten temat nie pisze
…jedynie w specjalistycznych
Model układu asynchronicznego
Model układu sekwencyjnego
Model układu asynchronicznego
(synchronicznego)
x1
y1
UK
xn
Q1
Qk
ym
układ kombinacyjny
q1
blok pamięci jest realizowany
BP
qk
przez opóźnienia
przerzutniki
clock
Brak zegara bardzo utrudnia
projektowanie tych układów
I
T
P
W
ZPT
7
Najprostszy układ asynchroniczny
SR
00
01
11
10
0
0
0
–
1
1
1
0
–
1
q
Q = q R + S = q R + S = q R ⋅S
Q
1
0
S
I
T
P
W
ZPT
R
Przerzutnik SR
1 Q
Dlaczego RS ≠ 11 ?
1
0
1
Q
qR
8
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.
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ść.
I
T
P
W
Przyczyną kłopotów są zjawiska niejednakowego opóźnienia
sygnału w elementach logicznych.
ZPT
9
Zjawisko hazardu
Q1' = Q x + Q x + x x
12 2 1 12
1
2
Z =Q x +x x
12 12
Przy Q1 = 1, x1 = 1, a przy zmianie x2: 1 → 0
na wyjściu Z powinna być stała 1
X2
1
Q1
X2
1
Z
2
X1
I
T
P
W
ZPT
2
Z
Na skutek opóźnienia sygnału x2 w sygnale Z pojawia się krótki
impuls o wartości 0.
Jest to hazard statyczny
- szkodliwy w układach asynchronicznych!
10
Zjawisko hazardu
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ą.
Q1' = Q x + Q x + x x
12 2 1 12
x1x2
00 01 11 10
Q1Q2
I
T
P
W
00
0
0
0
1
01
-
1
0
1
11
-
1
-
1
10
0
1
1
1
Q1' = Q x + Q x + x x + Q x
12 2 1 12 11
Qx
11
ZPT
11
Jak jest zbudowany przerzutnik synchroniczny?
D
?
Przerzutnik
typu D
Clk
Q
Q
D
0
1
0
0
1
1
0
1
Q
Sygnał zegarowy nie występuje w opisie działania
(w tablicy przejść) tego przerzutnika
I
T
P
W
Przerzutniki synchroniczne realizujemy jako układy
asynchroniczne
ZPT
12
Przykład
Synchroniczny przerzutnik typu D
synchronizowany zboczem dodatnim
D
Clk
S
Y1
Automat
sterujący
Przerzutnik
RS
Y2
R
Q
Q
R
Q
Q
I
T
P
W
S
Q
SR
00
01 11
10
0
–
1
0
0
1
–
1
1
0
ZPT
13
Przykład c.d.
Y1
D
S
Automat
sterujący
Clk
Przerzutnik
RS
Y2
Q
Q
R
11
01
Graf
D clk
00
10
11
2/01
00
10
1/11
I
T
P
W
ZPT
11
01
01
SR
00
10
SR
3/10
Rozdz. 4.4
14
Przykład c.d.
D clk
11
2/01
00
10
00
10
1/11
11
01
Tablica przejść-wyjść
D,clk
SR
01
11
3/10 01
00
10
(clk → c)
D,c
00
Q1Q2
I
T
P
W
00
01 11 10
1
1
3
2
1
11
2
1
2
2
1
01
3
1
3
3
1
10
S
Y1Y2
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
Zakodowana tablica p-w
(kody stanów takie same,
jak wyjścia Y1, Y2)
ZPT
15
Przykład c.d.
(clk → c)
D,c
00
01 11
00
--
--
(2) 01
11
(1) 11
(3) 10
Q1Q2
10
Y1Y2
--
--
--
01
01
11
01
11
10
01
11
11
11
10
10
11
10
Q1’ Q2’
D,c
Q1Q2
I
T
P
W
ZPT
00
01 11
10
D,c
Q1Q2
00
01 11
10
00
-
-
-
-
00
-
-
-
-
(2) 01
1
0
0
1
(2) 01
1
1
1
1
(1) 11
1
1
0
1
(1) 11
1
0
1
1
(3) 10
1
1
1
1
(3) 10
1
0
0
1
Q1’ = c + Q1D + Q2
Q2’ = c + Q2D + Q1
16
Przykład - realizacja
Q1'= c + Q D + Q = c + Q D + Q = c ⋅Q D ⋅ Q
1
2
1
2
1
2
Q2' = c + Q D + Q = c + Q D + Q = c ⋅Q D⋅ Q
2
1
2
1
2
1
Q1’=Y1
S
D
Q
Clk
(c)
Q
R
I
T
P
W
Automat sterujący
Q2’=Y2
ZPT
17