0% found this document useful (0 votes)
0 views76 pages

CH 5

The document discusses various division methods in digital arithmetic, focusing on the digit-recurrence method. It outlines the definitions, assumptions, and implementation steps for both integer and fractional division, including error bounds and quotient conversion techniques. Additionally, it highlights factors affecting cost and execution time, such as radix and quotient-digit selection.

Uploaded by

dltailieu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
0 views76 pages

CH 5

The document discusses various division methods in digital arithmetic, focusing on the digit-recurrence method. It outlines the definitions, assumptions, and implementation steps for both integer and fractional division, including error bounds and quotient conversion techniques. Additionally, it highlights factors affecting cost and execution time, such as radix and quotient-digit selection.

Uploaded by

dltailieu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 76

1

DIVISION BY DIGIT RECURRENCE

SEVERAL DIVISION METHODS:


• DIGIT-RECURRENCE METHOD – studied in this chapter
• MULTIPLICATIVE METHOD (Chapter 7)
• VARIOUS APPROXIMATION METHODS (power series expansion),
• SPECIAL METHODS SUCH AS CORDIC (Chapter 11) AND CONTINUED
PRODUCT METHODS.
IMPLEMENTATIONS:
• SEQUENTIAL
• COMBINATIONAL
1. PIPELINED
2. NONPIPELINED
• COMBINATIONAL/SEQUENTIAL

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


2
DEFINITION AND NOTATION

x = q · d + rem

|rem| < |d| · ulp and sign(rem) = sign(x)


DIVIDEND x
DIVISOR d
QUOTIENT q
REMAINDER rem
• INTEGER QUOTIENT: ulp = 1,
• FRACTIONAL QUOTIENT: ulp = r−n
TWO TYPES OF DIVISION OPERATION:
1. INTEGER DIVISION, WITH INTEGER OPERANDS AND RESULT
USUALLY REQUIRES AN EXACT REMAINDER
2. FRACTIONAL DIVISION
TO AVOID QUOTIENT OVERFLOW: x < d
QUOTIENT ROUNDED, WHICH CAN RESULT IN A NEGATIVE REMAIN-
DER
Digital Arithmetic – Ercegovac/Lang 2003 5 – Division
3
FRACTIONAL DIVISION - ASSUMPTIONS

• OPERANDS/RESULT IN SIGN-AND-MAGNITUDE FORMAT =⇒CONSIDER


MAGNITUDES ONLY

1/2 ≤ d < 1; x < d; 0 < q < 1

• FOR SIMPLER SELECTION: qj ∈ Da = {−a, −a + 1, . . . , −1, 0, 1, . . . , a −


1, a}
• REDUNDANCY FACTOR
a 1
ρ = , <ρ≤1
r−1 2

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


4
RECURRENCE

• QUOTIENT AFTER j STEPS: q[j] = q[0] + Pji=1 qir−i


• FINAL QUOTIENT: q = q[n] = q[0] + Pni=1 qir−i
• FINAL QUOTIENT ERROR BOUND: 0 ≤ ǫq = xd − q < r−n
• ERROR AT STEP j:
x n
X −i a
ǫ[j] = − q[j] ≤ ǫ[n] + max(qi)r = ǫ[n] + (r−j − r−n)
d i=j+1 r−1
• FOR CONVERGENCE: ǫ[j] ≤ ρr−j
• FOR SIMPLER SELECTION, ALLOW NEGATIVE ERRORS
x
|ǫ[j]| = | − q[j]| ≤ ρr−j
d
• ELIMINATE DIVISION FROM ERROR BOUND: |x − dq[j]| ≤ ρdr−j

• DEFINE RESIDUAL (PARTIAL REMAINDER): w[j] = rj (x − dq[j])


• RESIDUAL RECURRENCE: w[j + 1] = rw[j] − dqj+1 w[0] = x

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


5
cont.

• BOUND ON w[j]: |w[j]| ≤ ρd

• SELECT QUOTIENT DIGIT TO KEEP w[j + 1] BOUNDED:

qj+1 = SEL(rw[j], d)

• REDUNDANCY IN QUOTIENT-DIGIT SET ALLOWS


c
qj+1 = SEL(y,
c d)

WHERE yc IS TRUNCATED rw[j], etc.

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


6
IMPLEMENTATION OF DIVISION STEP

1. ONE DIGIT ARITHMETIC LEFT-SHIFT OF w[j] TO PRODUCE rw[j];

2. DETERMINATION OF THE QUOTIENT DIGIT qj+1


BY THE QUOTIENT-DIGIT SELECTION FUNCTION;

3. GENERATION OF THE DIVISOR MULTIPLE d × qj+1; and

4. SUBTRACTION OF dqj+1 from rw[j].


5. UPDATE OF THE QUOTIENT q[j] TO q[j + 1] BY THE ON-THE-FLY
CONVERSION

q[j + 1] = CON V (q[j], qj+1)

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


7

w[j] - present residual

ARITHMETIC LEFT SHIFT d - divisor

rw[j] - shifted residual


y d

SEL qj+1 dqj+1 subtraction


selection
qj+1
quotient update
DIVISOR MULTIPLE
(on-the-fly)
GENERATION
recurrence step time
rw[j] dqj+1
(b)
SUBTRACTION

w[j+1] - next residual

QUOTIENT CONVERSION qj+1

(a) q[j+1]

Figure 5.1: (a) COMPONENTS OF A DIVISION STEP. (b) TIMING.

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


8
MAIN FACTORS AFFECTING COST AND EXECUTION TIME

• RADIX r
• QUOTIENT-DIGIT SET
1. CANONICAL: 0 ≤ qj ≤ r − 1
2. REDUNDANT: qj ∈ Da = {−a, −a + 1, . . . , −1, 0, 1, . . . , a − 1, a}
a 1
• REDUNDANCY FACTOR: ρ = r−1
, ρ> 2
• REPRESENTATION OF RESIDUAL:
1. NONREDUNDANT (e.g., 2’s complement)
2. REDUNDANT: carry-save, signed-digit

