Documente Academic
Documente Profesional
Documente Cultură
N = 5/8 x 25
N = 5/8 x 25
N = 1 x 28
Normalization
Unnormalized:
Normalized:
F = 0.0101
F = 0.101
E = 0011
E = 0010
Unnormalized:
(shift F left)
Normalized
F = 1.11011 E = 1100
F = 1.1011 E = 1011
F = 1.011
E = 1010
Representation of Zero
F = 0.000, E = 1000
or
0.000 x 2-8
N = 5/16 x 23 = 5/2
N = 5/8 x 22 = 5/2
N = 5/32 x 24 = 5 x 29
N = 5/16 x 25 = 5 x 29
N = 5/8 x 26 = 5 x 29
Add Exponents
Multiply Fractions
Set E = 8
Done
F=0
Y
F
Overflow
Y
Set F = 1/2
E <= E+1
F
Normalized
N
Shift F Left
E <= E-1
Exp
Overflow
N
Done
Set Indicator
Load
St
FV
Adx
Mdone
FZ
SM8
Inc
Dec
Adx
SM8
Main
Control
RSF = Inc
LSF = Dec
Fnorm
EV
Done
Load
E2
A (accumulator)
3
B
0
LSF
F2
4-bit Full Adder
M
Sh
AdSh
1's Complementer
Multiply
Control
Cm
Mdone
Load
F1
Adx
FZ
S0 /
SM8
1
St
RSF
FV
1
Fnorm
1
S3 / Done
Load
S1 / Adx
LSF
add exponents,
start multiply
Fraction
Multiplier
Control
S2 /
EV
Mdone
1
St
0
S1
M/AdSh
M'/Sh
M/Cm AdSh
M'/Sh
S3
Adx M/AdSh
Adx M'/Sh
M/AdSh
M'/Sh
S2
--update registers
-- increment X
v
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
done
0
0 (0.111 x 2 1) x (0.111 x 2-8)
0
0
1
= 0.110001 x 2-7
0
0 (1.001 x 2 -7) x (1.001 x 21)
0
1
= 0.110001 x 2-6
0
0 (1.000 x 2 7) x (1.000 x 2-7)
0
0
0
1
= 0.100000 x 21
0
0 (0.000 x 2 -8) x (0.000 x 2-8)
0
0
0
1
= 0.0000000 x 2-8
0
0 (0.111 x 2 7) x (1.001 x 21)
0
0
1
= 1.001111 x 28 (overflow)
0
Fraction
Adder
C(F1)
Input
Exponent
Adder
B(F2)
X(E1) Y(E2)
MAIN
C2
C
FV
FZ
FN
DONE
C2
ST
CLR
C
ADX
FV
FZ
RSF
FN
MDONE
LSF
MDONE
DONE
CLR
ADX
RSF
LSF
SM8
SM8
Multiplier
ADX
B0
C
IPAD4
ST
I3
SW0
I2
SW1
I1
LD
I0
ADX
B0
C
MDONE
ADSH
CD
SH
ADSH
CD
SH
FSUM[4-0]
IBUF4
A0
D2_4E
A0 B0
A1 B1
B2
E
B3
L1
L2
L3
L4
DB
LZ
LSF
RSF
ADSH
SH
C
B_Register
A0
FSUM0 S0
DB[3-0]
B[3-0]
LFZ
LSF
RSF
ADSH
SH
C
A0
A1
A2
B[3-0]
Data_Out1
A0
A1
A2
B[3-0]
DB
LD
DONE
IPAD4
I3
I2
I1
I0
IBUF4
D3
D2
D1
D0
T BUFT4
DB3
DB2
DB1
DB0
DB[3-0]
F490
F15
C
BUFG
C2
BUFG
ADX
RSF
LSF
DONE
DB[3-0]
E1[4-0]
E1[4-0]
S4
SM8
L3
RSF
LSF
C
ADX
OSC4
FBM
F500K
F15K
Exponent
Adder
E1_Register (X)
DB0
DB1
DB2
DB3
L4
C
IN4
SM8
LE1
RSF
LSF
C
ADX
Data_Out2
IN
DE
S4
E1[4-0]
S[3-0]
E1[4-0]
E2[3-0]
V
E2_Register (Y)
D0 Q0 E20
E21
D1 Q1
E22
D2 Q2
D3 Q3 E23
CE
C
CLR
GND
ADX
E2[3-0]
S4
FD
D
CLR
Q0
C
FD
D
ADX
Q1
C
FD
D
Q2
RSF
C
FD
FD
ST D
C2
C
MDONE
FV
FNORM
FZ
LSF
Q3
C
SM8
FD
D
MDONE
Q
Q4
CO
FD
Q
Q3
C
SH
FD
D
Q
Q2
C
ADX
FD
D
Q
Q1
C
C
BO
ADSH
ADSH
RSF
SH
B3
SLI
A
QA
B
QB
C
QC
D
QD
SRI
S0
S1
CK
CLR
FV
A0
A1
A2
A3
FZ
FN
A[3-0]
C
CLR
Name=A.1
DB0
SM8
DB1
DB2
DB3
M2-1
IN4
SM8
LE1
ADX
DC
IC
C
DONE
D0
D1
Q
SE
D0
D1
D2
D3
D4
C
CE
RD
Q0
Q1
Q2
Q3
Q4
E10
E11
E12
E13
E14
E1[4-0]
RD5CR
GND
V
ADD4
E1[4-0]
E2[3-0]
E10
E11
E12
E13
E20
B0
E21
B1
E22
CI
A0
A1
A2
A3
B0
B1
B2
B3 CO
S0
S1
S2
S3
E14
B2
E23
B3
BUFT4
S0
S1
S2
S3
S4
S[3-0]
Example 2:
Add
Unnormalize
Add fractions
Fix Overflow
F x 2E = 0.100001 x 26
= 0.100 x 22
If exponents are not equal, shift the fraction with the smallest exponent
right and add 1 to its exponent; repeat until the exponents are equal.
2)
3)
(a) If fraction overflow occurs, shift right and add 1 to the exponent to
correct the overflow.
(b) If the fraction is unnormalized, shift left and subtract 1 from exponent
until the fraction is normalized.
(c) If the fraction is 0, set the exponent to the appropriate value.
4)