ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area...
Transcript of ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area...
![Page 1: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/1.jpg)
Sequential Multipliers
Lecture 8
![Page 2: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/2.jpg)
Required Reading
Chapter 9, Basic Multiplication Scheme Chapter 10, High-Radix Multipliers Chapter 12.3, Bit-Serial Multipliers Chapter 12.4, Modular Multipliers
Behrooz Parhami, Computer Arithmetic: Algorithms and Hardware Design
![Page 3: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/3.jpg)
Notation
a Multiplicand ak-1ak-2 . . . a1 a0 x Multiplier xk-1xk-2 . . . x1 x0 p Product (a ⋅ x) p2k-1p2k-2 . . . p2 p1 p0
If multiplicand and multiplier are of different sizes, usually multiplier has the smaller size
![Page 4: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/4.jpg)
Multiplication of two 4-bit unsigned binary numbers in dot notation
Partial Product 0
Partial Product 1
Partial Product 2
Partial Product 3
Number of partial products = number of bits in multiplier x Bit-width of each partial product = bit-width of multiplicand a
![Page 5: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/5.jpg)
Basic Multiplication Equations
x = ∑ xi ⋅ 2i
i=0
k-1 p = a ⋅ x
p = a ⋅ x = ∑ a ⋅ xi ⋅ 2i =
= x0a20 + x1a21 + x2a22 + … + xk-1a2k-1
i=0
k-1
![Page 6: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/6.jpg)
Shift/Add Algorithm Right-shift version
![Page 7: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/7.jpg)
Shift/Add Algorithms Right-shift algorithm
p = a ⋅ x = x0a20 + x1a21 + x2a22 + … + xk-1a2k-1
= (...((0 + x0a2k)/2 + x1a2k)/2 + ... + xk-1a2k)/2 =
k times
=
p(0) = 0
p = p(k)
p(j+1) = (p(j) + xj a 2k) / 2 j=0..k-1
![Page 8: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/8.jpg)
Sequential shift-and-add multiplier for right-shift algorithm
![Page 9: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/9.jpg)
Right-shift multiplication
algorithm: Example
![Page 10: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/10.jpg)
Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm
![Page 11: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/11.jpg)
Shift/Add Algorithms Right-shift algorithm: multiply-add
= (...((y2k + x0a2k)/2 + x1a2k)/2 + ... + xk-1a2k)/2 =
k times
p(0) = y2k
p = p(k)
p(j+1) = (p(j) + xj a 2k) / 2 j=0..k-1
= y + x0a20 + x1a21 + x2a22 + … + xk-1a2k-1 = y + a ⋅ x
![Page 12: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/12.jpg)
Signed Multiplication • Previous sequential multipliers are for unsigned multiplication • For signed multiplication:
– assume sign-extended operation for p(j) + xja – if 2's complement multiplier is POSITIVE
right-shift sequential algorithms (shift-add) will work directly – if 2's complement multiplier is NEGATIVE than we must use
"negative weight” for xk-1 and subtract xk-1a in the last cycle • Slight increase in area due to control and one-bit sign extension on
inputs of adder – Unsigned: k bit number + k bit number à k+1 bit number – Signed: k+1 bit sign extended number + k+1 bit sign extended
number à k+1 bit number
![Page 13: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/13.jpg)
Sequential multiplication
of 2’s-complement numbers
with right shifts (positive multiplier)
![Page 14: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/14.jpg)
Sequential multiplication
of 2’s-complement numbers
with right shifts (negative multiplier)
![Page 15: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/15.jpg)
Shift/Add Algorithm Left-shift version
![Page 16: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/16.jpg)
Shift/Add Algorithms Left-shift algorithm
p = a ⋅ x = x0a20 + x1a21 + x2a22 + … + xk-1a2k-1
= (...((0⋅2 + xk-1a)⋅2 + xk-2a)⋅2 + ... + x1a)⋅2 + x0a=
k times
=
p(0) = 0
p = p(k)
p(j+1) = (p(j) ⋅2 + xk-1-ja) j=0..k-1
![Page 17: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/17.jpg)
Sequential shift-and-add multiplier for left-shift algorithm
Left shifts are not as efficient for two's complement because must sign extend multiplicand by k bits
![Page 18: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/18.jpg)
Left-shift multiplication
algorithm: Example
![Page 19: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/19.jpg)
p(0) = y2-k
p = p(k)
p(j+1) = (p(j) ⋅2 + xk-(j+1)a) j=0..k-1
Shift/Add Algorithms Left-shift algorithm: multiply-add
= (...((y2-k ⋅2 + xk-1a)⋅2 + xk-2a)⋅2 + ... + x1a)⋅2 + x0a =
k times
= y + xk-1a2k-1 + xk-2a2k-2 + … + x1a21 + x0a = y + a ⋅ x
![Page 20: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/20.jpg)
Shift/Add Algorithm Right-shift version
with Carry-Save Adder
![Page 21: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/21.jpg)
Sequential shift-and-add multiplier with a carry save adder
![Page 22: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/22.jpg)
High-Radix Sequential Multipliers
![Page 23: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/23.jpg)
High-Radix Notation
a Multiplicand (an-1an-2 . . . a1 a0)r x Multiplier (xn-1xn-2 . . . x1 x0)r p Product (a ⋅ x) (p2n-1p2n-2 . . . p2 p1 p0)r
![Page 24: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/24.jpg)
Radix-4, or two-bit-at-a-time, multiplication in dot notation
![Page 25: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/25.jpg)
Basic Multiplication Equations
x = ∑ xi ⋅ ri
i=0
n-1 p = a ⋅ x
p = a ⋅ x = ∑ a ⋅ xi ⋅ ri =
= x0ar0 + x1a r1 + x2a r2 + … + xn-1a rn-1
i=0
n-1
![Page 26: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/26.jpg)
High-Radix Shift/Add Algorithms Right-shift high-radix algorithm
p = a ⋅ x = x0ar0 + x1ar1 + x2ar2 + … + xn-1arn-1
= (...((0 + x0arn)/r + x1arn)/r + ... + xn-1arn)/r =
n times
=
p(0) = 0
p = p(n)
p(j+1) = (p(j) + xj a rn) / r j=0..n-1
![Page 27: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/27.jpg)
High-Radix Shift/Add Algorithms Left-shift high-radix algorithm
p = a ⋅ x = x0ar0 + x1ar1 + x2ar2 + … + xn-1arn-1
= (...((0⋅r + xn-1a)⋅r + xn-2a)⋅r + ... + x1a)⋅r + x0a=
n times
=
p(0) = 0
p = p(n)
p(j+1) = (p(j) ⋅ r + xn-1-ja) j=0..n-1
![Page 28: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/28.jpg)
The multiple generation part of a radix-4 multiplier with precomputation of 3a
![Page 29: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/29.jpg)
Example of radix-4 multiplication using the 3a multiple
![Page 30: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/30.jpg)
The multiple generation part of a radix-4 multiplier based on replacing 3a with 4a (carry into next higher radix-4 multiplier
digit) and -a
![Page 31: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/31.jpg)
Higher Radix Multiplication
• In radix-8, one must precompute 3a, 5a, 7a – Overhead becomes prohibitive and does not
help • However, when we discuss CSA this may
be useful
![Page 32: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/32.jpg)
Radix-2 Booth Recoding
i j j+1
![Page 33: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/33.jpg)
Radix-2 Booth Recoding
yi = -xi + xi-1
![Page 34: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/34.jpg)
Sequential multiplication of 2’s-complement numbers with
right shifts using Booth’s recoding
![Page 35: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/35.jpg)
Notation
Y Multiplicand ym-1ym-2 . . . y1 y0 X Multiplier xm-1xm-2 . . . x1 x0 P Product (Y ⋅ X ) p2m-1p2m-2 . . . p2 p1 p0
If multiplicand and multiplier are of different sizes, usually multiplier has the smaller size
![Page 36: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/36.jpg)
Radix-4 Booth Recoding
(1) -1 0 1 0 0 -1 1 0 -1 1 -1 1 0 0 -1 0
![Page 37: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/37.jpg)
zi/2 = -2xi+1 + xi + xi-1
![Page 38: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/38.jpg)
Example radix-4 multiplication with modified Booth’s recoding of the 2’s-complement
multiplier
![Page 39: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/39.jpg)
The multiple generation part of a radix-4 multiplier based on Booth’s recoding
![Page 40: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/40.jpg)
High-Radix Multipliers with Carry-Save Adder
![Page 41: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/41.jpg)
Radix-4 multiplication with a carry-save adder used to combine the
cumulative partial product, xia, and 2xi+1a into two numbers
![Page 42: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/42.jpg)
Radix-4 multiplier with a carry-save adder and Booth’s recoding
![Page 43: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/43.jpg)
Booth recoding and multiple selection logic for high-radix multiplication
![Page 44: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/44.jpg)
Radix-4 multiplier with two carry-save adders
![Page 45: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/45.jpg)
Radix-16 multiplier with carry-save adders
![Page 46: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/46.jpg)
Bit-Serial Multipliers
![Page 47: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/47.jpg)
Bit Serial Multipliers Advantages
• small area
• reduced pin count
• reduced wire length
• high clock rate
![Page 48: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/48.jpg)
Systolic Array
• Systolic array: synchronous arrays of processing elements that are interconnected by only short, local wires thus allowing very high clock rates
![Page 49: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/49.jpg)
Semisystolic Bit-Serial Multiplier (1)
![Page 50: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/50.jpg)
Semisystolic Bit-Serial Multiplier (2)
a3x0 a2x0 a1x0 a0x0
a3x1 a2x1 a1x1 a0x1
a3x2 a2x2 a1x2 a0x2
a3x3 a2x3 a1x3 a0x3 a3 0 a2 0 a1 0 a0 0
a3 0 a2 0 a1 0 a0 0
a3 0 a2 0 a1 0 a0 0
a3 0 a2 0 a1 0 a0 0
p0
p1
p2
p3
p4
p5
p6 p7
![Page 51: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/51.jpg)
Retiming
d
k k
k+n k+n+d
d k k+d
k+d+n k+d+n
![Page 52: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/52.jpg)
Retimed Semisystolic Bit-Serial Multiplier (1)
![Page 53: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/53.jpg)
Retimed Semisystolic Bit-Serial Multiplier (2)
a3 0 a2 0 a1 0 a0x0
a3 0 a2 0 a1x0 a0x1
a3 0 a2x0 a1x1 a0x2
a3x0 a2x1 a1x2 a0x3 a3 x1 a2x2 a1x3 a0 0
a3 x2 a2x3 a1 0 a0 0
a3x3 a2 0 a1 0 a0 0
a3 0 a2 0 a1 0 a0 0
p0
p1
p2
p3
p4
p5
p6 p7
![Page 54: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/54.jpg)
Systolic Bit-Serial Multiplier
![Page 55: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/55.jpg)
Modular Multipliers
![Page 56: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/56.jpg)
Modular Multiplication
Special Cases
a x
pH pL
a x = p = pH 2k + pL
k bits
a x mod 2k = pL
a x mod 2k-1 = pL + pH + carry
p
a x
a x mod 2k+1 = pL - pH - borrow
![Page 57: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/57.jpg)
Modular Multiplication
Special Case (1)
a x mod 2k-1 = (pH 2k + pL) mod (2k-1) = = (pH (2k mod (2k-1)) + pL) mod (2k-1) = = pH + pL mod (2k-1) = =
pH + pL if pH + pL < 2k - 1
pH + pL - (2k-1) if pH + pL ≥ 2k - 1
= pL + pH + carry
carry = carry from addition pL + pH
![Page 58: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/58.jpg)
Modular Multiplication
Special Case (2)
a x mod 2k+1 = (pH 2k + pL) mod (2k+1) = = (pH (2k+1-1) + pL) mod (2k+1) = = pL - pH mod (2k+1) = =
pL - pH if pL - pH ≥ 0
pL - pH + (2k+1) if pL - pH < 0
= pL - pH + borrow
borrow = borrow from subtraction pL + pH
![Page 59: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/59.jpg)
Modulo (2b-1) Carry Save Adder
![Page 60: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/60.jpg)
4 x 4 Modulo 15 Multiplier
![Page 61: ECE645 lecture8 sequential multipliers...Right-shift multiplication algorithm: Example . Area optimization for the sequential shift-and-add multiplier with the right-shift algorithm](https://reader030.fdocuments.us/reader030/viewer/2022040301/5e75453ce98c8d362107c980/html5/thumbnails/61.jpg)
4 x 4 Modulo 13 Multiplier