• QUOTIENT-DIGIT SELECTION FUNCTION

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


9
INITIALIZATION AND TERMINATION

Initialization:
• w[0] = x − dq[0] and |w[0]| ≤ ρd. Options:
– Make q[0] = 0 and
∗ For ρ = 1 we make w[0] = x/2.
∗ For 1/2 < ρ < 1 we make w[0] = x/4
Compensated in the termination step
– Make q[0] = 1 and w[0] = x − d. Applicable for ρ < 1 because q > 1 + ρ
not allowed.
Termination:
• QUOTIENT:



 q[N ] if w[N ] ≥ 0
q = 
q[N ] − r−N if w[N ] < 0
N – number of iterations
If dividend shifted in initialization - shift quotient (extra iteration)

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


10
ON-THE-FLY QUOTIENT CONVERSION

• j MS DIGITS OF CONVERTED QUOTIENT


j
X
Q[j] = qir−i
i=1

• UPDATE
Q[j + 1] = Q[j] + qj+1r−(j+1)

• SINCE qj+1 CAN BE NEGATIVE:



Q[j] + qj+1r−(j+1)


 if qj+1 ≥ 0
Q[j + 1] = 
Q[j] − r−j + (r − |qj+1|)r−(j+1) if qj+1 < 0

• DISADVANTAGE: SUBTRACTION Q[j] − r−j


REQUIRES THE PROPAGATION OF A BORROW – SLOW

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


11
ON-THE-FLY CONVERSION (cont.)

• DEFINE ANOTHER FORM QM [j]


QM [j] = Q[j] − r−j

• NEW CONVERSION ALGORITHM IS



Q[j] + qj+1r−(j+1)


 if qj+1 ≥ 0
Q[j + 1] = 
QM [j] + (r − |qj+1|)r−(j+1) if qj+1 < 0
• SUBTRACTION REPLACED BY LOADING THE FORM QM [j]
• UPDATE FORM QM [j] AS FOLLOWS:

QM [j + 1] = Q[j + 1] − r−(j+1)

 Q[j] + (qj+1 − 1)r
−(j+1)

 if qj+1 > 0
= 
QM [j] + ((r − 1) − |qj+1|)r−(j+1) if qj+1 ≤ 0
• ALL ADDITIONS ARE CONCATENATIONS

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


12
ON-THE-FLY CONVERSION ALGORITHM




 (Q[j], qj+1) if qj+1 ≥ 0
Q[j + 1] = 
(QM [j], (r − |qj+1|)) if qj+1 < 0

(Q[j], qj+1 − 1)


 if qj+1 > 0
QM [j + 1] = 
(QM [j], ((r − 1) − |qj+1|)) if qj+1 ≤ 0

INITIAL CONDITIONS Q[0] = QM [0] = 0 (for a positive quotient)

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


13
EXAMPLE OF RADIX-2 CONVERSION

j qj Q[j] QM [j]
0 0 0
1 1 0.1 0.0
2 1 0.11 0.10
3 0 0.110 0.101
4 1 0.1101 0.1100
5 -1 0.11001 0.11000
6 0 0.110010 0.110001
7 0 0.1100100 0.1100011
8 -1 0.11000111 0.11000110
9 1 0.110001111 0.110001110
10 0 0.1100011110 0.1100011101
11 1 0.11000111101 0.11000111100
12 0 0.110001111010 0.110001111001

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


14
IMPLEMENTATION OF THE CONVERSION

Q QM load
select
2-1 MUX

Qin

LOAD & SHIFT-IN


Q REG

CONTROL
q Q qj+1

QM load
select
2-1 MUX

QMin
QM REG

QM

Figure 5.2: Implementation of on-the-fly conversion.


shif t Q with insert (Qin)


 if Cshif tQ = 1
Q ← 
shif t QM with insert (Qin) if CloadQ = 1



 shif t QM with insert (QMin) if Cshif tQM = 1
QM ← 
shif t Q with insert (QMin) if CloadQM = 1

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


15
cont.




 qj+1 if qj+1 ≥ 0
Qin = 
r − |qj+1| if qj+1 < 0



 qj+1 − 1 if qj+1 > 0
QMin = 
(r − 1) − |qj+1| if qj+1 ≤ 0

′ ′
REGISTER CONTROL SIGNALS: CloadQ = Cshif tQ and CloadQM = Cshif tQM

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


16
EXAMPLE OF RADIX-4 CONVERSION

qj+1 Qin Cshif tQ Q[j + 1] QMin Cshif tQM QM [j + 1]


3 3 1 (Q[j], 3) 2 0 (Q[j], 2)
2 2 1 (Q[j], 2) 1 0 (Q[j], 1)
1 1 1 (Q[j], 1) 0 0 (Q[j], 0)
0 0 1 (Q[j], 0) 3 1 (QM [j], 3)
-1 3 0 (QM [j], 3) 2 1 (QM [j], 2)
-2 2 0 (QM [j], 2) 1 1 (QM [j], 1)
-3 1 0 (QM [j], 1) 0 1 (QM [j], 0)

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


17
x

INITIAL STEP

w[0]

RESIDUAL REG
x
w[j]

d INITIAL STEP
RECURRENCE
STEP w[0]
q[j+1] w[j+1]

w[N] RESIDUAL REG

TERMINAL STEP w[ik]

d qik+1
q REC. STEP
(a)
w[ik+1]

ON-THE-FLY CONVERTER
qik+2

& TERMINAL STEP


COMBINATIONAL
x REC. STEP
w[ik+2]
INITIAL STEP

w[0]
d q1
REC. STEP
w[1]
ON-THE-FLY CONVERTER

q(i+1)k
q2
& TERMINAL STEP

REC. STEP
COMBINATIONAL

REC. STEP
w[2] w[(i+1)k]

w[N] q
(c)

