Академический Документы
Профессиональный Документы
Культура Документы
Dosen :
Andi Hasad
http://andihasad.wordpress.com
TEKNIK ELEKTRO
UNIVERSITAS ISLAM 45
BEKASI
Topic 4
Arithmetic Circuits
Peter Cheung
Department of Electrical & Electronic Engineering
Imperial College London
URL: www.ee.imperial.ac.uk/pcheung/
E-mail: p.cheung@imperial.ac.uk
PYKC 21-Jan-08
Topic 4 Slide 1
PYKC 21-Jan-08
x
xi
Shift
Carry
FF
yi
ci+1
Clock
FA
ci
Shift
si
y31
FA
s31
x1
c31
. . .
c2
y1
FA
x0
c1
s1
(b) Ripple-carry adder.
PYKC 21-Jan-08
Topic 4 Slide 2
Topic 4 Slide 3
PYKC 21-Jan-08
y0
FA
c0
cin
s0
Source: Parhami
Topic 4 Slide 4
yk1
FA
cout
sk1
sk
ck1
xk-2
yk2
FA
x1
ck2
. . .
c2
sk2
y1
x0
c1
FA
s1
cout
Overflow
y0
Negative
c0
FA
Zero
cin
s k2
s k1
s1
s0
s0
Source: Parhami
PYKC 21-Jan-08
y0 x0
y1 x1
yk1 xk1 yk2 xk2
c k1
c
ck
c k2
c
... 2 FA 1 FA c 0
FA
FA
cin
Topic 4 Slide 5
PYKC 21-Jan-08
Source: Parhami
Topic 4 Slide 6
Saturating Adders
Saturating (saturation) arithmetic:
x3 y3
x2 y2
x1 y1
x0 y0
cin
...
s3
Saturation value
Source: Parhami
PYKC 21-Jan-08
s1
s0
0
1
s2
Topic 4 Slide 7
Topic 4 Slide 8
Radix r
is 1 iff xi + yi r
is 1 iff xi + yi = r 1
Binary
xi yi
xi yi
xi yi ci
g [i,i+3] = gi+3 + gi+2 pi+3 + gi+1 pi+2 pi+3 + gi pi+1 pi+2 pi+3
p [i,i+3] = pi pi+1 pi+2 pi+3
ci+2
ci+3
The carry recurrence can be unrolled to obtain each carry signal directly from
inputs, rather than through propagation
ci+1
ci
p [i,i+3]
g [i,i+3]
Source: Parhami
PYKC 21-Jan-08
Topic 4 Slide 9
pi+3
gi+3
p3
g3
j2
j3
Four-bit
adder
pi+2
g2
g i+2
g1
p0
c1
g0
PYKC 21-Jan-08
gi+1
pi
ci+1
g p
pi+1
ci+2
c0
c j 1+1
c j 2+1
p2
p1
c2
i2
ci
i0
i1
g p
c j 0+1
g p
g p
gi
Source: Parhami
Topic 4 Slide 11
j0
j1
i3
ci+3
c3
Topic 4 Slide 10
p [i,i+3]
g [i,i+3]
Four-bit
lookahead
carry generator.
c4
Source: Parhami
PYKC 21-Jan-08
PYKC 21-Jan-08
Source: Parhami
Topic 4 Slide 12
Carry-Select Adders
k -1
k /2
k /2-bit adder
c out
k /2-bit adder
k/2+1
1
Mux
0
1
k /2-bit adder
k/2+1
k -1
3k /4
c in
k /4-bit adder
k/4+1
k/2
c k/2
Mux
Low k /2 bits
Tselect-add(k) = Tadd(k/2) + 1
k/4
k /4-bit adder
1
k/4
k/4+1
k /4-bit adder
k/4+1
Mux
Mux
c in
k/4
c k/4
k/4
c k/2
Middle k /4 bits
Low k /4 bits
Topic 4 Slide 13
Source: Parhami
PYKC 21-Jan-08
Topic 4 Slide 14
k /4-bit adder
k /4 - 1
0
k/2+1
k /4
k/2
High k /2 bits
k /2 - 1
k /2
0
k/4+1
PYKC 21-Jan-08
3k /4 - 1
0
Source: Sacristan
PYKC 21-Jan-08
Topic 4 Slide 15
PYKC 21-Jan-08
Topic 4 Slide 16
Source: Sacristan
PYKC 21-Jan-08
Topic 4 Slide 17
Source: Sacristan
PYKC 21-Jan-08
Topic 4 Slide 18
Remember that both Altera and Xilinx FPGAs have embedded multipliers with
accumulators etc.
This part of the lecture will look at some of the common multiplier hardware
(i.e. what such embedded multiplier circuits might look like).
We will also consider application of FPGA embedded multiplier for FIR Filter
implementations.
Topics to cover are:
Basic multipliers
Booth recoded multipliers
Array multipliers
FIR Filter Compiler
Source: Sacristan
PYKC 21-Jan-08
Topic 4 Slide 19
PYKC 21-Jan-08
Topic 4 Slide 20
An example
Multiplicand
Multiplier
Product (a x)
p2k1p2k2
ak1ak2 . . . a1a0
xk1xk2 . . . x1x0
. . . p3p2p1p0
x0a
x1a
x2a
x3a
Multiplicand
Multiplier
20
21
22
23
Partial
pro ducts
bit-matrix
Product
Source: Parhami
PYKC 21-Jan-08
Topic 4 Slide 21
PYKC 21-Jan-08
Topic 4 Slide 22
S hift
Adders
carry-out
Multiplier x
Adders sum
k
S hift
Multiplica nd a
0
0
Mux
xj a
c out
PYKC 21-Jan-08
To mux control
Adder
k 1
To add er
xj
k 1
Unuse d
part o f the
multiplier x
Source: Parhami
Topic 4 Slide 23
Source: Parhami
PYKC 21-Jan-08
Topic 4 Slide 24
PYKC 21-Jan-08
Topic 4 Slide 25
PYKC 21-Jan-08
PYKC 21-Jan-08
Topic 4 Slide 26
Topic 4 Slide 27
PYKC 21-Jan-08
Topic 4 Slide 28
2s complement rep of x
PYKC 21-Jan-08
Topic 4 Slide 29
PYKC 21-Jan-08
Topic 4 Slide 30
+/-
BA
PYKC 21-Jan-08
Topic 4 Slide 31
PYKC 21-Jan-08
Topic 4 Slide 32
PYKC 21-Jan-08
Topic 4 Slide 33
PYKC 21-Jan-08
PYKC 21-Jan-08
Topic 4 Slide 34
Topic 4 Slide 35
PYKC 21-Jan-08
Topic 4 Slide 36
Array Multiplier
PYKC 21-Jan-08
Topic 4 Slide 37
PYKC 21-Jan-08
Topic 4 Slide 38
Source:
PYKC 21-Jan-08
Topic 4 Slide 39
PYKC 21-Jan-08
Topic 4 Slide 40
Source:
PYKC 21-Jan-08
Topic 4 Slide 41
Source:
PYKC 21-Jan-08
PYKC 21-Jan-08
Topic 4 Slide 43
Topic 4 Slide 42
PYKC 21-Jan-08
Topic 4 Slide 44
Source:
PYKC 21-Jan-08
Topic 4 Slide 45
Source:
PYKC 21-Jan-08
Source:
PYKC 21-Jan-08
Topic 4 Slide 46
Topic 4 Slide 47
Source:
PYKC 21-Jan-08
Topic 4 Slide 48
Floating-Point Numbers
Small number
Large number
Floating-point numbers
x = s be
or
significand baseexponent
PYKC 21-Jan-08
Source: Parhami
Topic 4 Slide 49
Sign
m ax
Spars er
O ve rflow
regio n
m in
Dens er
m in +
Positive n um b ers
FLP +
Dens er
Und erflo w
exam ple
8 bits ,
bias = 127,
126 to 127
Sign Ex pone nt
m ax +
11 bits ,
bias = 1023,
1022 to 1023
Spars er
Und erflo w
regio ns
M idway
exam ple
Significand:
Represented as a fixed-point number
O ve rflow
regio n
Typical
exam ple
O ve rflow
exam ple
Topic 4 Slide 51
Significa nd
Source: Parhami
Source: Parhami
PYKC 21-Jan-08
Topic 4 Slide 50
Expon ent:
Signed integer,
often represented
as unsigned value
by adding a bias
0:+
1:
PYKC 21-Jan-08
PYKC 21-Jan-08
Topic 4 Slide 52
Exponent Encoding
Feature
Single / Short
Double / Long
Source: Parhami
PYKC 21-Jan-08
Topic 4 Slide 53
Extra bits to be
rounded off
Rounded s um
f = 0: Representation of 0
f 0: Representation of denormals,
0.f 2126
+1
+127
Exponent encoding in
11 bits for the double/long
(64-bit) format is similar
PYKC 21-Jan-08
f = 0: Representation of
f 0: Representation of NaNs
max
Sparser
min
Denser
O ve rflow
regio n
min +
Denser
max +
Midway
example
Sparser
Und erflo w
regio ns
O ve rflow
regio n
Und erflo w
example
O ve rflow
example
Typical
example
Topic 4 Slide 54
Like signs:
Possible 1-position
normalizing right shift
Different signs:
Possible left shift by
many positions
Overflow/underflow
during addition or
normalization
Topic 4 Slide 55
Opera nds
Unpack
Signs Exponents
Significands
Add/
Sub
Mu x
Source: Parhami
PYKC 21-Jan-08
126
254 255
FE FF
shift:
FP Adder/Sub
Operand with
sm aller exponent
to be preshifted
1
01
1.f 2e
Floating-Point Adders/Subtractors
Example:
Numbers to be added:
x = 2 5 1.00101101
y = 2 1 1.11101101
0
00
Sub
Align significan ds
c out
Control
& sign
logic
Add
c in
Normalize
Rou nd an d
selective comple ment
Add
Sign
Normalize
Exponent
Significand
Pack
s
x i+2 x i+1 x i
. . .
31 30
Shift amount
5
32-to-1 Mux
Enable
x i+7
x i+6
x i+5
x i+4
x i+3
x i+1
xi
yi
Four-stage
combinational
shifter for
preshifting
an operand
by 0 to 15 bits.
p
p
p
p
Source: Parhami
p
p
p
p
...
...
...
...
y i+8
y i+7
y i+6
y i+5
y i+4
y i+3
y i+2
y i+1
yi
p
p
p
p
g
g
a
a
a
a
g
g
a
a
g
g
...
...
...
...
a
a
g
g
a
a
g
g
Topic 4 Slide 57
Floating-Point Multipliers
g
p
a
p
...
...
...
...
Adjust
Exponent
Add
Exponents
Adjust
Exponent
Significand
Adder
Predict
Leading
0s/1s
Adjust
Exponent
Shift amount
Post-Shifter
Source: Parhami
E3.05 Digital System Design
Topic 4 Slide 58
Round
Adjust
Exponent
Normalize
Pack
Product
E3.05 Digital System Design
Post-Shifter
Normalize
Multiply
Significands
Speed considerations
Many multipliers produce the lower half of
the product (rounding info) early
Unpack
XOR
Shift amount
Floating-point operands
PYKC 21-Jan-08
p
p
p
p
Count
Leading
0s/1s
MSB
PYKC 21-Jan-08
Significand
Adder
LSB
4-Bit
Shift
Amount
Source: Parhami
Topic 4 Slide 59
PYKC 21-Jan-08
Topic 4 Slide 60
References
Davis Justin. 2006. High-Speed Digital System Design, Morgan &
Claypool Publishers series, USA
Johnson, Graham. High-Speed Digital Design A Handbook of Black
Magic, Prentice Hall, New Jersey, USA
Hasad Andi. 2011, Materi Kuliah Perancangan Sistem Digital, Teknik
Elektro, UNISMA, Bekasi
Wakerly John F. 2005. Digital Design, Principles & Practices, 4th Edition,
Prentice Hall, USA
Wolf
Wayne. 2004. FPGA-Based System Design, Prentice-Hall
Publishers, Inc.