{0, 1}, A

Transkrypt

{0, 1}, A
3.6. AUTOMATY ELEMENTARNE - PRZERZUTNIKI
Przerzutnik-automat elementarny o pamięci jednego bitu:
A={0, 1}, A=<Q>.
Dla maksymalnej prostoty przerzutniki są automatami Moore'a o jednym wyjściu y = Q.
Aby dany automat mógł realizować dowolny blok δ musi mieć tzw. pełny system
przejść: dla każdej pary stanów (Ai, Aj) musi istnieć pobudzenie realizujące przejście Ai
(w grafie automatu odpowiada temu występowanie krawędzi Ai
Aj
Aj).
W przypadku przerzutnika oznacza to, że jego graf musi mieć postać:
3.6.1. Przerzutniki o sygnale wejściowym jednobitowym
X= <x>, X={0, 1}.
Ponieważ rozważamy automaty wyłącznie deterministyczne (odwzorowanie δ jest
funkcją), należy pamiętać o warunkach:
X00 ≠ X0l oraz Xl0 ≠ Xll.
Możliwe są tylko cztery przypadki (a) - (d) przyporządkowania pobudzeniom Xij
sygnałów jednobitowych:
X
QQ’
(a)
(b)
(c)
(d)
X00
00
0
0
1
1
X01
01
1
1
0
0
X10
10
0
1
1
0
X11
11
1
0
0
1
1
Ponieważ (c) jest prostą negacją (a), a (d) negacją (b), tak naprawdę są to tylko dwa
przypadki:
(a) Q' = x (powtórzenie sygnału WE)
- tzw. przerzutnik typu D,
(d) Q' = /Q dla x = 1 lub Q' = Q dla x = 0
- tzw. przerzutnik typu T.
3.6.2. Przerzutniki o sygnale wejściowym dwubitowym
X = < x1 x2 >
X={00, 01, 10, 11, 0-, 1-, -0, -1}, |X| =8.
Pamiętając o warunku X00 ≠ X0l i Xl0 ≠ Xll liczba możliwych kombinacji wynosi teraz:
(7 ⋅ 8) x (7 ⋅ 8) = 562 =3136.
Gdzieś wśród nich są znane nam już dwa przerzutniki...
X
QQ’
X00
(..)
(RS)
(/R/S)
00
-0
-1
X01
01
01
10
X10
10
10
01
X11
11
0-
1-
(..)
<RS> - przerzutnik RS na bramkach NOR (WE aktywne logicznym „1”),
</R/S> - przerzutnik RS na bramkach NAND (WE aktywne logicznym „0”).
Obok RS, ważnym przerzutnikiem o dwóch sygnałach sterujących jest przerzutnik typu
JK - przedstawimy go niebawem.
2
3.6.3. Wyprowadzenia przerzutników
Ogólnie:
Q,/Q
- wyjścia stanu, zwykle dostępne w postaci komplementarnej (bo takie są w
podstawowej strukturze przerzutnika RS...), niekiedy /Q jest pomijane dla
zmniejszenia liczby wyprowadzeń.
Clk
- wejście synchronizujące; sposób pracy („dwuzboczowy” lub w
pełni
synchroniczny) zależy od typu przerzutnika. Oznaczone negacją (kółko), jeśli
przełączenie następuje przy zboczu opadającym (jak np. w przerzutnikach
Master- Slave!).
We1, We2
- wejścia pobudzające, jak np. R S; w niektórych rodzajach tylko jedno (np. w
D lub T). Tzw. wejścia synchroniczne - bo zmieniają stan przerzutnika
synchronicznie do przebiegu Clk.
R, S
- asynchroniczne wejścia kasujące (reset) i ustawiające (set); stan aktywny na
jednym z nich wymusza natychmiast (niezależnie od fazy zegara, a więc
asynchronicznie) odpowiednią wartość stanu Q. Najczęściej zanegowane, tzn.
aktywne logicznym „0”, zwykle mają priorytet większy niż WE sterujące
synchroniczne. Jednoczesny stan aktywny obu sygnałów R i S zabroniony,
zazwyczaj powoduje jednakowy stan na wyjściach Q i /Q (mechanizm
analogiczny jak analizowany wcześniej dla przerzutnika RS).
3
3.6.4. Typy przerzutników
3.6.4.1. Przerzutnik D
Nazwa: D = ang. delay.
Symbol oraz tabela przejść w postaci Karnaugh:
D
0
1
0
0
1
1
0
1
Q
Q'
Funkcja charakterystyczna przerzutnika:
Q' =D.
Przerzutnik o najprostszej zasadzie pracy, tablica przejść automatu to wprost tablica
wzbudzeń dla przerzutników tego typu.
Podtrzymanie stanu Q' = Q wymaga pętli sprzężenia zwrotnego realizacje automatów
zwykle nieco bardziej złożone.
Istnieje elegancka realizacja tego typu przerzutnika w postaci układu w pełni
synchronicznego (synchronizacja zboczem rosnącym) - często ona stanowi podstawę
konstruowania przerzutników innego typu.
3.6.4.2.Przerzutnik T
Nazwa: T = ang. trigger.
Symbol oraz tabela przejść:
T
0
1
0
0
1
1
1
0
Q
Q'
Funkcja charakterystyczna przerzutnika:
Q'=Q/T+/QT = Q ⊕ T.
Podtrzymanie stanu wymaga T = 0 => brak pętli sprzężenia zwrotnego, zwykle prostsze
realizacje automatów niż przy użyciu przerzutników D.
4
3.6.4.3.Przerzutnik RS
Nazwa: R=Reset, S=Set.
Symbol oraz tabela przejść:
RS
00
01
11
10
0
0
1
?
0
1
1
1
?
1
Q
Q'
? - stany niedozwolone, bo jednoczesne polecenie set i reset.
Funkcja charakterystyczna przerzutnika:
Q' =S+Q/R.
3.6.4.4.Przerzutnik JK
Uogólnienie przerzutnika RS, w którym jeśli oba wejścia są aktywne (co było
zabronione dla RS), przerzutnik zmienia swój stan na przeciwny.
Rola wejść: J = Set, K = Reset.
Symbol oraz tabela przejść:
JK
00
01
11
10
0
0
0
1
1
1
1
0
0
1
Q
Q'
Funkcja charakterystyczna przerzutnika:
Q'=Q/K + /QJ.
Przerzutnik najbardziej uniwersalny, dzięki nadmiarowości WE zwykle prowadzi do
najprostszych realizacji automatów.
5
3.6.5. Macierze wzbudzeń
Zestawienie pobudzeń realizujących w danym przerzutniku wszystkie cztery zmiany
stanu Q
Q': 0
0, 0
1, 1
0 oraz 1
1.
Wyprowadzenie dla RS oraz JK:
QQ’
00
RS
00, 10
RS
JK
-0
00, 01
0-
01
01
10, 11
1-
10
10
01, 11
-1
00, 10
-0
11
00, 0l
0-
00
01
11
10
0
0
1
?
0
1
1
1
?
1
Q
Q'
JK
00
01
11
10
0
0
0
1
1
1
1
0
0
1
Q
Q'
Wynik:
QQ’
D
T
JK
SR
00
0
0
0-
0-
01
1
1
1-
10
10
0
1
-1
01
11
1
0
-0
-0
3.6.6. Zmiana typu przerzutnika
Wyjściowym przerzutnikiem jest RS (dwie bramki NAND lub NOR...)
a) RS
D
6
Np. latch D (idea układu TTL SN7475):
b)RS
JK:
00
01
11
0
0
0
1
1
0
JK
Q
QQ’
RS
10
00
-0
1
1
01
01
0
1
10
10
11
0-
Q'
JK
00
01
11
10
0
-0
-0
01
01
1
0-
10
10
0-
Q
R = QK
S = /QJ
RS
7
Np. JK master-slave (idea układów TTL SN7472, SN7473...):
c) D
JK
JK
00
01
11
10
0
0
0
1
1
1
1
0
0
1
Q
Q'
JK
00
01
11
10
0
0
0
1
1
1
1
0
0
1
Q
QQ’
d
00
0
01
1
10
0
11
1
=> D=Q/K+/QJ
D
8
d) D
T
Q' = Q ⊕ T, więc:
e) JK T Z idei pracy JK:
f) JK
D Identycznie jak RS
D:
9
3.6.7. Przerzutnik typu D wyzwalany zboczem (TTL SN7474)
Idea: automat asynchroniczny generujący wzbudzenia przerzutnika RS:
Trzy stany automatu wzbudzającego:
H (hold)
- nie zmieniaj stanu;
wyjście r'=s'=1,
S (set)
- ustaw Q = 1;
r'=1, s'=0,
R (reset)
- skasuj Q = 0;
r' = 0, s' = 1.
automat Moore'a
1) Alfabety:
A = {H, S, R}
X = <C,D> Y=<r', s’>, Y= {Ol, 10, 11 }; 00 ∉ Y!
2) Graf automatu:
10
3) Synteza sygnałów r', s':
Przyjmujemy, że stan sygnałów r's' będzie jednocześnie reprezentować stan automatu
(tzw. decyzja o kodowaniu stanów; w sposób nieformalny przeprowadzamy tu syntezę
automatu asynchronicznego):
H = 11,
S = 10,
R = 01;
CD
A
CD
00
0l
11
l0
H
H
H
S
R
S
H
H
S
S
R
H
H
R
R
A'
CD
01
11
10
--
--
--
--
(R) 01
11
11
01
01
(H) 11
11
11
10
01
(S) 10
11
11
10
10
r’s’
CD
00
01
11
10
-
-
-
-
(R) 01
1
1
1
1
0
(H) 11
1
1
0
1
1
(S) 10
1
1
0
0
00
01
11
10
-
-
-
-
(R) 01
1
1
0
0
(H) 11
1
1
1
(S) 10
1
1
1
r’s’
00
00
r’s’
00
r’s’
00
r’s’
r’
r’ = /c + /s’ + r’D
r’ = /c + /r’ + s’/D
r = c s’ r’ D
r = c r’ s’ /D
4) Wynik syntezy:
11
Mechanizm przełączania się układu:
Clk= 0 ⇒ s' = r' = 1 stale, niezależnie od zmian sygnału U; przerzutnik nie przełącza
się.
Gdy Clk zmienia się z 0 na 1:
a) D = 1 ⇒ a = 1
⇒
s': 1
0
⇒
Q  1, /Q  0 oraz...
zamrożenie a = 1 niezależnie od dalszych zmian D!
b) D = 0 ⇒ b = 1
⇒
r':1 0
⇒
/Q  1, Q  0 oraz...
zamrożenie b = 1 niezależnie od dalszych zmian D !
Gdy Clk zmienia się z 1 na 0: s'  1, r'  1, wyjściowy przerzutnik RS zamiera.
Układ SN7474 - synchroniczny przerzutnik D w rodzinie TTL:
Uproszczenie układu dzięki przekształceniu równania s':
s'=/c + /r '+ s'/D = /c + /r'(1 + s ')+s'/D = /c + /r' + /r's' + s'/D =
= /c + /r' + s'(/r' + /D) = /c + /r' + s' /(r' D) = /c + /r' + s' b =/( c r' /(s' b))
=> eliminacja negatora /D.
12
3.7. SYNTEZA STRUKTURALNA AUTOMATU
Cel syntezy strukturalnej: zaprojektowanie układu cyfrowego (bramki + przerzutniki),
realizującego zadany automat abstrakcyjny.
PEŁNY PROCES SYNTEZY AUTOMATU SEKWENCYJNEGO:
1. Synteza właściwa - utworzenie automatu pierwotnego,
realizującego określone zadanie.
2. Minimalizacja liczby stanów w automacie pierwotnym.
Synteza
abstrakcyjna
3. Kodowanie stanów - przypisanie stanom wewnętrznym
wektorów zmiennych stanu (A ↔ <Ql Q2 ... Qk>);
powstają zakodowane tablice przejść/wyjść.
4.
Synteza kombinacyjna - wybranie typu przerzutnika,
utworzenie tabel wzbudzeń przerzutników automatu
Synteza
strukturalna
na podstawie zakodowanej tabeli przejść,
minimalizacja funkcji wzbudzeń, a także funkcji WY λ().
3.7.1. Główne kroki syntezy
• Dla przypomnienia - struktury automatów Mealy'ego i Moore'a:
Kroki syntezy strukturalnej:
1. Dane WE: alfabety X, Y, A, funkcje δ i λ. (z syntezy abstrakcyjnej).
2. Kodowanie zbioru stanów wewnętrznych A:
- decyzja o liczbie przerzutników k, k ≥ log2|A|,
- przypisanie stanom A wektorów bitowych <Ql Q2 ... Qk>.
3. Przepisanie tablic: przejść i wyjść w postaci zakodowanej (nazwy stanów Ai zastąpione
wektorami bitowymi <Ql Q2 ... Qk>.
13
4. Utworzenie tablic Karnaugh dla funkcji wzbudzeń poszczególnych przerzutników (na
podstawie zakodowanej tabeli przejść oraz tabeli
wzbudzeń wybranego rodzaju
przerzutnika). Minimalizacja funkcji wzbudzeń przerzutników; wynik - blok γ.
5. Synteza funkcji wyjść na podstawie zakodowanej tabeli wyjść - blok λ.
Przykład 1:
Licznik modulo 5 z sygnałem bramkującym
1. Automat Moore'a, cykl stanów:
000
001
010
011
G
100
0
1
000
000
001
001
001
010
010
010
011
011
011
100
l00
l00
000
Q2Q1Q0
Q2'Q1'Q0'
2. Kodowanie zbioru stanów wewnętrznych: ponieważ jest to licznik, przyjmujemy
kodowanie identyczne jak słowa wyjściowe (będzie Y =A):
A=<Q2Q1Q0>, A={000, 001, 010, 011, 100}
3. Zakodowana tablica przejść - w postaci Karnaugh:
Q0G
Q2Q1
00
01
11
10
00
000
001
010
001
01
010
011
100
011
11
---
---
---
---
10
100
000
---
--Q2'Q1'Q0'
14
4. Funkcje wzbudzeń przerzutników Q2Q1Q0:
Jako typ - wybieramy np. JK.
W zakodowanej tabeli przejść badamy zmiany stanu Q,Q;' i wyznaczamy odpowiednie
dla nich wzbudzenia.
Np. dla Q2:
Q0G
Q2Q1
00
01
11
10
00
000
001
010
001
01
010
011
100
011
11
---
---
---
---
10
100
000
---
--Q2'Q1'Q0'
⇓
Q0G
Q2Q1
00
01
11
10
00
00
00
00
00
01
00
00
01
00
11
--
--
--
--
10
11
10
--
-Q2Q2’
⇓
Q0G
Q2Q1
00
01
11
10
00
0 -
0 -
0 -
0 -
01
0 -
0 -
1 -
0 -
11
- -
- -
- -
- -
10
- 0
- 1
- -
- J2K2
J2 = Q1Q0G
K2 = G.
15
Analogicznie dla Ql, Q0:
Q0G
Q2Q1
00
01
11
10
00
000
001
010
001
01
010
011
100
011
11
---
---
---
---
10
100
000
---
--Q2'Q1'Q0'
⇓
Q0G
Q2Q1
00
01
11
10
00
0 -
0 -
1 -
0 -
01
- 0
- 0
- 1
- 0
11
- -
- -
- -
- -
10
0 -
0 -
- -
- J1K1
Jl = Q0G
K1=Q0G = J1
Q0G
Q2Q1
00
01
11
10
00
0 -
1 -
- 1
- 0
01
0 -
1 -
- 1
- 0
11
- -
- -
- -
- -
10
0 -
0 -
- -
- J0K0
J0 = /Q2G,
K0=G
Wyznaczenie równań J2, K2, J1, K1, J0, K0 kończy syntezę bloku γ
16
5. Synteza funkcji wyjść
Licznik, automat Moore'a ⇒ przyjęliśmy takie kodowanie stanów, że:
Y=λ(A)=A - koniec syntezy bloku λ..
Wynik syntezy:
J2 = Q1Q0G
K2 = G
Jl = Q0G
K1=Q0G = J1
J0 = /Q2G,
K0=G
Y = A = <Q2Q1Q0>,
17
Dla porównania: synteza tego samego automatu na przerzutnikach typu D
Kroki 1, 2, 3 i 5 identyczne jak poprzednio.
Krok 4 (synteza funkcji wzbudzeń przerzutników): dla typu D zakodowana tabela
przejść jest od razu tabelą wzbudzeń, bo D = Q'
Q0G
Q2Q1
00
01
11
10
00
000
001
010
001
01
010
011
100
011
11
---
---
---
---
10
100
000
---
--Q2'Q1'Q0'
⇓
Q0G
Q0G
Q2Q1
00
01
11
10
00
0
0
1
0
0
01
1
1
0
1
-
-
11
-
-
-
-
-
-
10
0
0
-
-
00
01
11
10
00
0
0
0
0
01
0
0
1
11
-
-
10
1
0
Q2Q1
D1
D2
D2 = Q2/G + Q1Q0G
D1 = Q1/G + Q1/Q0 + /Q1Q0G
Q0G
Q2Q1
00
01
11
10
00
0
1
0
1
01
0
1
0
1
11
-
-
-
-
10
0
0
-
D2
D0 = /Q2/Q0G + Q0/G
Blok γ bardziej złożony w porównaniu do JK.
18

Podobne dokumenty