qN
REC. STEP
w[N]

(b) q

Figure 5.3: DIVISION IMPLEMENTATION: (a) TOTALLY SEQUENTIAL. (b) TOTALLY COMBINATIONAL. (c) COMBINED
IMPLEMENTATION.
Digital Arithmetic – Ercegovac/Lang 2003 5 – Division
18
EXAMPLES OF ALGORITHMS AND IMPLEMENTATIONS

• CELLS: delay function of the load; delay and area in terms of 2-NAND.
• DEGREE OF OPTIMIZATION: the same modules have been used in all de-
signs.
• INTERCONNECTIONS NOT INCLUDED: not considered the delay, area nor
load of interconnections.
• EXECUTION TIME AND THE AREA FOR 53-BIT OPERANDS AND RE-
SULT
• INCLUDED DELAY AND AREA OF REGISTERS

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


19
SCHEMES COMPARED

r2 Scheme Radix-2 with carry-save residual.


r4 Scheme Radix-4 with a = 2 and carry-save residual.
r8 Scheme Radix-8 with a = 7 and carry-save residual.
r16over Scheme Radix-16 with two overlapped radix-4 stages.
r512 Scheme Radix-512 with a = 511, carry-save residual, scaling, and quotient-
digit selection by rounding.

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


20

2-input MUX 3-input MUX: [3:2] MODULE a b c a b c


Delay: 1.6 (FULL ADDER)
Area: 4.4
HA
4-input MUX:
g’ p
Delay: 1.8 p
Area: 5.6 g’ HA*

Delay: 1.4 vci+1 vsi


(a)
Area: 3.0
Delays:
a,b to vsi: 4.2
BUFFER REGISTER CELL
c to vsi: 2.2
D Q
a,b to vci+1 : 3.8
Delay: 1.8 Delay: 4.0 vci+1 vsi
Area:2.6 c to vci+1: 2.0
CK Area: 4.0
Area: 6.7
(b) SET (c)

a b b c c a a b c d
[4:2] MODULE

a b c d

ti+1 [4:2]
ti
Module
vci
vci+1 vsi ti+1 d ti
Delays:
0 1
to ti+1: 1.6 MUX

to vci+1: 5.6 vci


to vsi: 6.0
vci+1 (d) vsi
Area: 15.5

Figure 5.4: Basic modules: (a) Multiplexers. (b) Buffer and register cell. (c) Full-adder. (d) [4:2] module.

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


21
RADIX-2 DIVISION WITH CS RESIDUAL

• REDUNDANT RESIDUAL w[j] = (W C[j], W S[j])


1. [Initialize]
W S[0] ← x/2; W C[0] ← 0; q0 ← 0;Q[-1]=0
2. [Recurrence]
for j = 0 . . . n + 1 (n + 2 iterations because of initialization and guard bit)
qj+1 ← SEL(y); c

(W C[j + 1], W S[j + 1]) ← CSADD(2W C[j], 2W S[j], −qj+1d);


Q[j] ← CON V ERT (Q[j − 1], qj )
end for
3. [T erminate]
If w[n + 2] < 0 then q = 2(CON V ERT (Q[n + 1], qn+2 − 1))
else q = 2(CON V ERT (Q[n + 1], qn+2))

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


22
RADIX-2 ALGORITHM (cont.)

• n is the precision in bits,


• SEL is the quotient-digit selection function:







1 if 0 ≤ yc ≤ 3/2

qj+1 = SEL(y)
c =



0 if y
c = −1/2


 −1 if −5/2 ≤ y
 c ≤ −1

The estimate yc has four bits (three integer bits and one fractional bit) of the
shifted residual in carry-save form,
• CSADD is carry-save addition
• −qj+1d is in 2’s complement form, and
• CON V ERT on-the-fly quotient conversion function

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


23

Dividend x = (0.10011111), divisor d = (0.11000101), scaled residual


2w[0] = 2(x/2) = x, qcomputed = q/2

2W S[0] = 000.10011111

2W C[0] = 000.00000001 y[0]
c = 0.5 q1 = 1
−q1d = 11.00111010
2W S[1] = 111.01001000
2W C[1] = 000.01101100 y[0]
c = −1 q2 = −1
−q2d = 00.11000101
2W S[2] = 111.11000010

2W C[2] = 001.00110001 y[1]
c = 0.5 q3 = 1
−q3d = 11.00111010
2W S[3] = 011.10010010

2W C[3] = 100.11001001 y[2]
c =0 q4 = 1
−q4d = 11.00111010
2W S[4] = 000.11000010
2W C[4] = 110.01101000 y[4]
c = −1.5 q5 = −1
−q5d = 00.11000101
* for 2’s complement of qj+1d
q = 2(.11̄111̄) = .1101
Digital Arithmetic – Ercegovac/Lang 2003 5 – Division
Figure 5.7: Example of radix-2 division with residual in carry-save form.
24
Divisor d WC[0] = 0 WC[j+1] WS[0] = x /2 WS[j+1]

Reg. D Reg. WC Reg. WS


2WC[j] 2WS[j] 4
d d 4
buffers
qj+1 2-1 MUX
2 qSEL
c b a
{d, 0, d} q- 2 qj+1 q+ q-
[3:2]
WS[j+1]
WC[j+1]
1 1 0
SZ; Convert
0 0 0
qj+1 -1 0 1
q
[3:2] adder

2.2
qSEL buff MUX HA* REG
6.8 1.8 1.4 4

HA

critical path Modules defined in Fig. 5.4

Figure 5.8: IMPLEMENTATION OF RADIX-2 SCHEME.

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


25
DELAY AND AREA OF RADIX-2 STAGE

element delay area


q-digit selection 6.8 50
buffers 1.8 5
MUX 1.4 160
CSA 2.2 360
registers (3) 4.0 650
Convert & Round (NC) 1360
Cycle time 16.2
Total area 2585
NC denotes a delay not in the critical path

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


26
RADIX-4 DIVISION WITH CS RESIDUAL

1. QUOTIENT DIGIT SET {-2,-1,0,1,2}


2. ρ < 1 initialize W S[0] ← x/4
3. THE NEXT RESIDUAL
(W C[j + 1], W S[j + 1]) ← CSADD(4W C[j], 4W S[j], −qj+1d)
4. QUOTIENT-DIGIT SELECTION DEPENDS ON ESTIMATES OF SHIFTED
RESIDUAL AND DIVISOR described in terms of SELECTION CONSTANTS
mk (i)

qj+1 = k if mk (i) ≤ ŷ < mk+1(i)

5. FINAL QUOTIENT = 4 x OBTAINED QUOTIENT

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


27
SELECTION CONSTANTS

• qj+1 = k if mk (i) ≤ ŷ < mk+1(i)


• i = 16dˆ and dˆ divisor truncated to the 4th fractional bit and
• ŷ is 4w[j] truncated to the 4th fractional bit.

i 8 9 10 11 12 13 14 15
m2(i)+ 12 14 15 16 18 20 20 24
m1(i)+ 4 4 4 4 6 6 8 8
m0(i)+ -4 -6 -6 -6 -8 -8 -8 -8
m−1(i)+ -13 -15 -16 -18 -20 -20 -22 -24
+: real value = shown value/16

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


28

Dividend x = (0.10101111), divisor d = (0.11000101) (i = 16(0.1100)2 = 12)


scaled residual 4w[0] = 4(x/4) = x, qcomputed = q/4

4W S[0]+ = 000.10101111
4W C[0]+ = 000.00000001 ∗
y[0]
c = 10/16 q1 = 1
−q1d+ = 11.00111010
W S[1] = 1.10010100
W C[1] = 0.01010110
4W S[1]+ = 110.01010000
4W C[1]+ = 001.01011000 y[1]
c = −6/16 q2 = 0
−q2d+ = 00.00000000
W S[2] = 1.00001000
W C[2] = 0.10100000
4W S[2]+ = 100.00100000
4W C[2]+ = 010.10000000 y[2]
c = −22/16 q3 = −2
−q3d+ = 01.10001010
w[3] = 0.00101010
* least-significant 1 for 2’s complement of qj+1d
+ only one integer bit used in the recurrence, because of the range of w[j + 1].
q[3] = .102̄4 = .0324
Digital Arithmetic – Ercegovac/Lang 2003 5 – Division
Figure 5.9: Example of radix-4 division with residual in carry-save form.(On-the-fly conversion and termination not shown)
29
DELAY AND AREA OF RADIX-4 STAGE

element delay area


q-digit selection 10.8 160
buffers 1.8 10
MUX 1.8 300
CSA 2.2 360
registers (3) 4.0 650
Convert & Round (NC) 1360
Cycle time 20.6
Total area 2840
NC denotes a delay not in the critical path

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


30
Divisor d WC[0]=0 WC[j+1] WS[0] = x /4 WS[j+1]

Reg. D Reg. WC Reg. WS


4WC[j] 4WS[j] 7
d d 7
buffers
qj+1 4-1 MUX 3
4 qSEL
{d}4
{2d, d, 0, d, 2d} c b a
(qj+1 < 0) 4
[3:2]
WS[j+1]
WC[j+1]
SZ; Convert
qj+1
q (q2+, q2-, q1+, q1-)
qj+1 = 0 coded as
(0, 0, 0, 0)
[3:2] adder

2.2
qSEL buff MUX HA* REG
10.8 1.8 1.8 4

HA

critical path Modules defined in Fig. 5.4

Figure 5.10: IMPLEMENTATION OF RADIX-4 SCHEME.


Digital Arithmetic – Ercegovac/Lang 2003 5 – Division
31
RADIX-8 DIVISION WITH CS RESIDUAL

• QUOTIENT DIGIT SET {-7, ..., 7} DECOMPOSED INTO

qH = {−8, −4, 0, 4, 8}
AND

qL = {−2, −1, 0, 1, 2}
element delay area
q-digit selection (qh) 12.2 610
buffers 1.8 20
MUXes 1.8 600
CSAh 2.2 360
CSAl 4.2 360
registers (3) 4.0 650
Convert & Round (NC) 1360
Cycle time 26.2
Total area 3960

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


32
Divisor d WC[0]=0 WC[j+1] WS[0]=x/2 WS[j+1]

Reg. D Reg. WC Reg. WS


8WC[j] 8WS[j] 8
d d 8
buffers
qH
j+1 4-1 MUX 3
4 qSEL
{d}4
{8d, 4d, 0, 4d, 8d}
(qH
j+1 < 0) 4 4
[3:2]
d d qj+1: qH
j+1 qLj+1
buffers
(decoded as
qLj+1 4-1 MUX in Fig. 5.10)
4

{2d, d, 0, d, 2d} (qLj+1 < 0)


[3:2]
WS[j+1]
WC[j+1]
SZ; Convert
(qH L
j+1,qj+1)

q
qH
j+1

2.2
qSEL buff MUX HA* HA REG
12.2 1.8 1.8 4
HA 4.2

qSEL buff MUX HA*

qLj+1

Modules defined in Fig. 5.4


critical path

Figure 5.11: Implementation of radix-8 scheme.


Digital Arithmetic – Ercegovac/Lang 2003 5 – Division
33
RADIX-16 DIVISION WITH TWO RADIX-4 OVERLAPPED STAGES

element delay area


CSA 4.2 220
q-digit selection 11.2 820
MUX 1.4
buffers 1.8 20
MUXes 1.8 600
CSA1 (NC) 360
CSA2 2.1 360
registers (3) 4.0 650
Convert & Round (NC) 1360
Cycle time 26.6
Total area 4390

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


34
Divisor d WC[0]=0 WC[j+2] WS[0]=x/4 WS[j+2]

Reg. D Reg. WC Reg. WS


