Układy cyfrowe
Układy logiczne (cyfrowe) konstruowane są w
różnych technologiach i na różnych poziomach opisu.
Poziomy opisu:
1) Bramki i elementarne układy
Q
D
Przerzutnik
typu D
pamięciowe (przerzutniki)
Q
Clk
A B
n n
Yn-1
Z
X S
2) Bloki funkcjonalne: układy OVR
P
G
ALU
x x
l
p X cn c0
s L
1
arytmetyczne (sumatory),
n
s
2
(Q)
clock s R Y
1
s
2
liczniki, rejestry.
(Q)
Y
clock
Y
Tworzą one nowe elementy konstrukcyjne, z których buduje
I
się złożone układy cyfrowe o różnorodnych zastosowaniach:
T
P
układy przetwarzania sygnałów, układy sterowania,
W
specjalizowane procesory, układy kryptograficzne
ZPT
1
System cyfrowy
0
0
1
0
110
0 0
1
Dane
011
0
wejściowe
Sygnały
0
sterujące
Układ operacyjny
(Datapath)
Układ
sterujący
Mikrooperacje
(kontroler)
wywoływane przez
sygnały sterujące
Stan części
operacyjnej
I
Dane wyjściowe
T
P
W
ZPT
2
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
System cyfrowy&
XZ D
D, F - przetwarzana informacja
(wektory binarne),
Z
X - sygnały warunków,
US UO
Z - sygnały sterujące
(mikrorozkazy)
XP
ZY F
I
T
P
US - układ sterujący
W
UO - układ operacyjny
ZPT
3
System cyfrowy - realizacja
XZ D
Z
US UO
XP
UO z bloków funkcjonalnych
ZY F
I
T
P
US automat lub układ mikroprogramowany
W
ZPT
4
Bloki funkcjonalne
X wejścia sygnałów
X
reprezentujących dane wejściowe
Y wyjścia sygnałów
reprezentujących dane wyjściowe,
S
P
BF
S wejścia sterujące,
P wyjścia predykatowe,
clk
sygnalizujące pewne szczególne
Y
stany przetwarzania danych,
I
T
clk wejście zegarowe
P
W
ZPT
5
Bloki funkcjonalne
B. kombinacyjne B. sekwencyjne Pamięci
Układy Układy
Rejestry Liczniki (RAM)
ROM
Komutacyjne arytmetyczne
Sumator
Równoległe Zliczające
MUX Układ odejmujący
Przesuwające W górę
DMUX Komparator
W dół
DEC
I
T
P
W
ZPT
6
Multipleksery, demultipleksery
e e
y0
d0
y
d1
d
y1
dN-1
yN-1
N = 2n
MUX
DMUX
an-1 a0 an-1 a0
N-1
y = e
yk = ePk(A)d
"P (A)dk
k
k=0
I
T
P k = L(A), Pk pełny iloczyn
W
ZPT
7
Multipleksery
N-1
Dla n = 1 (MUX 2 : 1):
y = e
"P (A)dk
k
k=0
y = ad + ad
0 1
gdzie Pk(A) oznacza pełny
iloczyn zmiennych
dla n = 2 (MUX 4 : 1):
an 1,...,a0, prostych lub
y = a a d + a a d + a a d + a a d
1 0 0 1 0 1 1 0 2 1 0 3
zanegowanych, zgodnie
z reprezentacją binarną
liczby k.
dla n = 3 (MUX 8 : 1):
y = a a a d + a a a d + a a a d + a a a d +
2 1 0 0 2 1 0 1 2 1 0 2 2 1 0 3
I
+ a a a d + a a a d + a a a d + a a a d
2 1 0 4 2 1 0 5 2 1 0 6 2 1 0 7
T
P
W
ZPT
8
Multiplekser
e=1
y = a1a0d0 + a1a0d1 + a1a0d2 + a1a0d3
0
0
0
1
1
1
0
2
3
1
1
0 0
I
0 1
T
P
W 1 1
ZPT
9
Demultiplekser
e=1
y0 = a1a0d
0 0
0
y1 = a1a0d
1 0 0
1
1
1
1
y2 = a1a0d
2
0 0 0
3
0 0
y3 = a1a0d
0 0
0 1
I
1 1
T
P
W
ZPT
10
Multipleksery, demultipleksery
Multiplekser
Demultiplekser
y0 = a1a0d y1 = a1a0d
y = a1a0d0 + a1a0d1 + a1a0d2 + a1a0d3
y2 = a1a0d y3 = a1a0d
e
e
a0
a0
y0
d0
a1
a1
d1
y1
y
y2
d2
I
y3
T
d3 d
P
W
ZPT
11
Multipleksery kaskadowe
I
T
P
W
ZPT
12
Multipleksery grupowe
A
A
B
B
I
T
P
W
ZPT
13
Bloki komutacyjne
b
b
X
0 Y0
X Y
j X Yj
X
N-1 YN-1
n
n
A
A
Multiplekser służy do wybierania
Demultiplekser służy do
jednego z wielu słów wejściowych i
przesyłania słowa X
przesyłania go na wyjście. Na
wejściowego na jedno z wielu
I
T
wyjściu Y pojawia się słowo
wyjść; numer tego wyjścia jest
P
wejściowe wskazane adresem A
W równy aktualnej wartości
(wg naturalnego kodu binarnego).
adresu.
ZPT
14
Zastosowanie MUX do realizacji funkcji boolowskich
0
0
1
1
2
0
3
0
y = Ł(1,7,11,13,14,15)
4
0
5
0
6
0
7
1
8
y
0
9
0
10
0
11
1
12
0
13
1
14
1
I
15
1
T
P
W
ZPT
x3x2x1x0
15
Zastosowanie MUX/DMUX do realizacji funkcji
boolowskich
0
1
2
y = Ł(1,7,11,13,14,15)
3
4
5
6
y
1
7
8
b
9
10
11
12
13
14
15
I
Istnieją układy FPGA, w których
T
P
komórki są MULTIPLEKSERAMI
W
x3x2x1x0
Ich synteza metody BDD
ZPT
16
Dekoder
DMUX
DEKODER
e
y0
y0
a0
a1
d
y1 y1
an-1
yN-1
yN-1
an-1 a0
I
N = 2n
T
P
W
ZPT
17
Realizacja funkcji na dekoderach
Pojedyncza funkcja
0
1
y = Ł(1,7,11,13,14,15)
2
3
4
5
6
y
7
8
9
10
11
12
13
14
15
I
T
P
W
x3x2x1x0
ZPT
18
Realizacja funkcji na dekoderach
Zespół funkcji
F1 = Ł(1,3,5) F3 = Ł(0,3,6)
F2 = Ł(1,3,7)
0
1
F1
2
3
F2
4
5
F3
6
7
I
T
x2 x1 x0
P
W
ZPT
19
Układy arytmetyczne
Najprostszy sumator ripple carry adder
1001 0110
A B
n
n
a
n-1 b a bi a b
n-1 i 0 0
c0
c n
cn
ci+1
ci c1
Ł
Ł c0
Ł
cn-1
Ł
0 0
yn-1
yi y0
n
Y
1111
I
T
P
W
ZPT
20
Funkcje logiczne sumatora
ab
a b c c0 y
a b
c 00 01 11 10
0 0 0
0
0
0 0 1 0 1
c
co
0 0 1
1
0
1 1 0 1 0
Ł
Ł
Ł
Ł
0 1 0 0 1
y =cab("cab("cab("cab
1 0
0 1 1
=cła"bł("c(a"b)
ł ł
0 1
ł łł
1 0 0
y
1 0
1 0 1
y =c"a"b
1 0
1 1 0
ab
1 1
1 1 1
c 00 01 11 10
0 0 0 1 0
I
yi = ai "bi "ci
1 0 1 1 1
T
P
W
ci+1=aibi ("ci(ai ("bi)
co =ab("c(a("b)=ab("c(a"b)
ZPT
21
Naturalny kod binarny - NKB
ANKB =< an 1 ,..., aj ,..., a0 > " {0,1}
n-1
AD = L(ANKB)=
"a 2j
j
j=0
I
T
P
W
ZPT
22
Kod U2
AU2 =
, gdzie aj " {0,1}
"
"
"
n-2
AD =L(AU2)= -an-1"2n-1 +
"a 2j
j
j=0
Bit an 1 można interpretować jako bit znaku.
Jeśli an 1 = 0, to liczba jest dodatnia;
jeśli an 1 = 1 to liczba jest ujemna; pozostałe bity stanowią
uzupełnienie (różnicę) wartości liczby do najwyższej potęgi
liczby 2
<0101>%U2 = +5%D; <1011>%U2 = 5%D
I
T
Zakres: 2n 1 d" AD d" 2n 1 1
P
W
ZPT
23
Sumator/układ odejmujący
Jak z sumatora zbudować układ odejmujący?
B Y = A B = A + ( B|U2)
A
n
B|U2 = +1 = B"
B|U2 = +1 = B" + 1
B|U2 = +1 = B" + 1
"1 + 1
"1
"1
"
"
"
"
"
"
B
XOR
1
n
n
Dla c0 = 1
Y = A + + 1 = A B
B
B
B
1 B
c0
c
n
Ł
0 +
Dla c0 = 0
n
Y
Y = A + B "
"0 + 0 = A + B
"
"
Y = A + B " c0 + c0;
I
c0 " {0,1}
T
P
W
ZPT
24
Zastosowania
Jednostka arytmetyczno-logiczna
A
B
n
n
Yn-1
Arytmometr (układ
Z
S
OVR
wykonawczy: mikrokontrolera,
P
procesora sygnałowego)
G
ALU
c0
cn
n
Inne układy
arytmetyczne:
Y
układy mnożące
układy ...są budowane z sumatorów
I
kryptograficzne
T
P
W
ZPT
25
Komparator
B
A
n
n
1 z 3
A < B
A = B
K
A > B
I
T
P
W
ZPT
26
Sekwencyjne bloki funkcjonalne
Y := X LOAD
Y := <0...0> RESET
Y := Y HOLD
(CLEAR)
Liczniki
Rejestry
xl
xp
X X
s1 s1
R L
s2 s2
(Q) (Q)
clock clock
Y Y
Y := SHR(xp, Y)
Y := Y + 1 = INC(Y)
Y := SHL(Y, xl)
I
Y := Y 1 = DEC(Y)
T
P
W
ZPT
27
Prosty rejestr
Rejestr zbudowany z przerzutników
ładowanie (load) i pamiętanie
0 1 00
0 1 00
D1 D2 D3 D4
Q1 Q2 Q3 Q4
P
P1 P2 P4
3
CLK
I
LOAD
T
P
W
ZPT
28
Rejestr przesuwający
Q1 Q2 Q3 Q4
SHR
0 00001 0
D4
D1 D3
D2
wejście
szeregowe
clk
WE Q1 Q2 Q3 Q4
0 0 0 0 0
1 1 0 0 0
0 0 1 0 0
I
0 0 0 1 0
T
P
W
0 0 0 0 1
ZPT
0 0 0 0 0
29
Mikrooperacje licznika
LOAD
HOLD
1100
1100
COUNT
LOAD
Licznik
HOLD
COUNT
clock
0010
LOAD
1101
I
T 1110
Zliczanie
P
W
1111
ZPT
30
Bloki funkcjonalne
Pamięci
ROM RAM
(Read Only Memory) (Random Access Memory)
I
T
P
W
ZPT
31
Pamięci typu ROM
X0
p
ROM
A
Xi
m n
Xm-1
n
Y
I
T
ROM uniwersalny układ kombinacyjny
P
W
ZPT
32
Pamięci typu ROM
0
0 1 1 0
0 1 1 0
Adres
1
1 1 1 0
1 1 1 0
2
0 0 0 0
1 0 0
3
ROM
1 1 1 1
0 0 0
4
8 4
0 1 1 0
1 1 0
5
0 1 0 1
0 1 0 1
6
1 1 1 1
7
0 1 1 0
I
T
P
W
ZPT
33
Pamięci typu ROM
D C B A
(struktura)
MATRYCA OR
(PROGRAMOWALNA)
1010
0111
I
T
P
W
MATRYCA AND
(STALA)
y3 y2 y1 y0
ZPT
34
Synteza strukturalna
Bloki funkcjonalne są stosowane w syntezie układów
wykonawczych (operacyjnych).
1. Analiza algorytmu pracy układu (sieci działań)
zmienne, operacje
2. Dobór bloków funkcjonalnych do przechowywania
zmiennych i wykonywania operacji
3. Dobór bloków komutacyjnych
I
T
P
W
ZPT
35
Przykład
I := 0
Rozważmy przykład syntezy układu cyfrowego
pobierającego dane z wejść D0,..., Dn 1 w celu ich
0
S
przetworzenia w rejestrach B i Y. Układ
1 operacyjny ma przetwarzać informację M(I )
pobieraną z n zródeł D0,...,Dn 1 za pośrednictwem
B := M(I)
Y := 0
multipleksera M adresowanego licznikiem I.
Y := B + Y
D0 Dn-1
" " "
I := I + 1
B := M(I)
M
I
B := B - Y
-
-
-
M(I)
B := B/2
B
I Y := B + Y
T
P
TAK
NIE
W
Y = M(I)
Y
ZPT
36
Przykład
I := 0
0
S
B := M(I)
1
B := M(I)
B := B - Y
-
-
-
Y := 0
B := B/2
Y := B + Y
Y := B + Y
I := I + 1
Warunek Y = M(I)
B := M(I)
B := B - Y
-
-
-
B := B/2
I
T
P Y := B + Y
W
TAK
NIE
ZPT
Y = M(I)
37
Przykład c.d.
NOT
M(I)
B := M(I)
B := B - Y
-
-
-
c0 do US
Ł
Ł
Ł
Ł
K
Y = M(I)
B := B/2 (SHR(B))
Y := B + Y
X
Warunek Y = M(I)
B := X
B
B := B/2
B := B - Y
-
-
-
Ł
Ł
Ł
Ł
Y := B + Y
Y := 0
I
Y := B + Y Y
T
P
Y
W
ZPT
38
Przykład c.d.
M(I)
do US
Y := B + Y
K
Y = M(I)
B := B - Y
-
-
-
X
B := X
B
B := B/2
EXOR
Ł
Ł
Ł
Ł
v
Y,gdy V = 0
ńł
V " Y =
ł
Y,gdy V = 1
ół
Y := 0
Y
Y := B + Y
I
T
Y
P
W
ZPT
39
Przykład c.d.
X
B + Y
B := X
B
B := B/2 B - Y
-
-
-
v
EXOR
Warunek Warunek
M(I) 0
Y = M(I) F = M(I) Y = 0
M(I)
S
v
c0
Ł
Ł
Ł
Ł
Y = M(I)
F
Y
Y := 0
US UO
Y
Y := B + Y
Y
7 (+2)
I
T
P
W
ZPT
40
Przykład c.d.
A0
x1x0
I := 0
- 0
S = x0
0
S
A0/Z1
A1
1
- 1
B := M(I)
Y := 0
A1/Z2
A2
Y := B + Y
- -
A3
I := I + 1
A2/Z3
A4
B := M(I)
1 -
- -
A5
- - - - - - - - - -
B := B - Y
-
-
-
A3/Z4 A4/Z5 A5/Z6 A6/Z7 A7/Z8 A8/Z9
A6
B := B/2
A7
0 -
Y := B + Y
I
A8
T
P
F = M(I) Y
W
TAK
NIE
[F = 0] = x1
ZPT
F = 0
Y = M(I)
41
Przykład c.d.
x1x0
00 01 11 10 Z
A
A0 A0 A1 A1 A0 Z1
x1x0
A1 A2 A2 A2 A2 Z2
- 0
A2 A3 A3 A3 A3 Z3
A0/Z1
A3 A4 A4 A4 A4 Z4
- 1 A4 A5 A5 A5 A5 Z5
A5 A6 A6 A6 A6 Z6
A1/Z2
A6 A7 A7 A7 A7 Z7
- -
A7 A8 A8 A8 A8 Z8
A8 A3 A3 A0 A0 Z9
A2/Z3
1 -
- -
- - - - - - - - - -
A3/Z4 A4/Z5 A5/Z6 A6/Z7 A7/Z8 A8/Z9
I
T
P
W
0 -
ZPT
42
Wyszukiwarka
Podobne podstrony:
sieci0405 w9
w9
MNwI w9
psb w9
ulog z t
W9 Bezpieczne nastawy dla typowych obiektów AiSD
w9 java
cgm w9
ulog w6b
W9
ulog w12
nw asd w9
ib?zy?nych w9
io w9 analiza wymagań
ulog w7
R W9 przebieg
W9
więcej podobnych podstron