Presentation is loading. Please wait.

Presentation is loading. Please wait.

Tree and Array Multipliers

Similar presentations


Presentation on theme: "Tree and Array Multipliers"— Presentation transcript:

1 Tree and Array Multipliers
Lecture 7 Tree and Array Multipliers

2 Required Reading Behrooz Parhami,
Computer Arithmetic: Algorithms and Hardware Design Chapter 11, Tree and Array Multipliers Chapter 12.5, The special case of squaring Note errata at:

3 Required Reading J-P. Deschamps, G. Bioul, G. Sutter,
Synthesis of Arithmetic Circuits: FPGA, ASIC and Embedded Systems Chapter FPGA Implementation of multipliers (handout distributed in class)

4

5 Notation a Multiplicand ak-1ak a1 a0 x Multiplier xk-1xk x1 x0 p Product (a  x) p2k-1p2k p2 p1 p0

6 Multiplication of two 4-bit unsigned binary numbers in dot notation

7 Basic Multiplication Equations
k-1 x =  xi  2i p = a  x i=0 k-1 p = a  x =  a  xi  2i = = x0a20 + x1a21 + x2a22 + … + xk-1a2k-1 i=0

8 Unsigned Multiplication
a4 a3 a2 a1 a0 x x4 x3 x2 x1 x0 ax0 20 a4x0 a3x0 a2x0 a1x0 a0x0 ax1 21 a4x1 a3x1 a2x1 a1x1 a0x1 + ax2 22 a4x2 a3x2 a2x2 a1x2 a0x2 ax3 23 a4x3 a3x3 a2x3 a1x3 a0x3 ax4 24 a4x4 a3x4 a2x4 a1x4 a0x4 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0

9 Full tree multiplier - general structure

10 7 x 7 tree multiplier

11 A slice of a balanced-delay tree for 11 inputs

12 with a more regular structure
Tree multiplier with a more regular structure

13 Layout of a multiplier based on 4-to-2 reduction modules

14 2’s Complement Multiplication (1)
-24 23 22 21 20 a4 a3 a2 a1 a0 x x4 x3 x2 x1 x0 24 23 22 21 20 -a4 a3 a2 a1 a0 x -x4 x3 x2 x1 x0

15 2’s Complement Multiplication (2)
-a4 a3 a2 a1 a0 x -x4 x3 x2 x1 x0 -a4x0 a3x0 a2x0 a1x0 a0x0 -a4x1 a3x1 a2x1 a1x1 a0x1 + -a4x2 a3x2 a2x2 a1x2 a0x2 -a4x3 a3x3 a2x3 a1x3 a0x3 a4x4 -a3x4 -a2x4 -a1x4 -a0x4 -p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 29 28 27 26 25 24 23 22 21 20

16 2’s Complement Multiplication (3)
29 28 27 26 25 24 23 22 21 20 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 -29 28 27 26 25 24 23 22 21 20

17 2’s Complement Multiplication (4)
z = 1 - z z = 1 - z - aj xi = - aj (1 - xi) = aj xi - aj = aj xi + aj - 2 aj - aj xi = - (1- aj ) xi = aj xi - xi = aj xi + xi - 2 xi - aj xi = - (1- aj xi) = aj xi = aj xi -aj = - (1 - aj) = aj = aj -xi = - (1 - xi) = xi = xi

18 + -a4x0 -a4x1 -a4x2 -a4x3 -a4 a4x0 -a4 a4x1 a4 -a4 a4x2 a4 -a4 a4x3 a4
-1 a4

19 + -a3x4 -a2x4 -a1x4 -a0x4 -x4 a0x4 -x4 a1x4 x4 -x4 a2x4 x4 -x4 a3x4 x4
-1 x4

20 29 28 27 26 25 24 a4 a4x3 a4x2 a4x1 a4x0 -1 a4 x4 a3x4 a2x4 a1x4 a0x4 -1 x4 -1 a4 a4x3 a4x2 a4x1 a4x0 x4 a3x4 a2x4 a1x4 a0x4 a4 x4 1 a4 a4x3 a4x2 a4x1 a4x0 x4 a3x4 a2x4 a1x4 a0x4 a4 -29 x4