d d 4WC[j] 4WS[j]
buffers
qj+1 4-1 MUX
4

{2d, d, 0, d, 2d}
[3:2] (qj+1 < 0)
d d
buffers WS[j+1] WC[j+1]

qj+2 4-1 MUX


4
4W[j+1]
{2d, d, 0, d, 2d}
[3:2] (qj+2 < 0)
WS[j+2] WC[j+2]

(a)
-2 -1 0. 1 2 3 4 5 6 7
4WS[j] x x x. x x x x x x x
{4W[j]}7
4WC[j] x x x. x x x x x x x

7 most 8 least
{4W[j]}7
{2d}7 {d}7 {d}7 {2d}7

8 least

7 most 8 8 8
3
{d}4 qSEL [3:2] [3:2] [3:2] [3:2]

7 7

qSEL qSEL qSEL qSEL qSEL

5-1 MUX

Conditional truncated
qj+1 qj+2 residuals
(b)

Figure 5.12: Implementation of radix-16 with radix-4 stages.

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


35

CSA2

qj+1
qSEL buff MUX CSA1 HA REG
12.2 1.8 1.8 4
qj+2
2.2
[3:2]8 qSEL MUX buff MUX HA*
4.2 11.2 1.4 1.8 1.8

Modules defined in Fig. 5.4


critical path

Figure 5.13: Critical path in radix-16 scheme.

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


36
RADIX-512 DIVISION WITH PRESCALING AND SELECTION BY
ROUNDING

Cycle 1 : COMPUTE M ≈ 1/d; compare d and x and set g


Cycle 2 : COMPUTE z = M d (in c-s form); v = 2−g x
Cycle 3 : INITIALIZE w[0] = M v (in c-s form); ASSIMILATE z;
Cycles 4 to 9 : ITERATE
qj+1 = round(ŷ); w[j + 1] = 512w[j] − qj+1z

Cycle 10 : CORRECTING AND ROUNDING.

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


37
RADIX-512 DIVISON (cont.)

• RECTANGULAR MULTIPLIER-ACCUMULATOR
• DELAY-AREA
element delay area
M-module (NC) 1800
MUX 1.4
recoder 6.0 70
buffer 1.8
MUX 1.8 3000
2 levels of 4-2 CSA 12.0 3100
registers(3) 4.0 650
Convert & Round (NC) 1360
Cycle time 27
Total area 9980

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


38
x
15 d
Module
{d}15 (Initialization not shown)
M

M z
scale/iterate
MUX MUX

Round &
Recode
8+8 53+9+5 = 67
qj+1 M ; qj+1
512w[j]
MULTIPLIER
- ACCUMULATOR
Md; Mx; 512w -qz

WC[j+1] 67 67 WS[j+1]

WC[j] WS[j]

2(10+2)

CPA

WC[j+1] WS[j+1]

8+8
SZ; CONVERT qj+1

Figure 5.14: Implementation of radix-512 scheme.


Digital Arithmetic – Ercegovac/Lang 2003 5 – Division
39
OVERALL COMPARISONS

Scheme r2 r4 r8 r16 (overlapped) r512


Cycle-time factor 1.0 1.3 1.6 1.6 1.7
Number of cycles† 57 29 20 15 10
Speedup 1.0 1.5 1.8 2.4 3.4
Area factor 1.0 1.1 1.5 1.7 3.9
†Correction: two cycles for radix-2, one cycle for other cases.

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


40
QUOTIENT-DIGIT SELECTION FUNCTION

Quotient-digit set:
qj+1 ∈ Da = {−a, −a + 1, . . . , −1, 0, 1, . . . , a − 1, a}
Redundancy factor:
a 1
ρ= , <ρ≤1
r−1 2
• TWO FUNDAMENTAL CONDITIONS FOR q-SELECTION
• CONTAINMENT – must guarantee bounded residual
• CONTINUITY – there must exist a valid choice of qj+1 in the range of shifted
residual

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


41
CONTAINMENT AND SELECTION INTERVALS

• RESIDUAL RECURRENCE
w[j + 1] = rw[j] − dqj+1 |w[j]| ≤ ρd

ρ = a/(r − 1) − a ≤ qj ≤ a
• SELECTION INTERVALS
• If rw[j] ∈ [Lk , Uk ] then qj+1 = k makes w[j + 1] bounded

Lk ≤ rw[j] ≤ Uk ⇒ ρd ≤ w[j + 1] = rw[j] − k · d ≤ ρd

• EXPRESSIONS FOR SELECTION INTERVALS


Uk = (k + ρ)d Lk = (k − ρ)d

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


42
ROBERTSON’S AND P-D DIAGRAMS

w[j+1]

ρd
-a -1 0 1 k a

-rρd rw[5] rρd


-ad -d d kd ad rw[j]
w[6]

-ρd
Lk Uk

(a)

Figure 5.16: ROBERTSON’S DIAGRAM

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


43
rw[j] Ua=rρd

k>0
Uk
selection region
for qj+1=k Lk

U0

d
0
L0

Uk

k<0 Lk

(b) L-a=-rρd

Figure 5.16: P-D DIAGRAM (for d > 0).


Digital Arithmetic – Ercegovac/Lang 2003 5 – Division
44
CONTINUITY CONDITION, OVERLAP, AND Q-DIGIT SELECTION

qj+1 = SEL(w[j], d)
• SEL represented by the set {sk }, −a ≤ k ≤ a,
qj+1 = k if sk ≤ rw[j] ≤ sk+1 − ulp
• sk defined as the minimum value of rw[j] for which qj+1 = k
• sk ’s are functions of the divisor d
• CONTAINMENT: Lk ≤ sk ≤ Uk
• CONTINUITY: qj+1 = k − 1 for rw[j] = sk − ulp ≤ Uk−1
Uk ≥ Uk−1 + ulp → Lk ≤ sk ≤ Uk−1 + ulp or Lk ≤ sk ≤ Uk−1
• OVERLAP
Uk−1 − Lk = (k − 1 + ρ)d − (k − ρ)d = (2ρ − 1)d
RESULTING IN
ρ ≥ 2−1
• REDUNDANCY IN q-DIGIT SET → OVERLAP BETWEEN SELECTION
INTERVALS - SIMPLER SELECTION
Digital Arithmetic – Ercegovac/Lang 2003 5 – Division
45

