1
ITPW
ZPT
Układy sekwencyjne - pojęcie automatu
Automat
a) zbioru liter wejściowych V (X)
b) zbioru stanów wewnętrznych S,
c) funkcji przejść (ozn. ),
d) funkcji wyjść (ozn. ).
i wyjściowych Y,
v V y Y
jest definiowany przez określenie:
S1
S1 S2
S2
S3
S3
v1
v1
v2
v2
v2
v2
v2
v2
v1
v1
v1
v1
v3
v3
v3
v3
v3
v3
v2
v2
Y2
Y2v1
v1
Y1
Y1Y3
Y3v3
v3v1
v1
/Y2
/Y2 /Y1
/Y1
/Y3
/Y3
2
ITPW
ZPT
Funkcja przejść i wyjść
Funkcja wyjść:
: S Y (tzw. automat Moore’a)
Funkcja przejść: : S X S
: S X Y (tzw. automat Mealy’ego)
Automat może być zupełny lub niezupełny
3
ITPW
ZPT
Specyfikacja automatu
Mealy’egoTablica przejść-wyjść automatu:
Moore’a
v1 v2 v1 v2
S1 S2 S1 y1 y2
S2 S3 S2 y3 y1
S3 S2 S1 y2 y3
v1 v2 v3 y
S1 S2 S1 S3 y2
S2 S3 S1 S2 y1
S3 S1 S3 S2 y3
... i grafMealy’ego: Moore’a:
stan/wyjście
wejście
stan
wejście/wyjście
4
ITPW
ZPT
Specyfikacja automatu
Mealy’egoTablica przejść-wyjść automatu:
Moore’a
v1 v2 v1 v2
S1 S2 S1 y1 y2
S2 S3 S2 y3 y1
S3 S2 S1 y2 y3
v1 v2 v3 y
S1 S2 S1 S3 y2
S2 S3 S1 S2 y1
S3 S1 S3 S2 y3
... i graf
Mealy’ego
Moore’a
v
vvv
v
v
v
v
v1
11
2
2
3
3
2
3
y
y
1
3
2
S
S
S
3
1
/y2
v /y
v /y
v /y
v /y
v /y
v /y1
1
1
1
2
2
2
1
2
3
3
2
1S
3S
2S
5
ITPW
ZPT
x1
xn
y1
ym
Q1
Qk
q1
qk
Układ sekwencyjny
układ kombinacyjny
Układy sekwencyjne:
Synchroniczne (BP zbudowany z przerzutników synchronicznych)
wejście synchronizujące
Asynchroniczne (BP realizują opóźnienia lub przerzutniki asynchroniczne)
blok pamięci
UK
BP
CLK
US
Zakodowane litery wejściowe Zakodowane litery wyjściowe
Zakodowane stany automatu
6
ITPW
ZPT
x1
xn
y1
ym
Q1
Qk
q1
qk
Synchroniczne układy sekwencyjne
UK
Przerzutniki
CLK
BP
7
ITPW
ZPT
Przerzutniki
Przerzutnik
– to automat typu Moore’a o dwóch stanach wewnętrznych, jednym lub dwóch wejściach informacyjnych, dwóch wyjściach (prostym i zanegowanym) oraz wejściu synchronizującym (zegarowym).
W zależności od rodzaju wejść informacyjnych wyróżniamy przerzutniki typu: D, T, SR oraz JK.
FFI1
I2
Q
Q
CLK
FFDQ
Q
CLK
FFTQ
Q
CLK
FFSR
Q
Q
CLK
FFJK
Q
Q
CLK
8
ITPW
ZPT
Przerzutniki
Przerzutnik jest określony: tablicą przejść, równaniem charakterystycznym, tablicą wzbudzeń.
FFI1
I2
Q
Q
CLK
9
ITPW
ZPT
Przerzutniki – tablice przejść
D
Q0 1
0 0 1
1 0 1
Q’ = D
T
Q0 1
0 0 1
1 1 0
QTQTQ'
SR
Q00 01 11 10
0 0 0 – 1
1 1 0 – 1
JK
Q00 01 11 10
0 0 0 1 1
1 1 0 0 1
Równanie charakterystyczne: Q’ = f(I1,I2,Q)
10
ITPW
ZPT
Przerzutniki – tablice wzbudzeń
Q Q’ D T S R J K
00 0 0 0 – 0 –
01 1 1 1 0 1 –
10 0 1 0 1 – 1
11 1 0 – 0 – 0
D – delay T – trigger
S – Set (wejście włączające)R – Reset (wejście wyłączające)
J – wejście włączająceK – wejście wyłączające
11
ITPW
ZPT
Przebiegi czasowe – przerzutnik typu D
D
Q
CLK
FFDQ
Q
CLK
D
Q0 1
0 0 1
1 0 1
12
ITPW
ZPT
Przebiegi czasowe – przerzutnik typu T
T
Q
CLK
FFTQ
Q
CLK
T
Q 0 1
0 0 1
1 1 0
13
ITPW
ZPT
Przebiegi czasowe - porównanie
D (T)
Q (D)
Q (T)
CLK
14
ITPW
ZPT
Synteza układów sekwencyjnych
Etapy syntezy: synteza abstrakcyjna (utworzenie tablicy przejść-wyjść) redukcja (minimalizacja) liczby stanów kodowanie stanów, liter wejściowych i wyjściowych synteza kombinacyjna (obliczanie funkcji wzbudzeń przerzutników i funkcji wyjściowych)
S1
S1 S2
S2
S3
S3
v1
v1
v2
v2
v2
v2
v2
v2
v1
v1
v1
v1
v3
v3
v3
v3
v3
v3
/Y2
/Y2 /Y
1
/Y
1
/Y3
/Y3
v1 v2 v1 v2
S1 S2 S1 y1 y2
S2 S3 S2 y3 y1
S3 S2 S1 y2 y3
T1Q1
Q 1
Q1
Q 1
T0Q0
Q 0
CLK
x x Y
15
ITPW
ZPT
Synteza kombinacyjna…
UK wePrzerzutniki
UK wyXXYY
Obliczanie funkcji sterujących wejściami przerzutników (funkcje wzbudzeń)
Obliczanie funkcji wyjściowych
CLK
QQQ’Q’
Q’ = f(X,Q)Y = f(Q) (Moore)
Y = f(X,Q) (Mealy)
16
ITPW
ZPT
Przykład syntezy (detektor sekwencji)
X S
0 1 0 1
A B A 0 0
B C A 0 0
C C A 0 1
XS Q1Q0
0 1 0 1
A 00 01 00 0 0
B 01 11 00 0 0
C 11 11 00 0 1
(–) 10 – – – – – –Y
Wystarczą dwa przerzutniki
Na razie staramy się spełnić wyłącznie warunek jednoznaczności kodowania
17
ITPW
ZPT
Obliczanie funkcji wzbudzeń i wyjściowych
XS Q1Q0
0 1 0 1
A 00 01 00 0 0
B 01 11 00 0 0
C 11 11 00 0 1
(–) 10 – – – – – –
XQ1Q0
0 1X
Q1Q00 1
00 0 0 00 1 0
01 1 0 01 1 0
11 1 0 11 1 0
10 – – 10 – –
D1=Q1’ D0=Q0’
Y
xQ1Y
Q0xD1Q1' xD0Q0'
QQ’ D
00 0
01 1
10 0
11 1
18
ITPW
ZPT
Schemat logiczny detektora sekwencji
xQ1YQ0xD1 xD0
D 1Q 1
Q 1
D 1Q 1
Q 1
D 0Q 0
Q 0
x Y
19
ITPW
ZPT
Przykład... Realizacja T
XQ1Q0
0 1
00 0 0
01 1 0
11 1 0
10 – –
XQ1Q0
0 1
00 1 0
01 1 0
11 1 0
10 – –
QQ’ T
00 0
01 1
10 1
11 0
XQ1Q0
0 1
00
01
11
10 – –
XQ1Q0
0 1
00
01
11
10 – –
Q1’ Q0’
T1 T0
xQ1x1Q0QT1 xQ00QxT0 Y – jak poprzednio
0 0
0
0
1
1
0
0
0 1
1
1
20
ITPW
ZPT
Schemat logiczny detektora (T)
xQ1x1Q0QT1 xQ00QxT0 Y – jak poprzednio
T1Q1
Q 1
Q1
Q 1
T0Q0
Q 0
CLK
xx
Y
21
ITPW
ZPT
Schemat logiczny detektora (JK)
Q0xJ1 xJ0 xK1 xK0
1QJ
K Q0K
J Q
QCLK
Y
Y – jak poprzednio
x
22
ITPW
ZPT
Nie martwmy się ...
trzeba przetwarzać ogromne tablice wypełnione
zerami i jedynkami.
Ale nie martwmy się! Proces ten – w systemach komputerowego projektowania – jest całkowicie zautomatyzowany.
Synteza kombinacyjna układów sekwencyjnych może być
(i zazwyczaj jest) procesem żmudnym,
01100100
10011110
01001000
01010101
010100111
23
ITPW
ZPT
Nie martwmy się ...
AHDL lub VHDL
…dalej automatycznie
…aż do zaprogramowania
jedyną czynnością użytkownika jest ...
24
ITPW
ZPT
Specyfikacja automatu
Nie wnikając w szczegóły takiego zapisu (będą one omawiane na innych wykładach) trzeba podkreślić, że jest to wierne odwzorowanie tablicy przejść wyjść automatu.
AHDLVHDL
AHDLVHDL
25
ITPW
ZPT
Na przykład licznik ze sterowaniem...
TABLE % current current next next % % state input state output %
s, v[] => s, y; s0, B"00„ => s1, 0; s0, B"01„ => s4, 0; s0, B"1X„ => s0, 0; s1, B"00„ => s2, 0; s1, B"01„ => s0, 0; s1, B"1X„ => s0, 0; s2, B"00„ => s3, 0; s2, B"01„ => s1, 0; s2, B"1X„ => s0, 0; s3, B"00„ => s4, 0; s3, B"01„ => s2, 0; s3, B"1X„ => s0, 0; s4, B"00„ => s0, 1; s4, B"01„ => s3, 1; s4, B"1X„ => s0, 1;
END TABLE;
XS
00 01 10 Y
S0 S1 S4 S0 0
S1 S2 S0 S0 0
S2 S3 S1 S0 0
S3 S4 S2 S0 0
S4 S0 S3 S0 1
zapisany w języku AHDL, po wprowadzeniu...
26
ITPW
ZPT
…specyfikacji do edytora tekstowego
TABLE % current current next next % % state input state output %
s, v[] => s, y; s0, B"00„ => s1, 0; s0, B"01„ => s4, 0; s0, B"1X„ => s0, 0; s1, B"00„ => s2, 0; s1, B"01„ => s0, 0; s1, B"1X„ => s0, 0; s2, B"00„ => s3, 0; s2, B"01„ => s1, 0; s2, B"1X„ => s0, 0; s3, B"00„ => s4, 0; s3, B"01„ => s2, 0; s3, B"1X„ => s0, 0; s4, B"00„ => s0, 1; s4, B"01„ => s3, 1; s4, B"1X„ => s0, 1;
END TABLE;
27
ITPW
ZPT
i uruchomieniu kompilatora…
q0 _EQ001 = !q0 & q1 & !X1 & X2 # q2 & !X1 & X2 # !q0 & !q2 & !X1 & !X2;
q1 _EQ002 = q2 & !X1 & X2 # q0 & q1 & !X1 & X2 # !q0 & q1 & !q2 & !X1 & !X2 # q0 & !q1 & !q2 & !X1 & !X2;
q2 _EQ003 = !q0 & !q1 & !q2 & !X1 & X2 # q0 & q1 & !q2 & !X1 & !X2;
EPM7032
...zostanie automatycznie zrealizowany bez udziału projektanta.
28
ITPW
ZPT
Wniosek
Skoro kompilator oblicza funkcje wzbudzeń automatycznie, to umiejętność ta nie jest w dzisiejszych czasach sprawą najważniejszą.
Lepiej skoncentrować się na tych metodach i procedurach syntezy logicznej, które nie są jeszcze wbudowane do systemów komercyjnych.