TC bl fun


Cyfrowy zespół funkcjonalny CZF
UO - układ operacyjny US - układ sterujący
XZ D
D, F - przetwarzana informacja
(wektory binarne),
Z
X - sygnały warunków,
US UO
Z - sygnały sterujące
(mikrorozkazy)
XP
Z
F
Y
Cyfrowy zespół funkcjonalny CZF
Założenia
1. Układ synchroniczny (Moore a lub Mealy ego)
2. Opis działania za pomocą sieci działań
4. Funkcje przejść i wyjść są realizowane w strukturze
ASM
BLOKI FUNCJONALNE
X
X  wejścia sygnałów
reprezentujących dane wejściowe
Y - wyjścia sygnałów
reprezentujących dane wyjściowe,
SP
BF
S - wejścia sterujące,
P  wyjścia predykatowe,
clk
sygnalizujące pewne szczególne
stany przetwarzania danych
Y
oraz wejście zegarowe clk.
Multipleksery, demultipleksery
e e
y0
d0
y
d1
d
y1
dN-1
yN-1
N = 2n
MUX
DMUX
an-1 a0 an-1 a0
Magistrale (szyny)
Układy komutacyjne (kombinacyjne) służące
do przesyłania wektorów binarnych
A
A
B
B
Multiplekser grupowy
- trudny do stosowania w syntezie
z układów małej i średniej skali integracji
Magistrale (szyny)
Budowane z elementów trójstanowych
a
v
a dla s = 1
y = a v s v b s
ab
sa
a
v
y =
s s = 0
a b
{
Z d la s = 0
b
s
Z - stan wysokiej
sb
impedancji wyjściowej
Bramka trójstanowa Aączenie bramek
Magistrale (szyny)
Szyna zbudowana z bram trójstanowych sterowanych dekoderem
X X X0
n - 1 n -2
s
n-1
s s s
s
n - 1 n-2 0
n-2
s
0
S
YY Y
Y = BUS(Xn-1,...,Xi,...,X0) = Xi dla i = (S)
Układy arytmetyczne
Sumator z przeniesieniami szeregowymi (Ripple carry
adder)
Sumator z przeniesieniami równoległymi (Look-ahead
carry adder)
Sumator/subtraktor (układ odejmujący)
Sumator BCD
Komparator
Sumator z przeniesieniami szeregowymi
A B
a)
n
n b)
a
n-1 b a b a b
n-1 i i 0 0
c0
c n
cn
ci+1
ci c1
Ł
Ł c0
Ł Ł
cn-1
yn-1
yi y0
n
Y
Funkcje logiczne sumatora
a b c co y
0 0 0 0 0
0 0 1 0 1 c i
s i
0 1 0 0 1
x i
y i
0 1 1 1 0
1 0 0 0 1
c i + 1
1 0 1 1 0
1 1 0 1 0
(b) Full adder
1 1 1 1 1
yi = ai " bi " ci
ci +1 = aibi (" ci(ai ("bi)
Sumator z przeniesieniami równoległymi
Look-ahead carry adder
ci+1 = aibi (" ci(ai (" bi)
W sumatorze z przeniesieniami
Gi = aibi
równoległymi wszystkie
Pi = ai (" bi
przeniesienia są wytwarzane
Wtedy:
jednocześnie na podstawie
bitów sumowanych składników.
yi = ci " (Pi )
Gi
yi = ci " [(ai (" bi) ( )] = ai " bi " ci
ai (" bi
ci+1 = Gi (" Pici
Sumator z przeniesieniami równoległymi c.d.
a0 b0 a1 b1
ci+1 = Gi (" Pici
c0
c1 = G0 (" P0c0
G0 P G1 P
0 1
c2 = G1 (" P1c1 =
= G1 (" P1(G0 (" P0c0) =
c0
= G1 (" P1G0 (" P1P0c0
(funkcja 5 arg.)
CC
FF
c2
c1
yi = ci " (Pi )
Gi
y0 y1
Sumator z przeniesieniami równoległymi
c.d.
C1 = G0 + P0 C0
C2 = G1 + P1 C1 = G1 + P1 G0 + P1 P0 C0
C3 = G2 + P2 C2 = G2 + P2 G1 + P2 P1 G0 + P2 P1 P0 C0
C4 = G3 + P3 C3 = G3 + P3 G2 + P3 P2 G1 + P3 P2 P1 G0 + P3 P2 P1 P0 C0
współpracuje z generatorem przeniesień jednoczesnych
Budowa większych sumatorów
4
4 4 4 4 4 4 4
A[3-0] B[3-0]
C A[15-12] B[15-12] A[7-4] B[7-4] C
C 12 A[11-8] B[11-8] C C
16 4
8 0
P G
P G P G
P G
4 4 4 4
S
[3-0]
S[15-12] S S[7-4]
[11-8]
P G C P G C P G C P G
3 3 3 2 2 2 1 1 1 0 0
C
16
C
0
C C
Lookahead Carry Unit
4 0
P G3-0
3-0
Sumatory 4-bitowe łączy się za pośrednictwem
generatora przeniesień jednoczesnych
Sumator/układ odejmujący
Y = A + B " c0 + c0; c0 " {0,1}
B
A
n
Dla c0 = 0
XOR
n
n
Y = A + B
Dla c0 = 1
c0
c
n
1
0
S
+
Y = A + + 1 = A  B
B
n
Y
B + 1= -B|U2
Sumator/układ odejmujący
a 3 b 3 b 3 a 2 b 2 b 2 a 1 b 1 b 1 a 0
b 0 b
0
A B A B A B A B
Dodawanie/
C4 + C3 C3 + C2 C2 + C1 C1 + C0
odejmowanie
S S S S
S 3 S 2 S 1 S 0
Overflow
ZASTOSOWANIA
A
B
n n
Yn-1
Jednostka arytmetyczno-logiczna
Z
S
OVR
Arytmometr (układ wykonawczy: P
G
ALU
mikrokontrolera, procesora
c0
cn
sygnałowego)
n
Y
Inne układy arytmetyczne:
układy mnożące
układy kryptograficzne
...są budowane z sumatorów
Kod U2
AU2 = , gdzie aj " {0,1}
n-2
j
( )
AD = L AU2 = -an-1 " 2n-1 + 2
"a 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
Zakres:  2n 1 d" AD d" 2n 1  1
Działania w kodzie U2
Zamiana liczby U2 na NKB
Zamiana liczby NKB na U2
-11 +11 (5 bitów)
+11 -11 (5 bitów)
-11 10101
+11 01011
01010 negacja bitów
10100 negacja bitów
+00001 dodanie 1 (aryt.)
+00001 dodanie 1 (aryt.)
+11 01011 (8 + 2 + 1 = +11)
-11 10101 ( 16 + 4 + 1 = -11)
Dodawanie/odejmowanie w U2
OVR = Overflow (nadmiar) = cn " cn-1
OVR = 1

Nadmiar
50101 -7 1001
Wynik
+3 0011 -2 1110
nieprawidłowy
-8 1000 7 10111
Bit znaku!!
Wynik prawidłowy!
OVR = 0

Bez nadmiaru
50101 -3 1101
Wynik prawidłowy
20010-5 1011
70111 -1 11000
Dodawanie/odejmowanie w U2
Wnioski:
1. Jeśli OVR=1, to prawidłowy wynik
dodawania/odejmowania w kodzie U2 można
odczytać uznając za bit znaku - bit przeniesienia
carry-out;
2. Aby zawsze wynik działań na liczbach w kodzie U2
był prawidłowy, to dla n-bitowych liczb NKB należy
przyjąć zakres n+2 bity.
Komparator
B
A
n
n
A = B
A < B
K
A > B
Komparator
ik = ak " bk
A = a3a2a1a0 B = b3b2b1b0
A eq B = i3i2i1i0
ak `" bk A < B, gdy ak = 0, bk =1
A > B, gdy ak = 1, bk =0
A > B = a3b3 + i3a2b2 + i3i2a1b1 + i3i2i1a0b0
A eq B + A gt B
A < B =
Sekwencyjne bloki funkcjonalne
Rejestry
Liczniki
xl
xp
X X
s0
s0
R L
s s1
1
(Q) (Q)
C
clock clock
o
Y
Y
Y := SHR(xp, Y)
Y := Y + 1 = INC(Y)
Y := SHL(Y, xl)
Y := X LOAD
Y := Y - 1 = DEC(Y)
Y := Y HOLD
Y := <0...0> CLEAR
Prosty rejestr
Q1 Q2 Q3 Q4
D1 D2 D3 D4
P1 P2 P3 P4
CLK
Rejestr zbudowany z przerzutników
Rejestr przesuwający
Q1 Q2 Q3 Q4
wejście
D4
D1 D3
D2
szeregowe
CLK
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 1
Rejestr przesuwający z wpisem
Wyjścia równoległe
równoległym
Q Q Q Q
3 2 1 0
D Q D Q D Q D Q
Q Q Q Q
Wejście Clock
Shift/Load
Wejścia równoległe
szeregowel
3-bitowy licznik asynchroniczny
1
Q Q Q
T T T
Clock
Q Q Q
Q 0 Q 1 Q 2
Clock
Q 0
Q 1
Q 2
Count 0 1 2 3 4 5 6 7 0
4-bitowy licznik synchroniczny
1
T Q T Q T Q T Q
Q 0 Q 1 Q 2 Q 3
Clock
Q Q Q Q
Clock
Q 0
Q 1
Q 2
Q 3
Zliczanie0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 0 1
Zezwolenie i zerowanie
Enable Q T Q Q T Q
T T
Clock Q Q Q Q
Clear
Licznik z wpisywaniem równoległym
Enable
0
Q 0
D Q
1
D
0
Q
0
D Q Q 1
1
D
1
Q
0
Q 2
D Q
1
D
2
Q
0
Q 3
D Q
1
D
3
Q
carry
Output
Load
Clock
START
LOAD(LB)
LDA := 0
Eksperyment
LDB :=0
LK := 8
BIN BCD
TAK
LDB e" 5
LDB := LDB + 3
Metoda +3
NIE
TAK
LDA e" 5
LDA := LDA + 3
LDA := SHL(LDA,LDB )
3
LDB := SHL(LDB,LB )
7
LB:= SHL(LB)
LK := DEC(LK)
NIE
LK = 0
TAK
LD := LDA LDB
KONIEC
LDA LDB LB
Przykład
0000 0000 00011011
1
konwersji
0000 0000 00110110
2
liczby 27
0000 0000 01101100
3
0000 0000 11011000
4
0000 0001 10110000
5
0000 0011 01100000
6
0000 0110 11000000
+ 0011
7
0000 1001
0001 0011 10000000
8
0010 0111 00000000
LB
Struktura układu
A)
8
4
4
R1
R3 R2
2 2
2
S3 S2
S1
AB
S LB
"8"
b)
4
MUX
0
MUX
1
LK = 0
LOAD
K >
_5
LD
LK
DEC
4
US UO
"5"
"3"
LK = 0
AB 10
K
clock
Ł
4 4
LOAD
R4
K e" 5
8
Y = LD
A0
0
Sieć działań
S
A1
1
z uwzględnieniem UO
LOAD 1
CLEAR 2,3
LOAD (LK)
A2
MUX := 0
1
A6
K > 5
LOAD 2
0
A3
MUX := 1
A7
1
K > 5
0 LOAD 3
A4
SHL1, SHL2, SHL3,
DEC (LK)
A5
1
0
LK = 0
LOAD 4
Automat sterujący
x2
A0 0
/Z
x2
A1 1
/Z
x1
A2 2
A6 4
/Z
/Z
x1
x1 A7
A3 3 5
/Z
/Z
x1
x0
A5 7
A4 6 /Z
/Z
x0
Automat sterujący
000 001 011 010 110 111 101 100 Z
A0 A0 A0 A0 A0 A1 A1 A1 A1 A0
A1 A2 A2 A2 A2 A2 A2 A2 A2 A1
A2 A3 A3 A6 A6 A6 A6 A3 A3 A2
A3 A4 A4 A7 A7 A7 A7 A4 A4 A3
A4 A2 A5 A5 A2 A2 A5 A5 A2 A6
A5 A0 A0 A0 A0 A0 A0 A0 A0 A7
A6 A3 A3 A3 A3 A3 A3 A3 A3 A6
A7 A4 A4 A4 A4 A4 A4 A4 A4 A7
Eksperyment: transkoder BIN BCD
RealizacjA w systemie
Metoda +3
MAX+PLUSII (Altera)
LB
8
4
4
R1
R3 R2
32 (33) komórki FLEX
2 2
2
S3 S2
S1
AB
"8"
4
MUX
0
MUX
1
LOAD
DEC LK
4
"5"
"3"
LK = 0
Realizcja według tablicy prawdy:
A B
K
4 4
Ł
LOAD
K e" 5
R4
8 MAX+PLUSII 131 komórek
Y = LD
DEMAIN 13 komórek (!!!)



Specyfikacja AHDL (VHDL)
w
Komputerowe projektowanie układów cyfrowych
Eksperyment: transkoder BIN BCD



.type fr
.i 9
.o 8
.p 100
000000000 0000 0000
000000001 0000 0001
000000010 0000 0010
Realizacja według tablicy prawdy:
000000011 0000 0011
000000100 0000 0100
000000101 0000 0101
MAX+PLUSII 131 komórek
000000110 0000 0110
000000111 0000 0111
000001000 0000 1000
000001001 0000 1001
000001010 0001 0000
000001011 0001 0001
000001100 0001 0010
DEMAIN 13 komórek (!!!)


000001101 0001 0011
* * *
001100001 1001 0111
001100010 1001 1000
001100011 1001 1001
.e
Pamięci
Pamięci o dostępie swobodnym
Dostęp swobodny (Random Access) - czas dostępu
do informacji zapisanej w komórce pamięci jest
niezależny od położenia tej komórki w matrycy pamięci.
Czas dostępu - czas, jaki upływa od momentu podania
adresu komórki na wejścia adresowe pamięci do
momentu ustalenia informacji na wyjściu pamięci.
Pamięci
ROM
RAM
(Read Only Memory)
(Random Access memory)
ROM, PROM, EPROM, E2PROM
DRAM, SRAM
(non-volatile)
Pamięci typu ROM
cs
X0
p
ROM
Xi
A
m x n
Xm-1
n
Y
Odczyt: Y = ROM(X,A,cs) = MUX(X,A,cs)
D C B A
MATRYCA OR
Pamięci typu ROM
(PROGRAMOWALNA)
(struktura)
MATRYCA AND
(STAAA) y3 y2 y1 y0
Pamięci typu RAM
X0
p
Odczyt - jak w pamięciach
MAT RYCA
Xi
A
m x n
typu ROM
Xm-1
Zapis: Xi = = DMUX(Y,A,w/r)
n
w/r
cs
WE/WY
n
da nych
Y


Wyszukiwarka

Podobne podstrony:
TC bl K
TC bl 1
Blümchen Nur geträumt
Cin Acr CNC TC [12] L273 85 1
znak fun tryg canvaskat
IPV6 TC
BL?VAR
FUN Grudziadz
dos lid fun der goldener pawe c moll pfte vni vla vc vox
3 fun
UL&TC 2
fun wykladnicza panelsuwaki

więcej podobnych podstron