w[j+1]

qj+1=k-1 qj+1=k

rw[j]

Lk Uk
k
Lk-1 Uk-1
k-1
overlap
k or
k-1
(a)

Figure 5.17: Overlap between selection intervals.

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


46

rw[j]
Uk-1

sk

qj+1=k
Lk

overlap
(k or k-1)

qj+1=k-1

d
1/2 1
normalized divisor range
(b)
Figure 5.17: Selection function.

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


47
SELECTION USING CONSTANTS

• USE CONSTANTS mk , INDEPENDENT OF DIVISOR


max(Lk ) ≤ mk ≤ min(Uk−1) + ulp
max and min for the range 2−1 ≤ d < 1
• For k > 0
(k − ρ) ≤ mk ≤ (k − 1 + ρ)2−1 + ulp
which requires
k+1
ρ≥
3
• For k ≤ 0
(k − ρ)2−1 ≤ k − 1 + ρ
which requires
(−k) + 2
ρ≥
3

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


48

rw[j] Uk-1

mk
Lk

k>0

1/2 1 d
k<0

Uk-1
mk

Lk

Figure 5.18: BOUNDS ON mk .

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


49
RADIX-2 DIVISION WITH NON-REDUNDANT RESIDUAL

• EXTENSION OF NON-RESTORING DIVISION: {-1,0,1} SRT


• ALLOWS SKIPPING OVER ZEROS
U1 = 2d L1 = 0
U0 = d ≥ 1/2 L0 = −d ≤ −1/2
U−1 = 0 L−1 = −2d
• SELECTION CONSTANTS:
0 ≤ m1 ≤ 1/2, −1/2 ≤ m0 ≤ 0
Choose: m1 = 1/2 and m0 = −1/2
• THE QUOTIENT-DIGIT SELECTION FUNCTION







1 if 1/2 ≤ 2w[j]

qj+1 =  0 if −1/2 ≤ 2w[j] < 1/2


 −1 if 2w[j] <

− 1/2

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


50
w[j+1]
d
-1 0 1

-2d 1/2 2w[j]


-1/2
2d
-d d

-d

L-1 U-1 L1 U1

L0 U0

-1 0 1

(a)

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


51
2w[j]
2

U1

qj+1=1
1
U0

1/2 m1=1/2

U-1 d
1/2 L1 1
qj+1=0

-1/2 m0=-1/2
L0
-1

L-1 qj+1=-1

-2

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


52
STAIRCASE SELECTION FUNCTION

• FOR r > 2, mk DEPENDS ON DIVISOR

• DIVIDE RANGE OF DIVISOR INTO INTERVALS [di, di+1) with


1
d0 = , di+1 = di + 2−δ
2
δ MS FRACTIONAL BITS OF DIVISOR REPRESENT THE INTERVAL

• FOR EACH INTERVAL, THERE IS A SET of selection constants mk (i)

for d ∈ [di, di+1), qj+1 = k if mk (i) ≤ rw[j] ≤ mk+1(i) − ulp

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


53
DEFINITION OF mk (i)

rw[j]

qj+1=k+1
mk+1(i) ulp

qj+1=k

mk(i)

2-δ
di di+1

Figure 5.20: DEFINITION OF mk (i).

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


54
RANGE CONDITION FOR SELECTION CONSTANTS

max(Lk (di), Lk (di+1)) ≤ mk (i) ≤ min(Uk−1(di), Uk−1(di+1)) + ulp

min(Uk-1(di), Uk-1(di+1))
rw[j]

region for mk(i)


Uk-1

Lk
max(Lk(di), Lk(di+1))

2-δ
di di+1

Figure 5.21: SELECTION CONSTANT REGION.

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


55
LOW-PRECISION SELECTION CONSTANTS

mk (i) = Ak (i)2−c
WHERE Ak (i) IS INTEGER

• CAN USE TRUNCATED RESIDUAL IN COMPARISONS


WITH SELECTION CONSTANTS
• RESIDUAL MUST BE IN 2’s COMPLEMENT
• SELECTION CONDITIONS

for k > 0 Lk (di + 2−δ ) ≤ Ak (i)2−c ≤ Uk−1(di)


(5.1)
for k ≤ 0 Lk (di) ≤ Ak (i)2−c ≤ Uk−1(di + 2−δ ) + ulp

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


56
USE OF SELECTION CONSTANTS

rw[j]
Uk-1

2-c
mk(4) Lk

mk(2,3)

mk(1)
mk(0)

d
2-δ
d0 d1 d2 d3 d4 d5

Figure 5.22: QUOTIENT-DIGIT SELECTION WITH SELECTION CONSTANTS.

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


57
SELECTION WITH TRUNCATED RESIDUAL AND DIVISOR

{rw [j ]}c
log2 r + c + δ
1 + log2 r + c

SELECTION {d }δ
FUNCTION δ−1

q j+1
Figure 5.23: SELECTION WITH TRUNCATED RESIDUAL AND DIVISOR.

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


58
LOWER BOUND ON δ

• CONSIDER CASE k > 0 (similar argument for k ≤ 0);


• FROM CONTINUITY CONDITION
Uk−1(di) − Lk (di + 2−δ ) ≥ 0

(ρ + k − 1)di − (−ρ + k)(di + 2−δ ) ≥ 0


=⇒
(2ρ − 1)di ≥ (k − ρ)2−δ
• Worst case: d ≥ 1/2 and k ≤ a:
2ρ − 1 2ρ − 1
2−δ ≤ =
2(a − ρ) 2ρ(r − 2)
• MINIMUM VALUE OF δ CAN RESULT IN A LARGE VALUE OF c
• OPTIMIZE THE VALUES OF δ AND c TOGETHER

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


