bloki

bloki
System cyfrowy
0
0
Sygnały
sterujące
0
1110
10 0
1
01 0
Dane
wejściowe
0
Układ operacyjny
(Datapath)
Układ
sterujący
(kontroler)
Mikrooperacje
wywoływane przez
sygnały sterujące
Stan części
operacyjnej
Dane wyjściowe
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
1
Synteza strukturalna układów
cyfrowych
Bloki funkcjonalne tworzą nowe elementy konstrukcyjne,
z których buduje się złoŜone układy cyfrowe o
róŜnorodnych zastosowaniach: układy przetwarzania
sygnałów, układy sterowania, specjalizowane procesory,
układy kryptograficzne
Konstruowanie układu cyfrowego z bloków
funkcjonalnych:
Synteza strukturalna układów cyfrowych
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
2
Synteza strukturalna układów
cyfrowych
Licznik
Mux
Rejestr
Składamy układ
z bloków funkcjonalnych
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
3
Edytor graficzny
INPUT
LB[7..0]
r3_v
IN
INPUT
r2_v
OUT
DA[3..0]
LOAD
CK
CK
IN
LOAD
r1_v
OUT
DB[3..0]
CK
LB[7..0]
OUT
RB[7..0]
LOAD
CK
OUTPUT
Us_v
CLK
CLK
START
INPUT
CLOK
START LOAD
CLOK
Lk_v
INPUT
CK
L[3..0]
LOAD
STOP
OUTPUT
STOP
STOP
r4_v
STOP]
CLK
QDB[3..0]
QDA[3..0]
LD[7..0]
LD[7..0]
OUTPUT
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
4
Bloki funkcjonalne
X, (Y) – wejścia (wyjścia) sygnałów
reprezentujących dane wejściowe i
wyjściowe
X
S – wejścia sterujące,
S
P
BF
P – wyjścia predykatowe,
clk – wejście zegarowe
clk
Y
H
D
L
Bloki funkcjonalne stanowią wyposaŜenie bibliotek
komputerowych systemów projektowania
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
5
System MAX+PLUSII …
… jest wyposaŜony w dwie biblioteki
komponentów:
a) bibliotekę tzw. makrofunkcji
b) bibliotekę megafunkcji (moduły LPM)
Library of Parameterized Modules (LPM)
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
6
Makrofunkcje
Macrofunctions:
Macrofunctions:
H
D
L
Adders
Latches
Arithmetic Logic
Units
Buffers
Multiplexers
Comparators
Converters
Counters
Registers
Shift Registers
Multipliers
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
Były kiedyś produkowane jako
bloki funkcjonalne serii 74xx
7
Konsekwencje wprowadzenia
makrofunkcji
Struktury makrofunkcji nie są odpowiednie do
technologii układów programowalnych a ich
odwzorowanie technologiczne na komórki
aktualnie produkowanych układów FPGA nie
prowadzi do optymalnego wykorzystania
zasobów sprzętowych
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
8
Megafunkcje
System MAX + plus II jest wyposaŜony w moduły
LPM
(Library of Parameterized Modules)
Moduły LPM są parametryzowane: uŜytkownik
moŜe ustalić np. wielkość MUX, liczbę bitów
argumentów sumatora lub niektóre mikrooperacje.
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
9
NajwaŜniejsze bloki funkcjonalne
B. kombinacyjne
Układy
Komutacyjne
MUX
DMUX
DEC
B. sekwencyjne
Układy
arytmetyczne
Sumator
Układ odejmujący
Komparator
Rejestry
Liczniki
Równoległe
Przesuwające
Zliczające
W górę
W dół
Pamięci
ROM
(RAM)
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
10
Multipleksery, demultipleksery
e
e
y0
d0
y
d1
d
y1
dN-1
yN-1
MUX
DMUX
an-1 a0
N−1
y = e∑Pk (A)dk
k =0
H
D
L
N = 2n
k = L(A),
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
an-1 a0
yk = ePk (A)d
Pk – pełny iloczyn
11
Multipleksery
N−1
P (A)d
y = e∑
k =0
k
k
gdzie Pk(A) oznacza
pełny iloczyn zmiennych
an–1,...,a0, prostych lub
zanegowanych, zgodnie
z reprezentacją binarną
liczby k.
Dla n = 1 (MUX 2 : 1):
y = ad0 + ad1
Dla n = 2 (MUX 4 : 1):
y = a1a0d0 + a1a0d1 + a1a0d2 + a1a0d3
Dla n = 3 (MUX 8 : 1):
y = a2 a1a0d 0 + a2 a1a0 d1 + a2 a1a0 d 2 + a2 a1a0 d 3 +
+ a2 a1a0 d 4 + a2 a1a0 d 5 + a2 a1a0d 6 + a2 a1a0 d 7
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
12
Multiplekser
e=1
H
D
L
0
0
1
1
0
2
1
3
y = a1a0d0 + a1a0d1 + a1a0d2 + a1a0d3
00
01
11
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
13
Demultiplekser
e=1
0 0
0
1
y 0 = a1a 0 d
1
0
0
y1 = a1a 0 d
2
0 0 0
y 2 = a1a 0 d
3
0 0
y 3 = a1a 0 d
00
01
11
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
14
Dekoder
DMUX
Dekoder
e
y0
d
y1
yN-1
an-1 a0
y0
a0
a1
y1
an-1
yN-1
N = 2n
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
15
Multipleksery, demultipleksery:
realizacja na bramkach
Multiplekser
Demultiplekser
y = a1a0 d 0 + a1a0 d1 + a1a0 d 2 + a1a0 d 3
y0 = a1a0 d y1 = a1a0 d
y2 = a1a0 d y3 = a1a0 d
a0
e
a0
d0
a1
H
D
L
d3
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
y0
a1
d1
d2
e
y1
y
y2
d
y3
16
Multipleksery kaskadowe
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
17
Multipleksery grupowe
A
A
Y=A
B
B
Y=B
0
1
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
18
Bloki komutacyjne
b
b
X0
Y0
Xj
Y
Yj
X
X N-1
YN-1
n
n
S
H
D
L
Multiplekser słuŜy do wybierania
jednego z wielu słów wejściowych i
przesyłania go na wyjście. Na
wyjściu Y pojawia się słowo
wejściowe wskazane adresem A (wg
naturalnego kodu binarnego).
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
S
Demultiplekser słuŜy do
przesyłania słowa X
wejściowego na jedno z wielu
wyjść; numer tego wyjścia jest
równy aktualnej wartości
adresu.
19
Bloki komutacyjne
0
1
0
0
0
1
1
1
0
0
0
2
1
1
1
3
0
1
0
a1
0
1
a0
0
1
0
0
0
0
1
0
0
0
2
0
0
0
3
0
0
0
a1
0
1
a0
0
1
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
20
Magistrala (realizacja z
multiplekserami)
Bus
L1
L2
R1
Lk
R2
Rk
Clock
Dane wejściowe
a0
M ultipleksery
a m –1
s0
s1
s n -1
H
D
L
S
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
21
Magistrale (szyny)
Budowane z elementów trójstanowych
x
e
x
f
e x
f
0
1
0
1
Z
Z
0
1
f
e= 1
x
0
0
1
1
e= 0
f
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
22
Magistrala (realizacja z buforami)
Dane we
E
Bus
Clock
R1
R1in
R1out
H
D
L
R2
R2in
R2out
Rk
Rkin
Rkout
sterowanie
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
23
Inne zastosowania …
H
D
L
0
1
0
0
0
0
0
1
0
0
0
1
0
1
1
1
0
Zastosowanie MUX do realizacji
funkcji boolowskich
1
2
3
4
5
6
7
y
8
y = Σ(1,7,11,13,14,15)
9
10
11
12
13
14
15
x3x2x1x0
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
24
Inne zastosowania …
0
1
2
Zastosowanie dekodera do realizacji
funkcji boolowskich
3
4
5
6
7
y
y = Σ(1,7,11,13,14,15)
8
9
10
11
12
13
14
15
H
D
L
… ale te rozwiązania są historyczne
i naleŜy odłoŜyć do kosza!
x3x2x1x0
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
25
Sumatory
Y
A
X
Sumator – podstawowy BF
powszechnie stosowany w
technice DSP
n
n
cn
c0
Σ
n
Inne układy
arytmetyczne:
układy odejmowania
układy mnoŜące
układy dzielenia
S
... są budowane z sumatorów
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
26
Sumator kaskadowy
Ripple carry adder (RCA)
xi
xn-1 yn-1
cn
FA
sn-1
cn-1
ci+1
yi
x0
ci
FA
c1
si
y0
FA
c0
s0
si = xi ⊕ yi ⊕ ci
ci + 1 = xi yi ∨ ci ( xi ⊕ yi )
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
27
Sumator (full
(full adder)
adder)
ci
si
xi
yi
ci+1
si = xi ⊕ yi ⊕ ci
ci + 1 = xi yi ∨ ci ( xi ⊕ yi )
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
28
Jaka jest ścieŜka
Sumator
kaskadowy - wady
krytyczna tego
układu?
n-1
n-1
1
n
n-1
ŚcieŜka krytyczna: bardzo długa - liniowo zaleŜna od
wielkości sumatora
H
D
L
Rozwiązanie: układy generujące sygnał przeniesienia, w
układach programowalnych dodatkowa szybka logika
generująca carry-chain
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
29
Sumator z antycypacją przeniesień
Znacznie lepszy jest
sumator z antycypacją przeniesień,
(carry lookahead adder)
w którym wszystkie przeniesienia
są wytwarzane jednocześnie na
podstawie bitów sumowanych
składników.
(antycypacja - przewidywanie)
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
30
Sumator z antycypacją przeniesień
s i = x i ⊕ y i ⊕ ci
ci+1= xi yi + xi ci + yi ci= xi yi + ci (xi + yi)
ci+1 = xiyi + ci(xi + yi)
gi = xiyi (generacja przeniesienia)
pi = xi + yi (propagacja przeniesienia)
Otrzymujemy:
ci+1 = gi + pici
si = ci ⊕ (pi gi)
s i = x i ⊕ y i ⊕ ci
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
31
Sumator z antycypacją przeniesień
ci+1 = gi + pici
c0
c1 = g0 + p0c0
c1 = g0 + p0c0
c2 = g1 + p1c1 = g1 + p1(g0 + p0c0)
c2 = g1 + p1g0 + p1p0c0
c3 = g2 + p2g1 + p2p1g0 + p2p1p0 c0
(funkcja 5 arg.)
c4 = g3 + p3g2 + p3p2g1 + p3p2p1g0 + p3p2p1p0 c0
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
32
Sumator z antycypacją przeniesień
Wszystkie przeniesienia są
wytwarzane jednocześnie
na podstawie bitów
sumowanych składników!
x0 y 0
x1 y 1
p1
p0
g 1
g 0
c0
C
C
c2
c2 = g1 + p1g0 + p1p0c0
F
s1
c1
F
s0
si = ci ⊕ (pi gi)
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
33
Sumator n-bitowy
Sumatory z antycypacją przeniesień moŜna łączyć szeregowo
x31-24 y31-24
c32
Blok 3
S31-24
x15-8 y15-8
c24
c16
Blok 1
S15-8
x7-0 y7-0
c8
Blok 0
c0
S7-0
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
34
Hierarchiczny sumator z antycypacją
przeniesień
x31 – 24 y31 – 24
Block
3
x15 – 8
x7 – 0
Block
1
c24
G3 H3
c32
c0
G0 H0
s15 – 8
c16
y7 – 0
Block
0
G1 H1
s31 – 24
H
D
L
y15 – 8
s7 – 0
c8
Drugi poziom
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
35
Sumator/układ odejmujący
AU2 = (an–1 ,..., aj ,..., a0)
Kod U2
n−2
AD = L(AU2 ) = −an−1 ⋅ 2n−1 + ∑aj 2j
j=0
B
B
A
n
n
n
cn
c0
Σ
1 –
0 +
n
H
D
L
Co
1
XOR
Y
Y = A – B = A + (–B|U2)
–B|U2 = B + 1 = B ⊕ 1 + 1
Dla c0 = 0: Y = A + B + 0 = A + B
Dla c0 = 1: Y = A + B + 1 = A - B
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
36
Kod U2
AU2 = <an–1 ,..., aj ,..., a0>, gdzie aj ∈ {0,1}
AD = L(AU2 ) = −an−1 ⋅ 2
n−1
n−2
+ ∑a j 2
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>XU2 = +5XD;
H
D
L
<1011>XU2 = –5XD
Zakres: –2n–1 ≤ AD ≤ 2n–1 – 1
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
37
Sumator/układ odejmujący
c4
a3 b3
a2 b2
A
A
B
CO +
S
Overflow
OVR = cn–1⊕cn
OVR = c3⊕c4
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
S3
CI
B
CO +
c3
a1 b1
CI
A
a0 b0
B
CO +
CI
A
B
CO +
S
S
S
S2
S1
S0
CI
Dodawanie/
odejmowanie
Co stanie się gdy dodamy 4 + 5, lub (-4) + (-5)?
01
OVR=1
0100 (+4)
0101 (+5)
01001 (-7)
10
OVR=1
1100 (-4)
1011 (-5)
10111 (+7)
38
Komparator
B
A
n
n
„1 z 3”
K
A<B
A=B
A>B
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
39
Komparator
a3
b3
i3
a2
b2
i2
a1
b1
i1
a0
b0
i0
A = a3a2a1a0
B = b3b2b1b0 ik = a k ⊕ bk
A eq B = i3i2i1i0
A < B = A eq B + A gt B
A > B = a 3 b3 + i3a 2 b2 +
+ i3i 2a1b1 + i3i 2i1a 0 b0
ak ≠ bk ⇒
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
A < B, gdy ak = 0, bk =1
A > B, gdy ak = 1, bk =0
40
Komparator
a3
b3
i3
a2
b2
i2
a1
b1
i1
a0
b0
i0
A = a3a2a1a0
B = b3b2b1b0
A= B
A< B
A> B
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
41
Sekwencyjne bloki funkcjonalne
Y := X
Y := Y
LOAD
HOLD Rejestry
xp
X
R
s1
s2
(Q)
clock
Y := <0...0> RESET
Liczniki
(CLEAR)
xl
X
L
s1
s2
(Q)
clock
Y
Y := SHR(xp, Y)
Y := SHL(Y, xl)
Y
Y := Y + 1 = INC(Y)
Y := Y – 1 = DEC(Y)
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
42
Prosty rejestr
Rejestr zbudowany z przerzutników
– ładowanie (load) i pamiętanie
0
1
0
0
D1
Q1
0
1
D2
Q2
0
D3
Q3
0
D4
Q4
CLK
LOAD
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
43
Rejestr przesuwający
SHR
Q1
0000010
wejście
szeregowe
D1
Q2
Q3
D4
D3
D2
Q4
clk
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
WE
Q1
Q2
Q3
Q4
0
0
0
0
0
1
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
44
Rejestr przesuwający
Q1
wejście
szeregowe
D1
Q2
Q3
Q4
D4
D3
D2
CLK
Łatwo moŜna zbudować rejestr, w którym
obie funkcje (ładowanie, przesuwanie) są
wykonywane w jednym układzie
D
Q
Q
Clock
D0
D1
Sel
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
45
Rejestr przesuwający z wpisem
równoległym
Wyjścia równoległe
Realizacja z
multiplekserami
Q2
Q3
D
Q
Q
D
Q
Q
Q0
Q1
D
Q
Q
D
Q
Q
Wejście
szeregowe
Shift/Load
Wejścia równoległe
Clock
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
46
Rejestr przesuwający z wpisem
równoległym
Wyjścia równoległe
Realizacja na
bramkach
D
Q
Q
H
D
L
Wejście Shift/Load
szeregowe
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
Q2
Q3
D
Q
Q
Q1
D
Q
Q
Wejścia równoległe
Q0
D
Q
Q
Clock
47
Mikrooperacje licznika
LOAD
HOLD
COUNT
LOAD
HOLD
COUNT
1100
Licznik
clock
0010
LOAD
1101
1110
1111
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
Zliczanie
48
Przykład licznika z wejściem Enable
E
0
1
A0
A0
A1
A1
A1
A2
A2
A2
A3
A3
A3
A4
A4
A4
A5
A
E
Licznik
clock
Q
T0 = E
T1 = EQ0
T2 = EQ0Q1 = T1Q1
T3 = EQ0Q1Q2 = T2Q2
•
•
•
A14
A14
A15
A15
A15
A0
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
49
Licznik w górę na przerzutnikach T
Enable
Clock
T
Q
T
Q
Q
T
Q
Q
Q
T
Q
Q
Rst
T
D
clk
Q
Q
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
50
Licznik w górę na przerzutnikach D
Enable
D Q
Q0
Q
D Q
Q1
Q
D Q
Q2
Q
D Q
H
D
L
Q3
Q
Clock
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
Output
carry
51
Licznik z wpisywaniem równoległym
Enable
D0
D1
0
1
D Q
Q0
Q
0
1
D Q
Q1
Q
D2
0
1
D Q
Q2
Q
D3
0
1
D Q
Q3
Q
H
D
L
Load
dr inŜ. Paweł Tomaszewicz
Clock
Instytut Telekomunikacji
Politechnika Warszawska
Output
carry
52
Pamięci typu ROM
X0
n
A
N=2n
Xi
ROM
N×m
XN-1
m
Y
H
D
L
ROM – uniwersalny układ kombinacyjny
Jest „zaprogramowana” na pamiętanie N słów m-bitowych
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
53
Pamięci typu ROM
Adres
1 0 0
0 0 0
1 1 0
0
1
2
3
4
5
6
7
0
1
0
1
0
0
1
0
1
1
0
1
1
1
1
1
1
1
0
1
1
0
1
1
0
0
0
1
0
1
1
0
ROM
8×4
H
D
L
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
54
Pamięci typu ROM w PLD
D
C
B
A
MATRYCA OR
(PROGRAMOWALNA)
1010
0111
H
D
L
MATRYCA AND
(STALA)
dr inŜ. Paweł Tomaszewicz
Instytut Telekomunikacji
Politechnika Warszawska
y3 y2 y1 y0
55
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertising