Układ cyfrowy
0
0
10
0
11
0 0
1
Dane
01
0
1
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
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
0
Synteza strukturalna układów cyfrowych
Licznik
Rejestr
Mux
F
B
u
l
n
o
k
c
k
j
i
o
n
a
l
n
e
Składamy układ
z bloków funkcjonalnych
I
T
P
W
ZPT
2
Edytor graficzny
INPUT
LB[7..0]
r3_v r2_v r1_v
IN OUT IN OUT LB[7..0] OUT
DA[3..0] DB[3..0] RB[7..0]
LOAD LOAD LOAD
INPUT
CK CK CK
CK
OUTPUT
CLOK
Us_v
Lk_v
INPUT
CLK CLOK
CK L[3..0]
CLK OUTPUT
LOAD
START
STOP
LOAD STOP
START
INPUT
STOP
r4_v
STOP]
LD[7..0] LD[7..0]
CLK
QDB[3..0]
OUTPUT
QDA[3..0]
I
T
P
W
ZPT
3
Bloki funkcjonalne
X, (Y) wejścia (wyjścia) sygnałów
X
reprezentujących dane wejściowe i
wyjściowe
S wejścia sterujące,
S
P
P wyjścia predykatowe,
BF
clk wejście zegarowe
clk
Y
Bloki funkcjonalne stanowią wyposażenie bibliotek
I
T
P
komputerowych systemów projektowania
W
ZPT
4
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)
I
T
P
W
ZPT
5
Makrofunkcje
Macrofunctions:
Adders
Latches
Arithmetic Logic Units
Buffers
Multiplexers
Były kiedyś produkowane jako
Comparators
bloki funkcjonalne serii 74xx
Converters
Counters
Registers
Shift Registers
I
T Multipliers
P
W
ZPT
6
Macrofunctions
Multiplexers
21mux 2-Line-to-1-Line Multiplexer
161mux 16-Line-to-1-Line Multiplexer
2X8mux 2-Line-to-1-Line Multiplexer for 8-Bit Buses
74151b 8-Line-to-1-Line Multiplexer
74153 Dual 4-Line-to-1-Line Multiplexer
74157 Quad 2-Line-to-1-Line Multiplexer
74258 Quad 2-Line-to-1-Line Multiplexers with
Inverting Tri-State Outputs
74352 Dual 4-Line-to-1-Line Data Selector/Multiplexer
with Inverting Outputs
I
74354 8-Line-to-1-Line Data Selector/Multiplexer/Register
T
P
with Tri-State Outputs
W
ZPT
7
Macrofunctions
Registers
7491 Serial-In Serial-Out Shift Register
7494 4-Bit Shift Register with Asynchronous Preset and Clear
7495 4-Bit Parallel-Access Shift Register
7496 5-Bit Shift Register
7499 4-Bit Shift Register with /JK Serial Inputs and Parallel Outputs
74164 Serial-In Parallel-Out Shift Register
74194 4-Bit Bidirectional Shift Register with Parallel Load
74295 4-Bit Right-Shift Left-Shift Register with Tri-State Outputs
74299 8-Bit Universal Shift/Storage Register
74674 16-Bit Shift Register
I
T
P
W
ZPT
8
Macrofunctions
Counters
7490 Decade or Binary Counter with Clear and Set-to-9
7492 Divide-by-12 Counter
7493 4-Bit Binary Counter
74160 4-Bit Decade Counter with Synchronous Load and Asynchronous Clear
74161 4-Bit Binary Up Counter with Synchronous Load and Asynchronous Clear
74162 4-Bit Decade Up Counter with Synchronous Load and Synchronous Clear
74163 4-Bit Binary Up Counter with Synchronous Load and Synchronous Clear
74190 4-Bit Decade Up/Down Counter with Asynchronous Load
74192 4-Bit Decade Up/Down Counter with Asynchronous Clear
74193 4-Bit Binary Up/Down Counter with Asynchronous Clear
I
74294 Programmable Frequency Divider/Digital Timer
T
P
W
ZPT
9
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
I
T
P
W
ZPT
10
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.
I
T
P
W
ZPT
11
Megafunctions/LPM
Arithmetic
Components
Gates
lpm_compare
lpm_and
lpm_counter
lpm_inv
lpm_add_sub
lpm_bustri
lpm_mult
lpm_clshift
lpm_constant
Storage Components
lpm_decode
lpm_mux
lpm_latch
lpm_or
lpm_shiftreg
MUX:74151
lpm_xor
lpm_ram_dp
74153
lpm_ram_io
74157
I
T pm_ff
P
lpm_rom
W
lpm_fifo
ZPT
12
Konfiguracja modułu LPM
Konfiguracja i wyposażenie jest definiowana parametrami
Moduł sumator/układ odejmujący: lpm_add_sub
a) LPM_WIDTH
b) LPM_CONFIGURATION
a) określa liczbę bitów sumatora
b) określa operację: liczby ze znakiem (signed) lub
liczby bez znaku (unsigned)
I
T
P
W
ZPT
13
Sumator w strukturze LPM
I
T
P
W
ZPT
14
Najważniejsze bloki funkcjonalne
B. kombinacyjne B. sekwencyjne
Układy Układy
Rejestry Liczniki
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
15
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
16
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
17
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
18
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
19
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
20
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
21
Multipleksery kaskadowe
I
T
P
W
ZPT
22
Multipleksery grupowe
A
A
Y=A
B
Y=B
B
0
1
I
T
P
W
ZPT
23
Bloki komutacyjne
b
b
X
0 Y0
X Y
j X Yj
X
N-1 YN-1
n
n
S
S
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
24
Bloki komutacyjne
0
0
1 0
1 0
0
0
0 0
0 0
0
0
0
0
0
0
1
1
0
0
0
1
1
0
0
0
0
0
0
0
0
1
1
1
1
1
0
0
0
0 0
0 0
0
0
0
0
2
0
0
2
0
0
0
0
1
1
0
0
1
1
3
0
0
3
1
1
0
0
a1 a0
a1 a0
1 0
0 0
1 1
0 1
1 0
1 0
I
T
P
W
ZPT
25
Magistrala (realizacja z multiplekserami)
Bus
Bus
L1 L2 Lk
R R
R1 R2 Rk
Clock
Clock
Dane wejściowe
a0
M ultipleksery
am 1
s0
s1
sn-1
I
T
P
S
W
ZPT
26
Magistrale (szyny)
Budowane z elementów trójstanowych
e = 0
x
f
e
x
f
e = 1
x
f
f
e x
0 0 Z
0 1 Z
1 0 0
I
T
1 1 1
P
W
ZPT
27
Magistrala (realizacja z buforami)
Dane we
E
Bus
Clock
R1 R2 Rk
R 1 in R 1 out R 2 in R 2 out Rkin Rkout
I
T
P
W
sterowanie
ZPT
28
Sumatory
B
A
A
n
n
Sumator podstawowy
BF powszechnie
c0
stosowany w technice
c n
DSP
Ł
Ł
Ł
Ł
n
Inne układy
Y
arytmetyczne:
układy odejmowania
układy mnożące
...są budowane z sumatorów
układy dzielenia
I
T
P
W
ZPT
29
Sumator kaskadowy
Ripple carry adder
xi yi
xn-1 yn-1 x0 y0
c1
cn-1 ci
ci+1
cn c0
FA FA
FA
sn-1 si s0
si = xi " yi "ci
I
T
ci +1 = xi yi (" ci(xi " yi)
P
W
ZPT
30
Sumator (Full adder)
ci
si
xi
yi
ci+1
si = xi " yi "ci
ci +1 = xi yi (" ci(xi " yi)
I
T
P
W
ZPT
31
Jaka jest ścieżka
Ripple-carry adder - wady
krytyczna tego
układu?
n-1 n-1
1
n
n-1
Bardzo długa - liniowo zależna od wielkości sumatora
I
T
Dla większości zastosowań sumator kaskadowy jest zbyt wolny
P
W
ZPT
32
Sumator z antycypacją przeniesień
Znacznie lepszy jest sumator
z antycypacją przeniesień,
w którym wszystkie przeniesienia s
wytwarzane jednocze%nie na
podstawie bit%7ńw sumowanych
skadnik%7ńw.
I
T
P
W
ZPT
33
Sumator z antycypacją przeniesień
ci+1 = xiyi (" ci(xi (" yi)
gi = xiyi
pi = xi (" yi
Wtedy:
si = ci " (pi gi)
ci+1 = gi (" pici
si = xi " yi " ci
I
T
P
W
ZPT
34
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 (funkcja 5 arg.)
c3 = g2 (" p2g1 (" p2p1g0 (" p2p1p0 c0
I
T
c4 = g3 (" p3g2 (" p3p2g1 (" p3p2p1g0 (" p3p2p1p0 c0
P
W
ZPT
35
Sumator z antycypacją przeniesień
c2 = g1 (" p1g0 (" p1p0c0
x0 y
Wszystkie przeniesienia s x1 y1
0
wytwarzane jednocze%nie na
podstawie bit%7ńw sumowanych
skadnik%7ńw!
p g p g
1 1 0 0
c0
C
C
F
F
c1
c2
I
T
s0
s1
P
W
ZPT
36
Sumatory z antycypacją przeniesień&
& można łączyć szeregowo
x31-24 y31-24 x15-8 y15-8 x7-0 y7-0
c24 c8
c16
c32 c0
Blok 3 Blok 1 Blok 0
S31-24 S15-8 S7-0
I
T
P
W
ZPT
37
Hierarchiczny sumator z antycypacją przeniesień
x 31 24 y 31 24 x 15 8 y 15 8 x 7 0 y 7 0
Block Block Block
c 0
3 1 0
c 24
G 3 H3 G 1 H1 G 0 H0
s 31 24 s 15 8 s 7 0
c 32 c 16 c 8
I
T
P
Drugi poziom
W
ZPT
38
Sumator/układ odejmujący
AU2 = (an 1 ,..., aj ,..., a0)
n-2
Kod U2
AD =L(AU2)= -an-1"2n-1 +
"a 2j
j
j=0
B
A
n
XOR
1
n
n
1
c0
c
n
Ł
0 +
I
n
T
P
Y
W
ZPT
39
Sumator/układ odejmujący
a3 b3 a2 b2 a1 b1 a0 b0
A B A B A B A B
Dodawanie/
CO + CI CO + CI CO + CI CO + CI
odejmowanie
S S S S
S 3 S 2 S 1 S 0
Overflow
I
T
P
W
ZPT
40
Komparator
B
A
n
n
1 z 3
A < B
A = B
K
A > B
I
T
P
W
ZPT
41
Komparator
a3
i 3
ik = ak "bk
A = a3a2a1a0 B = b3b2b1b0
b3
a2
i 2
b2
A eq B = i3i2i1i0
a1
i 1
b1
a0
i 0
b0
A < B =
A eq B + A gt B
A > B = a3b3 +i3a2b2 +
+i3i2a1b1 +i3i2i1a0b0
I
T
ak `" bk A < B, gdy ak = 0, bk =1
P
W
A > B, gdy ak = 1, bk =0
ZPT
42
Komparator
a3
i 3
b3
A = a3a2a1a0 B = b3b2b1b0
a2
i 2
b2
A = B
a1
i 1
b1
a0
i 0
b0
A < B
A > B
I
T
P
W
ZPT
43
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
44
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
45
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
46
Rejestr przesuwający
Q1 Q2 Q3 Q4
wejście
D4
D1 D3
D2
szeregowe
CLK
D Q
Q
Clock
D0
D1
I
T
P
Sel
W
ZPT
47
Rejestr przesuwający z wpisem równoległym
Wyjścia równoległe
Q0
Q3 Q2 Q1
D Q
D Q D Q D Q
Q
Q Q Q
Wejście
szeregowe
Shift/Load
I
T
Clock
Wejścia równoległe
P
W
ZPT
48
Rejestr przesuwający z wpisem równoległym
Wyjścia równoległe
Q3 Q2 Q1 Q0
D Q D Q D Q D Q
Q Q Q Q
I
T
Wejście Clock
P Shift/Load
Wejścia równoległe
szeregowe
W
ZPT
49
Mikrooperacje licznika
LOAD
HOLD
1100
1100
COUNT
LOAD
Licznik
HOLD
COUNT
clock
0010
LOAD
1101
I
T 1110
Zliczanie
P
W
1111
ZPT
50
Przykład licznika z wejściem Enable
E
0 1
A
E
Licznik
A0 A0 A1
clock
A1 A1 A2
A2 A2 A3
Q
A3 A3 A4
A4 A A5
"
T0 = E
"
"
T1 = EQ0
A14 A14 A15
A15 A15 A0
T2 = EQ0Q1 = T1Q1
I
T
P
W T3 = EQ0Q1Q2 = T2Q2
ZPT
51
Licznik w górę
Enable Q Q Q Q
T T T T
Clock
Q Q Q Q
Rst
T
Q
D
I
T Q
clk
P
W
ZPT
52
Licznik z przerzutnikami D
Enable
Q0
Q
D
Q
Q1
D Q
Q
Q2
D Q
Q
Q3
D Q
I
T
P Q
W
Clock Output
carry
ZPT
53
Licznik z wpisywaniem równoległym
Enable
0
Q
D Q
0
1
D
0
Q
0
D Q Q
1
1
D
1
Q
0
Q
D Q
2
1
D
2
Q
0
Q
D Q
3
1
D
I 3
T
Q
P
W
Output
Load carry
ZPT
Clock
54
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
55
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
56
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
57
Wyszukiwarka
Podobne podstrony:
TC bl funTC bl KBlümchen Nur geträumtCin Acr CNC TC [12] L273 85 1IPV6 TCBL?VARUL&TC 2TC red argBl alfatc lodTermometr elektroniczny Thermocont TC 01awięcej podobnych podstron