59
RADIX-4 DIVISION WITH NONREDUNDANT RESIDUAL

• Known as Robertson’s division


• qj ∈ {−2, −1, 0, 1, 2}
• Uk = ( 32 + k)d Lk = (− 23 + k)d
• BOUND ON δ
−δ 2ρ − 1 1
2 ≤ =
2(a − ρ) 8

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


60

4w[j]

U2

2
2
U1

L2

w[j+1] 1
2d/3 1
U0
0 1 2
L1
d/3 4d/3 0 1
4w[j] d
2d/3 5d/3 8d/3
d=1/2
U-1

L0
-2d/3 -1
(a) -1

U-2

L-1
-2
-2

L-2

(b)

Figure 5.24: ROBERTSON’S AND PD DIAGRAMS FOR RADIX-4 AND a = 2.

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


61
+
[di, di+1) [8, 9) [9, 10) [10, 11) [11, 12)
L2(di+1), U1(di)# 36, 40 40, 45 44, 50 48, 55
m2(i)∗ 6 7 8 8
L1(di+1), U0(di)# 9,16 10, 18 11, 20 12, 22
m1(i) 2 2 2 2
L0(di), U−1(di+1)# -16, -9 -18, -10 -20, -11 -22, -12
m0(i) -2 -2 -2 -2
L−1(di), U−2(di+1)# -40, -36 -45, -40 -50, -44 -55, -48
m−1(i) -6 -7 -8 -8
[di, di+1)+ [12, 13) [13, 14) [14, 15) [15, 16)
L2(di+1), U1(di)# 52, 60 56, 65 60, 70 64, 75
m2(i) 10 10 10 12
L1(di+1), U0(di)# 13, 24 14, 26 15, 28 16, 30
m1(i) 4 4 4 4
L0(di), U−1(di+1)# -24, -13 -26, -14 -28, -15 -30, -16
m0(i) -4 -4 -4 -4
L−1(di), U−2(di+1)# -60, -52 -65, -56 -70, -60 -75, -64
m−1(i) -10 -10 -10 -12

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


62
QUOTIENT-DIGIT SELECTION FOR RADIX-4 DIVISION;
NON-REDUNDANT RESIDUAL

{4w[j]}3 U1
{4w[j]}3 {d}4
m2(7) 12/8
xxx.xxx 0.1xxx
11/8 L2
m2(4,5,6) 10/8 6 3

9/8 qj+1=2

m2(2,3) 1 SELECTION
m2(1) 7/8
qj+1=1 3
m2(0) 6/8

5/8 qj+1
{d}4
1/2 10/16 12/16 14/16 1 (b)
9/16 11/16 13/16 15/16

(a)

Figure 5.25: QUOTIENT-DIGIT SELECTION: (a) FRAGMENT OF THE P-D DIAGRAM. (b) IMPLEMENTATION.

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


63
USE OF REDUNDANT ADDER

• SO FAR: COMPUTE rw[j] IN FULL PRECISION, TRUNCATE, AND COM-


PARE WITH LOW-PRECISION CONSTANTS
• FULL-PRECISION ADDITION: significant portion of the cycle time
• OVERLAP BETWEEN SELECTION INTERVALS
=⇒COULD USE AN ESTIMATE OF rw[j]
• ERROR IN ESTIMATE:

ǫmin ≤ y − yc ≤ ǫmax

• BASIC CONSTRAINT: if we choose qj+1 = k for an estimate yc then

y ∈ [yc + ǫmin , yc + ǫmax]

L∗k = Lk − ǫmin
Uk∗ = Uk − ǫmax

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


64
CONSTRAINTS ON SELECTION CONSTANTS

max(L∗k (di), L∗k (di+1)) ≤ mk (i) ≤ min(Uk−1


∗ ∗
(di), Uk−1 (di+1))

Uk-1
U*
k-1

region for mk (i)

ε max

L*k

Lk
−εmin

di d i+1

Figure 5.26: CONSTRAINTS FOR SELECTION BASED ON ESTIMATES.

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


65
MINIMUM OVERLAP AND RANGE OF ESTIMATE

• OVERLAP
∗ ∗
min(Uk−1 (di), Uk−1 (di+1)) − max(L∗k (di), L∗k (di+1)) ≥ 0
• RANGE
|rw[j]| ≤ rρd < rρ (for d < 1)

−rρ − ǫmax < yc < rρ − ǫmin

y=rw[j]

εmax -εmin

y (estimate)
-rρ rρ

Figure 5.27: RANGE OF ESTIMATE

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


66
REDUNDANT ADDER

-q d rw[j] (redundant)
j+1

(a) REDUNDANT ADDER

w[j+1] (redundant)

t t
ws x x x. x x x x x x x x x x x. x x x x x x x x
rw[j] rw[j]
wc x x x. x x x x x x x x + + +. + + + + + + + +
- + +. + + + + + + + + - - -. - - - - - - - -

y y y. y y y 0 < ε < 2-t+1-ulp y y y. y y y -(2-t-ulp) < ε < 2-t-ulp


- + +. + + + (truncation error) + + +. + + + (truncation error)
y^ (estimate) - - - - - -
y^ (estimate)

(b) (c)

Figure 5.28: USE OF REDUNDANT ADDER: (a) Redundant adder. (b) Carry-save case. (c) Signed-digit case.

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


67
CARRY-SAVE ADDER

• ERRORS

ǫmin = 0 ǫmax = 2−t+1 − ulp

• RESTRICTED SELECTION INTERVAL

Uk∗ = Uk − 2−t+1 + ulp


L∗k = Lk

d ∗ −t −t
U k−1 = ⌊Uk−1 + 2 ⌋t = ⌊Uk−1 − 2 ⌋t