21 Baugh-Wooley 2’s Complement Multiplier
-a4 a3 a2 a1 a0 x -x4 x3 x2 x1 x0 a4x0 a3x0 a2x0 a1x0 a0x0 a4x1 a3x1 a2x1 a1x1 a0x1 + a4x2 a3x2 a2x2 a1x2 a0x2 a4x3 a3x3 a2x3 a1x3 a0x3 a4x4 a3x4 a2x4 a1x4 a0x4 a4 a4 1 x4 x4 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 -29 28 27 26 25 24 23 22 21 20

22 + -a4x0 -a4x1 -a4x2 -a4x3 -1 a4x0 -1 a4x1 1 -1 a4x2 1 -1 a4x3 1 1 a4x3

23 + -a3x4 -a2x4 -a1x4 -a0x4 -1 a0x4 -1 a1x4 1 -1 a2x4 1 -1 a3x4 1 1 a3x4

24 29 28 27 26 25 24 a4x3 a4x2 a4x1 a4x0 -1 1 a3x4 a2x4 a1x4 a0x4 -1 1 a4x3 a4x2 a4x1 a4x0 a3x4 a2x4 a1x4 a0x4 -1 1 a4x3 a4x2 a4x1 a4x0 a3x4 a2x4 a1x4 a0x4 1 1 -29

25 Modified Baugh-Wooley Multiplier
-a4 a3 a2 a1 a0 x -x4 x3 x2 x1 x0 a4x0 a3x0 a2x0 a1x0 a0x0 a4x1 a3x1 a2x1 a1x1 a0x1 + a4x2 a3x2 a2x2 a1x2 a0x2 a4x3 a3x3 a2x3 a1x3 a0x3 a4x4 a3x4 a2x4 a1x4 a0x4 1 1 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 -29 28 27 26 25 24 23 22 21 20

26 Basic array multiplier

27 5 x 5 Array Multiplier

28 Array Multiplier - Basic Cell
cin x y FA cout s

29 Baugh-Wooley 2’s Complement Multiplier
-a4 a3 a2 a1 a0 x -x4 x3 x2 x1 x0 a4x0 a3x0 a2x0 a1x0 a0x0 a4x1 a3x1 a2x1 a1x1 a0x1 + a4x2 a3x2 a2x2 a1x2 a0x2 a4x3 a3x3 a2x3 a1x3 a0x3 a4x4 a3x4 a2x4 a1x4 a0x4 a4 a4 1 x4 x4 p9 p8 p7 p6 p5 p4 p3 p2 p1 p0 -29 28 27 26 25 24 23 22 21 20

30 Modifications in a 5 x 5 multiplier

31 Array Multiplier – Modified Basic Cell
am ci si-1 xn FA ci+1 si

32 5 x 5 Array Multiplier with modified cells

33 Pipelined 5 x 5 Multiplier

34 Xilinx FPGA Implementation
Equations Z = (2xn-1+xn-2)  Y  2n-2 + … + (2xi+1+xi)  Y  2i + … + +(2x3+x2)  Y  22 + (2x1+x0)  Y  20 (2xi+1+xi)  Y = cm+1pimpi(m-1)…pi2pi1pi0 pij = xiyj xor xi+1yj-1 xor cj cj+1 = (xiyj)(xi+1yj-1) + (xiyj)cj + (xi+1yj-1)cj c0 = c1 = 0

35 Xilinx FPGA Implementation
Modified Basic Cell Xilinx FPGA Implementation xi+1 xi cj+1 yj yj-1 FA pij cj

36 Xilinx FPGA Implementation
Modified Basic Cell Xilinx FPGA Implementation LUT: xiyj xor xi+1yj-1 cj+1 xi yi xi+1 LUT 1 yi-1 pij cj pij = xiyj xor xi+1yj-1 xor cj cj+1 = (xiyj)(xi+1yj-1) + (xiyj)cj + (xi+1yj-1)cj

37 Xilinx FPGA Multiplier

38 Optimizations for Squaring (1)

39 Optimizations for Squaring (2)
xi xj xi xj + xi xj = 2 xi xj xj xi xi xj xi xi = xi xi xj xi xj + xi = 2 xi xj - xi xj + xi = = 2 xi xj + xi (1-xj) = = 2 xi xj + xi xj xi xi xj xi xj

40 Squaring Using Look-Up Tables
for relatively small values k input=a output=a2 1 1 2 4 3 9 4 16 2k words 2k-bit each . . . i i2 . . . 2k-1 (2k-1)2

41 Multiplication Using Squaring
(a+x)2 - (a-x)2 a  x = 4


Download ppt "Tree and Array Multipliers"

Similar presentations


Ads by Google