Układy asynchroniczne

Transkrypt

Układy asynchroniczne
Układy asynchroniczne
Model układu asynchronicznego
x1
y1
UK
xn
Q1
Qk
I
T
Tadeusz
P
Łuba
W
układ kombinacyjny
q1
BP
x
x
t
ym
s
qk
blok pamięci realizuje opóźnienia
W automacie asynchronicznym
wszystkie stany są stanami
stabilnymi
Stan stabilny s: δ(s,x) = s
ZCB
ZPT
1
Najprostszy układ asynchroniczny
SR
00
01
11
10
0
0
0
–
1
1
1
0
–
1
q
Q
I
T
Tadeusz
P
Łuba
W
ZCB
ZPT
Przerzutnik SR
Q = q R + S = q R + S = q R ⋅S
S
Q
R
Q
qR
2
Przykład
Zaprojektować układ asynchroniczny o dwóch wejściach binarnych
x1, x2 i jednym wyjściu y, który ma sygnalizować jedynką pojawienie
się na wejściu sekwencji wektorów wejściowych ..., 00, 01, 11.
Należy założyć, że jednoczesna zmiana dwóch sygnałów
wejściowych jest niemożliwa.
00
1/0
00
11
2/0
4/1
10
10
00
I
T
Tadeusz
P
Łuba
W
3/0
10
01
6/0
5/0
10
00
01
11
11
00
01
11
10
y
1
1
2
–
3
0
2
1
2
4
–
0
3
1
–
5
3
0
4
–
6
4
3
1
5
–
6
5
3
0
6
1
6
5
–
0
S
11
01
01
x1x2
01
11
ZCB
ZPT
3
Redukcja stanów
. . . jest prosta
x1x2
x1x2
00
01
11
10
y
1
1
2
–
3
0
2
1
2
4
–
0
3
1
–
5
3
0
4
–
6
4
3
1
5
–
6
5
3
0
6
1
6
5
–
0
S
S
01
11
10
y
A
1,2
1
2
4
3
0
B
4
–
6
4
3
1
C
3,5,6
1
6
5
3
0
x1x2
00
01
11
10
y
A
A
A
B
C
0
B
–
C
B
C
1
C
A
C
C
C
0
S
I
T
Tadeusz
P
Łuba
W
00
ZCB
ZPT
a kodowanie . . .
4
Kodowanie stanów
. . . jest trudne
Kod stanu
00
01
11
A/0
B/1
01
10
00
C/0
10
11
10
y
A
A
A
B
C
0
B
–
C
B
C
1
C
A
C
C
C
0
x1x2
00
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
01
Graf stanów automatu
minimalnego
ZCB
01
10
01
11
I
T
Tadeusz
P
Łuba
W
00
S
11
00
x 1x 2
S
Y = Q2
ZPT
5
Analiza działania układu asynchronicznego (1)
x1x2
S
00 01
11
10
y
x1
Układ
kombinacyjny
(bez opóźnień)
x2
A
00
00 00
01
10
0
B
01
–
10
01
10
1
(-)
11
–
–
–
–
Q1
C
10
–
10
00 10
10
10
0
Q2
∆1
∆2
y
q1
q2
Opóźnienia
Stan
wejść
11
––;01
01
I
T
Tadeusz
P
Łuba
W
Stan
wewn.
01
Stan
następny
01
––;10
01
01
Wyścig
––;00 krytyczny!
00
01
––;10
11
01
––;10
10
∆1 > ∆ 2
01
00
10
∆1<∆2
01
11
10
Wyścig
niekrytyczny!
ZCB
ZPT
6
Analiza działania układu asynchronicznego (2)
x1x2
S
00 01
11
10
y
x1
Układ
kombinacyjny
(bez opóźnień)
x2
A
00
00 00
01
10
0
B
01
–
10
01
10
1
(-)
11
–
10
–
–
10
– –
Q1
C
10
00 10
10
10
Q2
0
Stan
wejść
∆1
∆2
y
q1
q2
Opóźnienia
11
––;01
01
Stan
wewn.
10
Stan
następny
10
––;10
01
10
––;10
00
10
––;10
10
10
––;10
11
10
––;10
10
Wyścig
niekrytyczny!
I
T
Tadeusz
P
Łuba
W
ZCB
ZPT
7
Kodowanie stanów
Aby uniknąć wyścigów krytycznych należy kodowanie
przeprowadzić tak, aby kody stanów, pomiędzy którymi jest
przejście, różniły się tylko na jednej pozycji.
Np.: 000 ⇒001; 011 ⇒010; 111 ⇒ 101 itp..
Takie kodowanie zapewnia „rozpięcie” grafu stanów automatu na
kwadracie lub sześcianie kodowym.
101
100
I
T
Tadeusz
P
Łuba
W
ZCB
00
01
10
11
110
000
001
010
011
111
ZPT
8
Kodowanie stanów
Kod stanu
00
01
00
A/0
10
11
11
B/1
10
00
C/0
10
10
01
00
A
ZCB
B
01
01
10
10
01
(-)
01
11
C
Wyścig niekrytyczny można
wykorzystać do właściwego
kodowania stanów w układach
asynchronicznych.
10
11 (-)
x1x2
00
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
S
11
I
T
Tadeusz
P
Łuba
W
01
ZPT
9
Tablice przejść
x1x2
00
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
S
x1x2
00 01 11 10 00 01 11 10 00 01 11 10
Q1Q2
I
T
Tadeusz
P
Łuba
W
ZCB
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’Q2’
Q1’
Q2’
ZPT
10
Funkcje wzbudzeń
x1x2
00 01 11 10 00 01 11 10 00 01 11 10
Q1Q2
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
Y = Q2
--
Q1’Q2’
Q1' = Q x + Q x + x x + Q x
12 2 1 12 11
Q1’
Q2’
Q2' = Q x x + Q Q x
112 1 2 2
Dlaczego dodano dodatkową pętlę – składnik Q x ?
11
I
T
Tadeusz
P
Łuba
W
ZCB
ZPT
Zjawisko hazardu
11
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
Tadeusz
P
Łuba
W
ZCB
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!
12
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ą.
x1x2
00 01 11 10
Q1Q2
I
T
Tadeusz
P
Łuba
W
00
0
0
0
1
01
-
1
0
1
11
-
1
-
1
10
0
1
1
1
Qx
11
ZCB
ZPT
13
Realizacja układu
Y = Q2
Q1' = Q x + Q x + x x + Q x
1 2 2 1 1 2 1 1 Q2' = Q1x1x2 + Q1Q2x2
X1
X2
Q1’
Y
Q2’
I
T
Tadeusz
P
Łuba
W
Q1’
ZCB
ZPT
14
Jak jest zbudowany przerzutnik synchroniczny? (1)
S
S
Q
Clk
Q
R
R
Jest to synchronizacja „szerokością impulsu” – latch (zatrzask)
Strefa oddziaływania
CLK
I
T
Tadeusz
P
Łuba
W
S
R
Stan Q przerzutnika
zmienia się dwukrotnie w
czasie trwania okresu
przebiegu zegarowego!
Q
ZCB
ZPT
15
Problem synchronizacji
Przerzutniki tego typu mają prostą budowę, ale mogą
służyć tylko do przechowywania (zatrzaskiwania)
informacji. Nie mogą służyć do budowy układów
sekwencyjnych.
Prawidłowa synchronizacja powinna działać tak, aby w
czasie trwania okresu przebiegu zegarowego sygnał
wejściowy przerzutnika był odczytywany jeden raz, a
stan przerzutnika zmieniał się także jeden raz –
niezależnie od zmiany sygnałów wejściowych.
I
T
Tadeusz
P
Łuba
W
ZCB
ZPT
16
Jak jest zbudowany przerzutnik synchroniczny? (2)
D
Clk
?
Przerzutnik
typu D
Q
Q
D
0
1
0
0
1
1
0
1
Q
I
T
Tadeusz
P
Łuba
W
ZCB
ZPT
17
Przykład – synteza przerzutnika D
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
Tadeusz
P
Łuba
W
S
Q
SR
00
01 11
0
–
1
0
0
1
–
1
1
0
10
ZCB
ZPT
18
Przykład c.d.
D
Clk
I
T
Tadeusz
P
Łuba
W
Y1
S
Automat
sterujący
Przerzutnik
RS
Y2
Automat sterujący wytwarza na
wyjściach Y1 lub Y2 sygnał 0
(włączający lub wyłączający
przerzutnik S R ) tylko wówczas,
gdy w sygnale Clk pojawi się
zbocze synchronizujące, to jest
zmiana Clk 0 → 1.
Jeśli w tym momencie na wejściu
D jest 1, to 0 pojawi się na wyjściu
Y1 (S) – przerzutnik S R zostanie
włączony.
Jeśli na wejściu D jest 0, to 0
pojawi się na wyjściu Y2 ( R) –
przerzutnik zostanie wyłączony
Q
Q
R
11
01
D clk
00
10
11
2/01
00
10
1/11
01
SR
00
10
SR
11
01
3/10
ZCB
ZPT
19
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
Tadeusz
P
Łuba
W
ZCB
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
20
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
Tadeusz
P
Łuba
W
ZCB
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
Q1’ = c + Q2D + Q1
21
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
Tadeusz
P
Łuba
W
Automat sterujący
Q2’=Y2
ZCB
ZPT
22
Kodowanie metodą „n−
−1”
Liczba stanów automatu wynosi n.
Długość wektora kodowego ustalamy na n − 1.
A: 000
Jeden stan kodujemy wektorem złożonym z samych zer.
Pozostałe stany kodujemy wektorami z jedną jedynką. C: 100, B: 010,
D: 001
Między każde dwa stany S, T kodowane wektorami
z jedną jedynką wstawiamy stan niestabilny R
o wektorze kodowym R = S ⊕ T
110
x1x2
S
I
T
Tadeusz
P
Łuba
W
ZCB
ZPT
00
01
11
10
y
A
D
B
A
A
0
B
D
B
C
B
0
C
–
B
C
A
1
D
D
D
A
B
0
11
10
000
A/0
11
01
C/1
10
11
01
11 110 01
00
D/0
00
100
001
10
011
00
B/0
010
01
10
23
Kodowanie „n − 1”
11
10
000
A/0
11
01
C/1
10
Modyfikacja tablicy p-w
11
x1x2
00
Q1Q2Q3
01
00
D/0
00
100
001
11 110 01
10
011
00
F
B/0
010
01
11
10
y
E
A
000
D
B
A
A
0
01
B
010
F
D
B
E
C
B
0
10
C
100
–
B
E
C
A
1
D
001
D
D
A
B
F
0
–
E
–
F
110
–
–
B
–
C
–
–
011
D–
–
–
–
B
–
I
T
Tadeusz
P
Łuba
W
ZCB
ZPT
24
Kodowanie „n − 1”
Zakodowana tablica p-w
I
T
Tadeusz
P
Łuba
W
x1x2
Q1Q2Q3
00
01
11
10
y
A
000
001
010
000
000
0
D
001
001
001
000
011
0
F
011
001
–
–
010
–
B
010
011
010
110
010
0
E
110
–
010
100
–
–
(-)
111
–
–
–
–
–
(-)
101
–
–
–
–
–
C
100
–
110
100
000
1
Q1’ Q2’Q3’
Y = Q1
ZCB
ZPT
25
Kodowanie „n − 1”
I
T
Tadeusz
P
Łuba
W
x1x2
Q1Q2Q3
00
01
11
10
000
0
0
0
0
001
0
0
0
0
011
0
–
–
0
010
0
0
1
0
110
–
0
1
–
111
–
–
–
–
101
–
–
–
–
100
–
1
1
0
Q1' = Q1Q2 x 2 + Q 2 x1x 2
ZCB
ZPT
26
Kodowanie „n − 1”
I
T
Tadeusz
P
Łuba
W
x1x2
Q1Q2Q3
00
01
11
10
000
0
1
0
0
001
0
0
0
1
011
0
–
–
1
010
1
1
1
1
110
–
1
0
–
111
–
–
–
–
101
–
–
–
–
100
–
1
0
0
Pętla
antyhazardowa
Q2' = Q1Q 2 Q3 + Q3 x1x 2 + Q3 x1x 2 + Q1Q2 x1
ZCB
ZPT
27
Kodowanie „n − 1”
I
T
Tadeusz
P
Łuba
W
x1x2
Q1Q2Q3
00
01
11
10
000
1
0
0
0
001
1
1
0
1
011
1
–
–
0
010
1
0
0
0
110
–
0
0
–
111
–
–
–
–
101
–
–
–
–
100
–
0
0
0
Q3' = x1x 2 + Q1Q 3 x1 + + Q2Q 3 x 2
ZCB
ZPT
28
Zadanie dodatkowe
Zmiana przedostatnia
Zaprojektować asynchroniczny układ o
wejściach x1 i x2 wyjściu y pracujący
w następujący sposób: y=1 gdy x1=x2=1
i przedostatnia zmiana sygnału
wejściowego była zmianą na wejściu x1.
W pozostałych przypadkach y=0.
01
11
11/1
00
10
01
7/0
11
00
11
01
1/0
01
11
2/0
3/1
00
01
11
01
11
10
10
11
ZCB
ZPT
11
10
00
4/0
5/0
00
10
I
T
Tadeusz
P
Łuba
W
Zmiana
ostatnia
00
6/0
10
29
Zadanie c.d.
01
7/0
11
00
11
01
1/0
01
11
01
11
01
2/0
3/1
00
11
10
00
4/0
5/0
10
11
00
10
11
10
00
6/0
10
I
T
Tadeusz
P
Łuba
W
ZCB
ZPT
x1x2
00
01
11
10
y
1
–
2
1
6
0
2
5
2
3
–
0
3
–
2
3
6
1
4
5
–
3
4
0
5
5
7
–
4
0
6
5
–
1
6
0
7
5
7
1
–
0
S
30
Zadanie c.d.
Minimalizacja
x1x2
00
01
11
10
y
1
–
2
1
6
0
2
5
2
3
–
3
–
2
3
4
5
–
5
5
6
7
S
I
T
Tadeusz
P
Łuba
W
ZCB
x1x2
00
01
11
10
y
1,6
5
2
1
6
0
0
2,4
5
2
3
4
0
6
1
3
–
2
3
6
1
3
4
0
5,7
5
7
1
4
0
7
–
4
0
5
–
1
6
0
5
7
1
–
0
S
Automat
x1x2
S
minimalny
00
01
11
10
y
A
1,6
D
B
A
A
0
B
2,4
D
B
C
B
0
C
C
–
B
C
A
1
D
5,7
D
D
A
B
0
ZPT
31
Zadanie c.d.
Kodowanie
x1x2
00
01
11
10
y
A
D
B
A
A
0
B
D
B
C
B
C
–
B
C
D
D
D
A
S
11
10
A/0
11
I
T
Tadeusz
P
Łuba
W
ZCB
ZPT
00
01
10
00
01
11
10
y
A 00
10
11 01 00
00
0
0
C 01
–
11
01
00
1
A
1
B 11
10
11
01
11
0
B
0
D 10
10
10
00
11
0
S
01
C/1
11
01
00
D/0
00
01
x1x2
10
11
10
00
B/0
01
01
10
11
32
Zadanie c.d.
x1x2
Q1Q2
00
01
11
10
y
00
10
01
00
00
0
01
–
11
01
00
1
11
10
11
01
11
0
10
10
10
00
11
0
Synteza kombinacyjna
y = Q1Q 2
Q1’ Q2’
I
T
Tadeusz
P
Łuba
W
ZCB
ZPT
x1x2
Q1Q2
00
01
11
10
x1x2
Q1Q2
00
01
11
10
00
1
0
0
0
00
0
1
0
0
01
–
1
0
0
01
–
1
1
0
11
1
1
0
1
11
0
1
1
1
10
1
1
0
1
10
0
0
0
1
Q1' = x1x 2 + Q2 x1 + Q1x1 + Q1x 2
Q2' = Q 2 x 2 + Q1x1x 2 + Q1x1x 2 + Q1Q 2 x1
33
Zadanie c.d. - realizacja
y
x1
x2
Q1’
Q2’
I
T
Tadeusz
P
Łuba
W
ZCB
ZPT
34

Podobne dokumenty