Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Fig. 15.7 Restoring array divider composed of controlled subtractor cells.Slide 12Fig. 15.8 Nonrestoring array divider built of controlled add/subtract cells.Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Fig. 14.3 The new partial remainder, s(j), as a function of the shifted old partial remainder, 2s(j–1), in radix-2 nonrestoring division.Fig. 14.4 The new partial remainder s(j) as a function of 2s(j–1), with q–j in {–1, 0, 1}.Slide 22Slide 23Fig. 14.5 The relationship between new and old partial remainders in radix-2 SRT division.Slide 25Slide 26Slide 27Fig. 14.6 Example of unsigned radix-2 SRT division.Slide 29Fig. 14.8 Block diagram of a radix-2 divider with partial remainder in stored-carry form.Slide 31Slide 32Slide 33Fig. 14.7 Constant thresholds used for quotient digit selection in radix-2 division with qk–j in {–1, 0, 1}.p-d Plot for Radix-2 DivisionSlide 36Slide 37New Versus Shifted Old Partial Remainder in Radix-4 Divisionp-d Plot for Radix-4 SRT Division with Digit Set [-3,3]Radix-4 SRT Divider with the Digit Set {-2, -1, 0, 1, 2}p-d Plot for Radix-4 SRT Division with Digit Set [-2,2]Radix r DividerSlide 43Multiply-Divide Unit1FastDividersLecture 10Required ReadingChapter 14, High-Radix DividersNote errata at:http://www.ece.ucsb.edu/~parhami/text_comp_arit_1ed.htm#errorsBehrooz Parhami, Computer Arithmetic: Algorithms and Hardware DesignRecommended ReadingJ-P. Deschamps, G. Bioul, G. Sutter, Synthesis of Arithmetic Circuits: FPGA, ASIC and Embedded Systems Chapter 6, Arithmetic Operations: Division6.2.4, SRT Radix-2 Division6.2.5, SRT Radix-2 Division with Stored Carry Encoding6.2.6, P-D Diagram6.2.7, SRT-4 DivisionChapter 13, Dividers13.2.3, SRT Dividers13.2.4, SRT-4 Divider4Classification of DividersSequentialRadix-2 High-radixRestoringNon-restoring• regular• SRT• regular using carry save adders• SRT using carry save addersArrayDividersDividersby Convergence5ArrayDividers6Unsigned Fractional Divisionzfrac Dividend .z-1z-2 . . . z-(2k-1)z-2kdfrac Divisor .d-1d-2 . . . d-(k-1) d-kqfrac Quotient .q-1q-2 . . . q-(k-1) q-ksfrac Remainder .000…0s-(k+1) . . . s-(2k-1) s-2kk bits7Integer vs. Fractional Division For Integers:z = q d + s 2-2kz 2-2k = (q 2-k) (d 2-k) + s (2-2k)zfrac = qfrac dfrac + sfracFor Fractions:wherezfrac = z 2-2kdfrac = d 2-kqfrac = q 2-ksfrac = s 2-2k8Unsigned Fractional Division OverflowCondition for no overflow:zfrac < dfrac9Sequential Fractional DivisionBasic Equationss(0) = zfracs(j) = 2 s(j-1) - q-j dfrac2k · sfrac = s(k)sfrac = 2-k · s(k)10Restoring Unsigned Fractional Divisions(0) = zfor j = 1 to k if 2 s(j-1) - d > 0 q-j = 1 s(j) = 2 s(j-1) - d else q-j = 0 s(j) = 2 s(j-1)11Fig. 15.7 Restoring array divider composed of controlledsubtractor cells.12Non-Restoring Unsigned Fractional Divisions(-1) = z-dfor j = 0 to k-1 if s(j-1) 0 q-j = 1 s(j) = 2 s(j-1) - d else q-j = 0 s(j) = 2 s(j-1) + dend forif s(k-1) 0 q-k = 1else q-k = 0 Correction step13Fig. 15.8 Nonrestoring array divider built of controlledadd/subtract cells.14SequentialDividers15Sequential Fractional DivisionBasic Equationss(0) = zfracs(j) = 2 s(j-1) - q-j dfrac2k · sfrac = s(k)sfrac = 2-k · s(k)16Non-restoring Fractional Divisions(0) = zfor j = 1 to k if 2s(j-1) 0 q-j = 1s(j) = 2 s(j-1) - d else q-j = -1 s(j) = 2 s(j-1) + dend forq = BSD_2’s_comp_conversion(q)Correction_step17Integer DivisionCorrection stepWe have: z = q d + sz = (q-1) d + (s+d)z = q’ d + s’z = (q+1) d + (s-d)z = q” d + s”We need: sign(s) = sign (z)18Fractional DivisionCorrection stepWe have: zfrac = qfrac dfrac + sfraczfrac = (qfrac–2-k) dfrac + (sfrac+dfrac 2-k)zfrac = q’frac dfrac + s’fraczfrac = (qfrac+2-k) dfrac + (sfrac – dfrac 2-k)zfrac = q”frac dfrac + s”fracWe need: sign(sfrac) = sign(zfrac)19Non-restoring Fractional Divisions(0) = zfor j = 1 to k if 2s(j-1) 0 q-j = 1s(j) = 2 s(j-1) - d else q-j = -1 s(j) = 2 s(j-1) + dend forq = BSD_2’s_comp_conversion(q)Correction_step20Fig. 14.3 The new partial remainder, s(j), as a function of the shifted old partial remainder, 2s(j–1), in radix-2 nonrestoring division.21Fig. 14.4 The new partial remainder s(j) as a function of 2s(j–1), with q–j in {–1, 0, 1}.22Non-restoring Fractional Division with shifting over zeross(0) = zfor j = 1 to k if 2s(j-1) d q-j = 1s(j) = 2 s(j-1) - d elseif 2s(j-1) < -d q-j = -1 s(j) = 2 s(j-1) + d else q-j = 0 s(j) = 2 s(j-1)end forConversion of qCorrection step23SRT Non-Restoring Fractional DivisionAssumptionsd 1/2 (positive, bit-normalized divider)-d ≤ -1/2 ≤ z, s(j) < 1/2 < dIf the latter condition not true: z = z >> 1 perform k+1 instead of k steps of the algorithm q = q << 1 and s = s << 1z’=z/2 and z’=q’·d + s’z = 2z’ = (2q’) ·d + 2s’=q ·d + s24Fig. 14.5 The relationship between new and old partial remainders in radix-2 SRT division.25SRT Non-Restoring Fractional Divisions(0) = zfor j = 1 to k if 2s(j-1) 1/2 q-j = 1s(j) = 2 s(j-1) - d elseif 2s(j-1) < -1/2 q-j = -1 s(j) = 2 s(j-1) + d else q-j = 0 s(j) = 2 s(j-1)end forConversion of qCorrection step262728Fig. 14.6 Example of unsigned radix-2 SRT division.29SequentialDividerswith Carry-Save Adders30Fig. 14.8 Block diagram of a radix-2 divider with partialremainder in stored-carry form.31Using Carry-Save Adders with the Dividerssum = u = u1u0.u-1u-2u-3u-4….u-kcarry = v = v1v0.v-1v-2v-3v-4….v-kt = u1u0.u-1u-2 + v1v0.v-1v-2 u + v - t = 00.00u-3u-4….u-k + 00.00v-3v-4….v-k< 0 1232Using Carry-Save Adders with the Dividers0t12-t 0q-j = 1t <q-j = -112- u+v <12-12 t < 012-q-j = 0u+v < 0u+v 03334Fig. 14.7 Constant thresholds used for quotient digitselection in radix-2 division with qk–j in {–1, 0, 1}.35Fig. 14.10 A p-d plot for radix-2 division with d[1/2,1), partial remainder in[–d, d), and quotient digits in [–1, 1]. d p Infeasible region (p cannot be 2d) Infeasible region (p cannot be < 2d) .100 .101 .110 .111 1. 00.1 00.0 11.1 10.0 10.1 11.0 01.1 01.0 00.1 01.0 01.1 10.0 d 2d 2d d Worst-case error margin in
View Full Document