c ∗
L k = ⌈Lk ⌉t = ⌈Lk ⌉t

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


68
y Uk-1
^
Uk-1 (represented by )
-t
2 U*
k-1
Case B

-t+1 Case A
2

^
L k (represented by )
L k L*k

di d i+1 d i+2

Case A: U*k-1 is on the grid;


Uk-1= U*k-1+2-t on the grid

Case B: U*k-1 is off the grid;


Uk-1> U*k-1 on the grid

Digital Arithmetic – Ercegovac/Lang 2003


Figure 5.29: Ub and L
b for residual in carry-save form. 5 – Division
69
LOWER BOUND FOR t and δ

(for positive k)
d c
U k−1(di) − Lk (di+1) ≥ 0

Uk−1(di) − 2−t − Lk (di+1) ≥ 0

2ρ − 1
− (a − ρ)2−δ ≥ 2−t
2
• RANGE
⌊−rρ − 2−t⌋t ≤ yc ≤ ⌊rρ − ulp⌋t
⌊z⌋t = 2−t⌊2tz⌋

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


70
RADIX-2 DIVISION WITH CARRY-SAVE ADDER

1
− 0 × 2−δ ≥ 2−t
2
c c d d
max(L (d
k i ), L (d
k i+1 )) ≤ mk (i) ≤ min( U (d
k−1 i ), U k−1(di+1 ))

c
L 1 (1) = 0
d
U 0(1/2) = 0
c
L 0 (1/2) = −1/2
d
U −1(1) = −1/2

c d
(L 1(1) = 0) ≤ m1 ≤ (U0(1/2) = 0)
c d
(L 0 (1/2) = −1/2) ≤ m0 ≤ ( U −1(1) = −1/2)
This results in the selection constants m1 = 0 and m0 = −1/2

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


71
SELECTION FUNCTION

⌊−2 − 2−1⌋1 ≤ yc ≤ ⌊2 − ulp⌋1

5 c
− ≤ y ≤ 3/2
2








1 if 0 ≤ yc ≤ 3/2

qj+1 =  0 if yc = −1/2


 −1 if −5/2 ≤ y
 c ≤ −1

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


72
RADIX-2 WITH CSA: PD PLOT

2w[j]

U1
2 ^ x x x. x
y[j] x x x. x
3/2
U0
1 4+4
^
^
1/2 L1 U*
U0 q j+1=1 m(1)=0 0
0
SELECTION
q j+1=0 d FUNCTION
^ ^
L 1 , U-1
y[j] -1/2 U-1
^
L0 m(0)=-1/2
-1 U* q j+1
q j+1=-1 -1
-3/2 L 0 , L*0
(b)
-2
L -1
-5/2
d=1/2 d=1-ulp
(a)

Figure 5.30: RADIX-2 DIVISION WITH CARRY-SAVE ADDER: (a) P-D PLOT. (b) SELECTION FUNCTION.

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


73
IMPLEMENTATION

qj+1 = (qs, qm)

qm = (p−1p0p1)′ (5.2)
qs = p−2 ⊕ (g−1 + p−1g0 + p−1p0g1)
where
pi = ci ⊕ si gi = ci · si
and
(c−2, c−1, c0, c1)

(s−2, s−1, s0, s1)

qj+1 = 0 (qs, qm) = (1, 0)

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


74
RADIX-4 ALGORITHM WITH CARRY-SAVE ADDER

1 4 −δ
− 2 ≥ 2−t
6 3

−t 1 1 1
2 ≤ − =
6 12 12

⌊−8/3 − 1/16⌋4 ≤ ŷ ≤ ⌊8/3 − ulp⌋4

44 42
− ≤ ŷ ≤
16 16

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


75
+
[di, di+1) [8, 9) [9, 10) [10, 11) [11, 12)
Lb 2(di+1), U
c
1 (di )
+
12, 12 14, 14 15, 15 16, 17
m2 (i)+ 12 14 15 16
Lb 1(di+1), U
c
0 (di )
+
3, 4 4, 5 4, 5 4, 6
m1 (i) 4 4 4 4
Lb 0(di), U
c
−1 (di+1)
+
-5, -4 -6, -5 -6, -5 -7, -5
m0 (i) -4 -6 -6 -6
Lb −1(di), U
c
−2 (di+1)
+
-13, -13 -15, -15 -16, -1 6 -18, -17
m−1(i) -13 -15 -16 -18
[di, di+1)+ [12, 13) [13, 14) [14, 15) [15, 16)
Lb 2(di+1), U
c
1 (di )
+
18, 19 19, 20 20, 22 22, 24
m2 (i) 18 20 20 24
Lb 1(di+1), U
c
0 (di )
+
4, 7 5, 7 5, 8 6, 9
m1 (i) 6 6 8 8
Lb 0(di), U
c
−1 (di+1)
+
-8, -6 -8, -6 -9, -6 -10, -7
m0 (i) -8 -8 -8 -8
Lb −1(di), U
c
−2 (di+1)
+
-20, -19 -21, -20 -23, -2 1 -25, -23
m−1(i) -20 -20 -22 -24

+: real value = shown value/16; Lb k = ⌈Lk ⌉4 , U


c
k = ⌊Uk −
1
16 ⌋4 .

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division


76

^
y[j] U1
U^1

12/8 L^2

L2
11/8

10/8
x x x.x x x x 0.1 x x x
y^ ^
d
7 3
9/8

SELECTION
1 FUNCTION

q
j+1
7/8
(b)

6/8

5/8

1/2 9/16 10/16 11/16 12/16 13/16 14/16 15/16 1 ^


d

m2 (i)
region of choice for (a)
m2 (i)

Figure 5.31: SELECTION FUNCTION FOR RADIX-4 SCHEME WITH CARRY-SAVE ADDER: (a) Fragment of P-D diagram. (b)
Implementation.

Digital Arithmetic – Ercegovac/Lang 2003 5 – Division

You might also like