r5


5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
5.1 LICZBY CAAKOWITE DODATNIE
A = an-1an-2...a1a0
n-1
V (A) = an-1 Å" rn-1 + an-2 Å" rn-2 +...+ a1 Å" r1 + a0 Å" r0 = ai Å" ri
"
i=0
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
Liczby w różnych systemach
Dziesiętne Binarne Ósemkowe Szesnastkowe
00 00000 00 00
01 00001 01 01
02 00010 02 02
03 00011 03 03
04 00100 04 04
05 00101 05 05
06 00110 06 06
07 00111 07 07
08 01000 10 08
09 01001 11 09
10 01010 12 0A
11 01011 13 0B
12 01100 14 0C
13 01101 15 0D
14 01110 16 0E
15 01111 17 0F
16 10000 20 10
17 10001 21 11
18 10010 22 12
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
5.2 LICZBY DZIESITNE I BINARNE
Liczby dziesiętne
d0,d1,...,dn-1 "(0, 1,..., 9)
D = dn-1dn-2...d1d0
n-1
V (D) = dn-1 Å"10n-1 + dn-2 Å"10n-2 +...+ d1 Å"101 + d0 Å"100 = di Å"10i
"
i=0
np : 8547 = 8Å"103 + 5Å"102 + 4Å"101 + 7 Å"100
MSB
Liczby binarne
LSB
b0,b1,...,bn-1 "(0, 1)
B = bn-1bn-2...b1b0
n-1
V (B) = bn-1 Å" 2n-1 + bn-2 Å" 2n-2 +...+ b1 Å" 21 + b0 Å" 20 = bi Å" 2i
"
i=0
np : 1101 =1Å" 23 +1Å" 22 + 0Å" 21 +1Å" 20
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
5.2 KONWERSJA LICZB BINARNYCH I DZIESITNYCH
Zamień (857)10
Reszta
857 : 2 = 428 1 LSB
428 : 2 = 214 0
214 : 2 = 107 0
107 : 2 = 53 1
53 : 2 = 26 1
26 : 2 = 13 0
13 : 2 = 6 1
6 : 2 = 3 0
3 : 2 = 1 1
1 : 2 = 0 1 MSB
Wynik (1101011001)2
Zamień (1101)2
V(1101) = 1·23 + 1·22 + 0·21 + 1·20 = 8 + 4 + 1 = 13
Wynik (13)10
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
5.3 LICZBY ÓSEMKOWE I SZESNASTKOWE
Liczby ósemkowe
k0,k1,...,kn-1 "(0, 1,..., 7)
K = kn-1kn-2...k1k0
n-1
V (K) = kn-1 Å"8n-1 + kn-2 Å"8n-2 +...+ k1 Å"81 + k0 Å"80 = ki Å"8i
"
i=0
np : 5327 = 5Å"83 + 3Å"82 + 2Å"81 + 7 Å"80
Liczby szesnastkowe
H = hn-1hn-2...h1h0 h0,h1,...,hn-1 "(0,1,..., 9, A, B, C, D, E, F )
n-1
V (H ) = hn-1 Å"16n-1 + hn-2 Å"16n-2 +...+ h1 Å"161 + h0 Å"160 = hi Å"16i
"
i=0
np : 47BF = 4Å"163 + 7 Å"162 +11Å"161 +15Å"160
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
5.4 KONWERSJA LICZB BINARNYCH, ÓSEMKOWYCH I SZESNASTKOWYCH
101 011 010 111 (101011010111)2 = (5327)8
{ { { {
5 3 2 7
2 7 3 4 (2734)8 = (10111011100)2
{ { { {
010 111 011 100
1010 1111 0010 0101 (1010111100100101)2 = (AF25)16
{ { { {
A F 2 5
(368E)16 = (11011010001110)2
3 6 8 E
{ { { {
0011 0110 1000 1110
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
5.2 DODAWANIE LICZB CAAKOWITYCH DODATNICH
x
0 0 1 1
Półsumator
y
+
+ 0 + 1 + 0 + 1
c s
0 0 0 1 0 1 1 0
Przeniesienie
Suma (a) Cztery możliwe przypadki
Przeniesienie Suma
x y s
c
0 0 0 c = xy
0
0 1 1
0
1 0 1
0
s = x •" y
1 1 0
1
(b) Tablica wartości funkcji
(c) Opis analityczny
x
s
y
s
x
HA
c
y
c
(e) Symbol graficzny
(d) Układ
Rysunek 5.1 Półsumator
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
X = x4 x x x x
( )10
0 1 1 1 1 15
3 2 1 0
+ Y y y y y y
=
( )10
0 1 0 1 0 10
4 3 2 1 0
Przeniesienia
1 1 1 0
S s4 s s 2 s s 0
=
( )10
1 1 0 0 1 25
3 1
Rysunek 5.2 Przykład dodawania
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
Sumator
xiyi
00 01 11 10
ci
c i x i yi ci + 1 si
0 1 1
0 0 0 0 0
1 1 1
0 0 1 0 1
0 1 0 0 1
xi yi ci
si = •" •"
0 1 1 1 0
1 0 0 0 1
1 0 1 1 0 xi yi
1 1 0 1 0 00 01 11 10
ci
1 1 1 1 1
0 1
(a) Tablica wartości funkcji
1 1 1 1
c i + 1 = x i y i + x i c i + y i c i
x i
(b) Tablice Karnaugh a
y i
s i
c i
c i + 1
(c) Układ
Rysunek 5.3 Sumator
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
ci+1 = xi yi + xici + yici
si = xi yici + xi yici + xi yici + xi yici
= (xi yi + xi yi )ci + (xi yi + xi yi )ci
xiyi
00 01 11 10
ci
0 1
= (xi •" yi )ci + (xi •" yi )ci
1 1 1 1
c i + 1 = x i y i + x i c i + y i c i
= (xi •" yi ) •" ci
xiyi
00 01 11 10
ci
0 1 1
si = xi •" yi •" ci
1 1 1
xi yi ci
si = •" •"
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
c i s i
s
x
HA
x i
s y c
x
ci + 1
HA
y i
c
y
(a) Schemat blokowy
c i
s i
x i
y i
ci + 1
(b) Układ logiczny
Rysunek 5.4 Sumator zbudowany z półsumatorów
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
c i s i
s
x
HA
x i
s y c
x
ci + 1
HA
y i
c
y
sumator
ci+1 = xi yi + ci (xi •" yi )
= xi yi + xi yici + (xi •" yi )ci
= xi yi + (xi yi + xi •" yi )ci
= xi yi + (xi + yi )ci c = xy
s = x •" y
półsumator
= xi yi + xici + yici
ci+1 = xi yi + xici + yici
si = (xi •" yi ) •" ci
si = xi •" yi •" ci
sumator
= xi •" yi •" ci
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
A : a a
0
7
x x y y
7 0 7 0
c
7
s s
7 0
0
x y y y
x x
8 7 0 8 7 0
c
8
s s
8 0
A : a a
7 0
:
P = 3 A P P P
8 0
9
0
0
(a) Podejście trywialne
x x x y y y
8 1 0 8 7 0
c
8
s s
8 0
:
P = 3 A P P
P
9 8 0
(b) Układ optymalny
Rysunek 5.6 Układ mnożący 8-bitową liczbę całkowitą dodatnią przez 3
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
Reprezentacja znak i moduł
+5 = 0101
 5 = 1101
Reprezentacja uzupełnienie do 1
K = (2n  1)  P
dla n = 4 i P = 5
 5 = (24  1)  5 = (16  1)  5 = (15)10  (5)10 = 1111  0101 = 1010
Reprezentacja uzupełnienie do 2
K = 2n  P
dla n = 4 i P = 5
 5 = 24  5 = 16  5 = (16)10  (5)10 = 10000  0101 = 1011
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
sposób wyznaczania liczb uzupełnienie do 2
B = bn-1bn-2...b1b0
K = kn-1kn-2...k1k0
Jeżeli B = 0110
to k0 = b0 = 0, k1 = b1 = 1, k2 = b2 = 0, k3 = b3 = 1
stÄ…d K = 1010
V (K) = -kn-1 Å" 2n-1 + kn-2 Å" 2n-2 + ...+ k1 Å" 21 + k0 Å" 20
V(100... 00) =  2n 1 najmniejsza liczba ( ujemna o największym module)
V(011...11) = 2n 2  1 największa liczba ( dodatnia o największym module)
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
Interpretacja czterobitowych liczb ze znakiem
znak uzupełnienie uzupełnienie
b3b2b1b0
i wartość do 1 do 2
+7 +7 +7
0111
+6 +6 +6
0110
+5 +5 +5
0101
+4 +4 +4
0100
+3 +3 +3
0011
+2 +2 +2
0010
+1 +1 +1
0001
+0 +0 +0
0000
 0  7  8
1000
 1  6  7
1001
 2  5  6
1010
 3  4  5
1011
 4  3  4
1100
 5  2  3
1101
 6  1  2
1110
 7  0  1
1111
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
( 5)
( )
+5
0 1 0 1 1 0 1 0
( ) ( ) + 0 0 1 0
+ +2 + 0 0 1 0 + +2
( ) ( 3)
+7 0 1 1 1 1 1 0 0
( )
+5 0 1 0 1 ( 5) 1 0 1 0
+( 2) + 1 1 0 1 + + 1 1 0 1
( 2)
( ) ( 7)
+3 1 0 0 1 0 1 0 1 1 1
1 1
0 0 1 1 1 0 0 0
Rysunek 5.8 Przykłady dodawania liczb binarnych uzupełnienie do 1
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
( ) ( 5 1 0 1 1
+5 0 1 0 1 )
( ) ( )
+ +2 + 0 0 1 0 + +2 + 0 0 1 0
( 3
)
( )
+7 0 1 1 1 1 1 0 1
( ) ( 5 1 0 1 1
)
+5 0 1 0 1
)
) + 1 1 1 0
+ ( 2 + ( 2 + 1 1 1 0
( 7
)
( )
+3 1 0 0 1 1 1 1 0 0 1
pomiń pomiń
Rysunek 5.9 Przykłady dodawania liczb binarnych uzupełnienie do 2
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
( )
+ 5 0 1 0 1 0 1 0 1
 ( )  0 0 1 0 + 1 1 1 0
+ 2
( )
+ 3 1 0 0 1 1
pomiń
( 5 ) 1 0 1 1 1 0 1 1
+ 2
 ( )  0 0 1 0 + 1 1 1 0
( 7 ) 1 1 0 0 1
pomiń
( )
+ 5 0 1 0 1 0 1 0 1
)  1 1 1 0
 ( 2 + 0 0 1 0
( ) 0 1 1 1
+ 7
( 5 ) 1 0 1 1 1 0 1 1
 ( 2)  1 1 1 0 + 0 0 1 0
( 3 ) 1 1 0 1
Rysunek 5.10 Przykłady odejmowania liczb binarnych uzupełnienie do 2
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
0000
1111 0001
1110 0010
0
 1 +
1
 2 +2
1101 0011
 3 +3
 4 +4
1100 0100
 5 +5
1011 0101
 6 +6
 7  8 +7
1010 0110
1001 0111
1000
Rysunek 5.11 Graficzna interpretacja czterobitowych liczb uzupełnienie do 2
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
5.4 SUMATOR I UKAAD ODEJMUJCY
yn  1 y1 y0
Dod Odj
D
xn  1 x1 x0
c0
cn
n - bitowy sumator
sn  1 s1 s0
Rysunek 5.12 Sumator/układ odejmujący
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
( ) ( 7 1 0 0 1
+ 7 0 1 1 1 )
Przepełnienie
( ) ( )
+ + 2 + 0 0 1 0 + + 2 + 0 0 1 0
( 5
)
( )
+ 9 1 0 0 1 1 0 1 1
c
c
= 0
= 0
4
4
c
c
= 1
= 0
3
3
( ) ( 7 1 0 0 1
+ 7 0 1 1 1 )
) + 1 1 1 0
+ ( 2 + ( 2) + 1 1 1 0
( 9
)
( )
+ 5 1 0 1 0 1 1 0 1 1 1
c c
= 1 = 1
4 4
c c
= 1 = 0
3 3
Rysunek 5.13 Przykłady wyznaczania przepełnienia
przepełnienie
= c3c4 + c3c4
przepeÅ‚nienie = cn-1 •" cn
= c3 •" c4
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
5.5 SZYBKIE SUMATORY
ci+1 = gi + pici
gi = xi yi
pi = xi + yi
ci+1 = gi + pi (gi-1 + pi-1ci-1)
= gi + pigi-1 + pi pi-1ci-1
ci+1 = gi + pigi-1 + pi pi-1gi-2 +...+ pi pi-1...p2 p1g0 +...+ pi pi-1...p2 p1p0c0
c1 = g0 + p0c0
c2 = g1 + p1g0 + p1p0c0
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
x1 y1 y0
x0
c1 = g0 + p0c0
c2 = g1 + p1g0 + p1p0c0
g1 p1 g0 p0
c0
c2
c1
s1 s0
Rysunek 5.15 Pierwsze dwa stopnie szybkiego sumatora
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
c1 = g0 + p0c0
c2 = g1 + p1g0 + p1p0c0
c8 = g7 + p7g6 + p7 p6g5 + p7 p6 p5g4 + p7 p6 p5 p4g3 + p7 p6 p5 p4 p3g2
+ p7 p6 p5 p4 p3 p2g1 + p7 p6 p5 p4 p3 p2 p1g0 + p7 p6 p5 p4 p3 p2 p1p0c0
c8 = (g7 + p7g6 + p7 p6g5 + p7 p6 p5g4)
+[( p7 p6 p5 p4)(g3 + p3g2 + p3 p2g1 + p3 p2 p1g0)]
+ ( p7 p6 p5 p4)( p3 p2 p1p0)c0
. . .
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
x31 24 y31 24 x15 8 y15 8 x7 0 y7 0
c8
Układ Układ Układ
c32
c24
c16 c0
3 1 0
s31 24 s15 8 s7 0
Rysunek 5.16 Hierarchiczny szybki sumator
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
x 31 24 y 31 24 x 15 8 y 15 8 x 7 0 y 7 0
Układ Układ Układ
c 0
3 1 0
c 24
G 3 P 3 G 1 P 1 G 0 P
0
s 31 24 s 15 8 s 7 0
c 32 c 16 c 8
Rysunek 5.17 Ulepszony szybki sumator
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
c8 = g7 + p7g6 + p7 p6g5 + p7 p6 p5g4 + p7 p6 p5 p4g3 + p7 p6 p5 p4 p3g2
+ p7 p6 p5 p4 p3 p2g1 + p7 p6 p5 p4 p3 p2 p1g0 + p7 p6 p5 p4 p3 p2 p1p0c0
P0 = p7 p6 p5 p4 p3 p2 p1p0
G0 = g7 + p7g6 + p7 p6g5 +...+ p7 p6 p5 p4 p3 p2 p1g0
c8 = G0 + P0c0
c16 = G1 + P1c8
= G1 + P1G0 + P1P0c0
c24 = G2 + P2G1 + P2P1G0 + P2P1P0c0
c32 = G3 + P3G2 + P3P2G1 + P3P2P1G0 + P3P2P1P0c0
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
5.6 PROJEKTOWANIE UKAADÓW ARYTMETYCZNYCH PROGRAMAMI CAD
Reprezentacja układów arytmetycznych za pomocą edytora schematów
Rysunek 5.19 Schemat modułu sumatora/układu odejmującego z biblioteki LPM
Systemu MAX+plus II CAD
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
Optymalizacja ze
względu na koszt
Optymalizacja ze
względu na prędkość
Rysunek 5.20 Wynik badań symulacyjnych sumatora z biblioteki LPM
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
Reprezentacja układów arytmetycznych za pomocą języka VHDL
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
ENTITY fulladd IS
PORT ( Cin, x, y : IN STD_LOGIC ;
s, Cout : OUT STD_LOGIC ) ;
END fulladd ;
ARCHITECTURE LogicFunc OF fulladd IS
BEGIN
s <= x XOR y XOR Cin ;
Cout <= (x AND y) OR (Cin AND x) OR (Cin AND y) ;
END LogicFunc ;
Rysunek 5.21 Sumator reprezentowany w języku VHDL
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
ENTITY adder4 IS
PORT ( Cin : IN STD_LOGIC ;
x3, x2, x1, x0 : IN STD_LOGIC ;
y3, y2, y1, y0 : IN STD_LOGIC ;
s3, s2, s1, s0 : OUT STD_LOGIC ;
Cout : OUT STD_LOGIC ) ;
END adder4 ;
ARCHITECTURE Structure OF adder4 IS
SIGNAL c1, c2, c3 : STD_LOGIC ;
COMPONENT fulladd
PORT ( Cin, x, y : IN STD_LOGIC ;
s, Cout : OUT STD_LOGIC ) ;
END COMPONENT ;
BEGIN
stage0: fulladd PORT MAP ( Cin, x0, y0, s0, c1 ) ;
stage1: fulladd PORT MAP ( c1, x1, y1, s1, c2 ) ;
stage2: fulladd PORT MAP ( c2, x2, y2, s2, c3 ) ;
stage3: fulladd PORT MAP (
Cin => c3, Cout => Cout, x => x3, y => y3, s => s3 ) ;
Rysunek 5.22 4-bitowy sumator
END Structure ;
reprezentowany w języku VHDL
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
PACKAGE fulladd_package IS
COMPONENT fulladd
PORT ( Cin, x, y : IN STD_LOGIC ;
s, Cout : OUT STD_LOGIC ) ;
END COMPONENT ;
END fulladd_package ;
Rysunek 5.23 Deklaracja pakietu
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
USE work.fulladd_package.all ;
ENTITY adder4 IS
PORT ( Cin : IN STD_LOGIC ;
x3, x2, x1, x0 : IN STD_LOGIC ;
y3, y2, y1, y0 : IN STD_LOGIC ;
s3, s2, s1, s0 : OUT STD_LOGIC ;
Cout : OUT STD_LOGIC ) ;
END adder4 ;
ARCHITECTURE Structure OF adder4 IS
SIGNAL c1, c2, c3 : STD_LOGIC ;
BEGIN
stage0: fulladd PORT MAP ( Cin, x0, y0, s0, c1 ) ;
stage1: fulladd PORT MAP ( c1, x1, y1, s1, c2 ) ;
stage2: fulladd PORT MAP ( c2, x2, y2, s2, c3 ) ;
stage3: fulladd PORT MAP (
Cin => c3, Cout => Cout, x => x3, y => y3, s => s3 ) ;
END Structure ;
Rysunek 5.24 4-bitowy sumator reprezentowany jako pakiet w języku VHDL
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
Reprezentacja liczb za pomocą języka VHDL
SIGNAL C : STD_LOGIC_VECTOR(1 TO 3) ;
C(1) MSB
C(3) LSB
Podstawienie C <=  100
oznacza C(1) = 1, C(2) = 0, C(3) = 0
SIGNAL X : STD_LOGIC_VECTOR(3 TO 0) ;
X(3) MSB
X(0) LSB
Podstawienie X <=  1100
oznacza X(3) = 1, X(2) = 1, X(1) = 0, X(0) = 0
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
USE work.fulladd_package.all ;
ENTITY adder4 IS
PORT ( Cin : IN STD_LOGIC ;
X, Y : IN STD_LOGIC_VECTOR(3 DOWNTO 0) ;
S : OUT STD_LOGIC_VECTOR(3 DOWNTO 0) ;
Cout : OUT STD_LOGIC ) ;
END adder4 ;
ARCHITECTURE Structure OF adder4 IS
SIGNAL C : STD_LOGIC_VECTOR(1 TO 3) ;
BEGIN
stage0: fulladd PORT MAP ( Cin, X(0), Y(0), S(0), C(1) ) ;
stage1: fulladd PORT MAP ( C(1), X(1), Y(1), S(1), C(2) ) ;
stage2: fulladd PORT MAP ( C(2), X(2), Y(2), S(2), C(3) ) ;
stage3: fulladd PORT MAP ( C(3), X(3), Y(3), S(3), Cout ) ;
END Structure ;
Rysunek 5.25 4-bitowy sumator reprezentowany za pomocÄ… wielobitowych
sygnałów w języku VHDL
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
USE ieee.std_logic_signed.all ;
ENTITY adder16 IS
PORT ( X, Y : IN STD_LOGIC_VECTOR(15 DOWNTO 0) ;
S : OUT STD_LOGIC_VECTOR(15 DOWNTO 0) ) ;
END adder16 ;
ARCHITECTURE Behavior OF adder16 IS
BEGIN
S <= X + Y ;
END Behavior ;
Rysunek 5.26 16-bitowy sumator reprezentowany w języku VHDL
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
USE ieee.std_logic_signed.all ;
ENTITY adder16 IS
PORT ( Cin : IN STD_LOGIC ;
X, Y : IN STD_LOGIC_VECTOR(15 DOWNTO 0) ;
S : OUT STD_LOGIC_VECTOR(15 DOWNTO 0) ;
Cout, Overflow : OUT STD_LOGIC ) ;
END adder16 ;
ARCHITECTURE Behavior OF adder16 IS
SIGNAL Sum : STD_LOGIC_VECTOR(16 DOWNTO 0) ;
BEGIN
Sum <= ('0' & X) + Y + Cin ;
S <= Sum(15 DOWNTO 0) ;
Cout <= Sum(16) ;
Overflow <= Sum(16) XOR X(15) XOR Y(15) XOR Sum(15) ;
END Behavior ;
Rysunek 5.27 16-bitowy sumator z przeniesieniem i przepełnieniem
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
USE ieee.std_logic_arith.all ;
ENTITY adder16 IS
PORT ( Cin : IN STD_LOGIC ;
X, Y : IN SIGNED(15 DOWNTO 0) ;
S : OUT SIGNED(15 DOWNTO 0) ;
Cout, Overflow : OUT STD_LOGIC ) ;
END adder16 ;
ARCHITECTURE Behavior OF adder16 IS
SIGNAL Sum : SIGNED(16 DOWNTO 0) ;
BEGIN
Sum <= ('0' & X) + Y + Cin ;
S <= Sum(15 DOWNTO 0) ;
Cout <= Sum(16) ;
Overflow <= Sum(16) XOR X(15) XOR Y(15) XOR Sum(15) ;
END Behavior ;
Rysunek 5.28 Zastosowanie pakietu arytmetycznego
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
ENTITY adder16 IS
PORT ( X, Y : IN INTEGER RANGE -32768 TO 32767 ;
S : OUT INTEGER RANGE -32768 TO 32767 ) ;
END adder16 ;
ARCHITECTURE Behavior OF adder16 IS
BEGIN
S <= X + Y ;
END Behavior ;
Rysunek 5.29 16-bitowy sumator z sygnałami typu INTEGER
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
5.7 MNOŻENIE LICZB
B = bn-1bn-2...b1b0
Mnożenie liczby całkowitej przez 2
2× B = bn-1bn-2...b1b00
Dzielenie liczby całkowitej przez 2
B ÷ 2 = bn-1bn-1bn-2...b2b1
B =101000 = -(24)10
B = 011000 = (24)10
B ÷ 2 =110100 = -(12)10
B ÷ 2 = 001100 = (12)10
B ÷ 4 =111010 = -(6)10
B ÷ 4 = 000110 = (6)10
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
Mnożna M
(14)
1 1 1 0
Mnożnik Q
(11)
1 0 1 1
1 1 1 0
1 1 1 0
0 0 0 0
1 1 1 0
Iloczyn P
(154)
1 0 0 1 1 0 1 0
(a) Mnożenie ręczne
Mnożna M
(11)
1 1 1 0
Mnożnik Q
(14)
× 1 0 1 1
Iloczyn czÄ…stkowy 0
1 1 1 0
+ 1 1 1 0
Iloczyn czÄ…stkowy 1
1 0 1 0 1
+ 0 0 0 0
Iloczyn czÄ…stkowy 2
0 1 0 1 0
+ 1 1 1 0
Iloczyn P
(154)
1 0 0 1 1 0 1 0
Rysunek 5.30 Mnożenie liczb
(b) Mnożenie komputerowe
całkowitych dodatnich
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
M = m3m2m1m0
Q = q3q2q1q0
PP0 = m3q0 m2q0 m1q0 m0q0
PP0 : 0 pp03 pp02 pp01 pp00
+ m3q1 m2q1 m1q1 m0q1 0
PP1: pp14 pp13 pp12 pp11 pp10
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
m 3 m 2 m 1 m 0
0
q 0
0
PP1
q 1
q 2
0
PP2
q 3
0
p 7 p 6 p 5 p 4 p 3 p 2 p 1 p 0
(a) Struktura układu
m k + 1
m k
Bit PPi
m k
q 0
q 1 q j
c out c out
c in c in
FA FA
(b) Układ z górnego wiersza (c) Układ z dolnych wierszy
Rysunek 5.31 Układ mnożący 4 x 4
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
Mnożna M (+14) 0 1 1 1 0
×
Mnożnik Q (+11) 0 1 0 1 1
Iloczyn czÄ…stkowy 0 0 0 0 1 1 1 0
+ 0 0 1 1 1 0
Iloczyn czÄ…stkowy 1 0 0 1 0 1 0 1
(a) Dodatnia mnożna
+ 0 0 0 0 0 0
Iloczyn czÄ…stkowy 2 0 0 0 1 0 1 0
+ 0 0 1 1 1 0
Iloczyn czÄ…stkowy 3 0 0 1 0 0 1 1
+ 0 0 0 0 0 0
Iloczyn P (+154)
0 0 1 0 0 1 1 0 1 0
Mnożna M ( 14) 1 0 0 1 0
×
Mnożnik Q
(+11) 0 1 0 1 1
Iloczyn czÄ…stkowy 0 1 1 1 0 0 1 0
+ 1 1 0 0 1 0
Iloczyn czÄ…stkowy 1 1 1 0 1 0 1 1
+ 0 0 0 0 0 0
Iloczyn czÄ…stkowy 2 1 1 1 0 1 0 1
+ 1 1 0 0 1 0
Iloczyn czÄ…stkowy 3 1 1 0 1 1 0 0
+ 0 0 0 0 0 0

Iloczyn P ( 154)
1 1 0 1 1 0 0 1 1 0
(b) Ujemna mnożna
Rysunek 5.34 Mnożenie liczb całkowitych
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
5.8 LICZBY RZECZYWISTE STAAOPRZECINKOWE
B = bn-1bn-2Lb1b0.b-1b-2Lbk
n-1
V (B) =
"b Å" 2i
i
i=-k
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
5.8 LICZBY RZECZYWISTE ZMIENNOPRZECINKOWE
mantysa Å" RwykÅ‚adnik
32 bity
S E M
znak
8-bitów 23 bity mantysy
0 oznacza
+
wykładnika
1 oznacza

wykładnik = E  127
wartość = Ä…1.M·2E  127
(a) Pojedyncza precyzja
64 bity
SM
E
znak
11-bitów 52 bity mantysy
wykładnika
wartość = Ä…1.M·2E  1023
wykładnik = E  1023
(b) Podwójna precyzja
Rysunek 5.35 Formaty zmiennoprzecinkowe w standardzie IEEE
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
5.9 REPREZENTACJA CYFR DZIESITNYCH W KODZIE BINARNYM BCD
Cyfry w kodzie BCD
cyfra dziesiętna kod BCD
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
X
0 1 1 1 7 X 1 0 0 0 8
+ Y + 0 1 0 1 + 5 + Y + 1 0 0 1 + 9
Z 1 1 0 0 12 Z 1 0 0 0 1 17
+ +
0 1 1 0 0 1 1 0
przeniesienie
przeniesienie
1 0 0 1 0 1 0 1 1 1
S = 7
S = 2
Rysunek 5.36 Dodawanie cyfr w kodzie BCD
Z = X +Y
Jeżeli Z d" 9 to S = Z i przeniesienie = 0
Jeżeli
Z > 9 to S = Z + 6 i przeniesienie =1
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
X Y
4-bitowy sumator c in
przeniesienie
Z
Czy suma > 9
6 0
MUX
wybierz
c out
4-bitowy sumator
0
S
Rysunek 5.37 Schemat blokowy 1-cyfrowego sumatora BCD
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
LIBRARY ieee ;
USE ieee.std_logic_1164.all ;
USE ieee.std_logic_unsigned.all ;
ENTITY BCD IS
PORT ( X, Y : IN STD_LOGIC_VECTOR(3 DOWNTO 0) ;
S : OUT STD_LOGIC_VECTOR(4 DOWNTO 0) ) ;
END BCD ;
ARCHITECTURE Behavior OF BCD IS
SIGNAL Z : STD_LOGIC_VECTOR(4 DOWNTO 0) ;
SIGNAL Adjust : STD_LOGIC ;
BEGIN
Z <= ('0' & X) + Y ;
Adjust <= '1' WHEN Z > 9 ELSE '0' ;
S <= Z WHEN (Adjust = '0') ELSE Z + 6 ;
END Behavior ;
Rysunek 5.38 1-cyfrowy sumator BCD reprezentowany w języku VHDL
5. REPREZENTACJA LICZB
I UKAADY ARYTMETYCZNE
Rysunek 5.39 Badania symulacyjne sumatora BCD


Wyszukiwarka

Podobne podstrony:
R5
Szybko i wściekle Fast & Furious (2009) DVDRip R5 XviD
R5
Water for Elephants [2011] R5
Inwazja Bitwa o Los Angeles Battle Los Angeles 2011 R5 XViD IMAGiNE
Just Go With It[2011]R5 XviD ExtraTorrentRG
r5 marzec śmiercionośna peleryna siewcy śmierci
Agent XXL Rodzinny Interes Big Mommas Like Father, Like Son (2011) R5 XviD
C1 R5 OK
Initial Configs r5
R5
Niepowstrzymany Unstoppable 2010 R5 CaM AUDIO Xvid Noir
r5 1 3
Mr Bones 2 Back from the Past (2009) R5 XviD LAP
koparko Å‚adowarka KOMATSU WB 93 R5
Obcy na poddaszu Aliens In The Attic 2009 R5 Xvid {1337x} Noir

więcej podobnych podstron