1. Discrete Transforms & Number Theoretical
[06-88-529-1-2016W]
A
Project Presentation
On
An efficient binary multiplier design for high speed
applications using Karatsuba algorithm and Urdhva-
Tiryagbhyam algorithm
Instructor : Dr. Huapeng Wu
Presented by : Rajan Savaliya (Student ID# 104519325)
Savankumar Darji (Student ID# 104519347)
2. Abstract
Aim of this research paper is to reduce number of binary multiplication
that can save time as well as hardware requirement for implementation
of binary multiplier using algorithms like Karatsuba and Urdhva-
Tiryagbhyam. To implement binary multiplier, the complexity of design
depends on number of multiplication for calculating the product. So, in
this paper the main target of author is to reduce number of
multiplication with the help of ancient Vedic and classical mathematics.
4. Karatsuba Multiplication
This algorithm reduces the number of multiplication comparing to
conventional method of multiplication.
For example:
A 2-digit decimal number can be represented in below convention,
a = 10p+q , b = 10r+s
Let’s say 87 can be represented as 87 = 10(8)+7 and 56 = 10(5)+6
a = 10(p)+q b = 10(r)+s
doing the math by a x b = (10p+q) x (10r+s) we will get
a x b = (p x r)100 + ((p x s) + (r x q))10 + (q x s)
5. a x b = (p x r)100 + ((p x s) + (r x q))10 + (q x s)
# of multiplication: 1 2 3 4
But if we replace multiplication by several and subtraction we will get
this equation:
a x b = u x 100 + v x 10 + w
Here, u = p x r
w = q x s
v = (p + q) x (r + s) – u - w
These multiplications are called auxiliary multiplications. Here, notice
that u, w and v have only 3 multiplication !
15. Urdhva-Tiryagbhyam Multiplication
It is the one of the 16 formula which is given in Appendix of Atharvaveda, one
of the six Veda from Indian Hinduism. It can compute the N digit multiplication
with very fewer and quicker steps when the number of digits are lower i.e. less
than 5. The reason behind that is the number of steps for computing
multiplication is proportional to the number of digit.
For Example: 2 binary digit Multiplication
11 × 11: P0 = 1 × 1 = 1
P1 = (1 × 1) + (1 × 1) + carry_0 = 0 (carry_1 = 1)
P2 = (1 × 1) + carry_0 = 0 (carry_1 = 1)
Answer = 1001