Professional Documents
Culture Documents
Une 0 0
Diagram
for2 0 ! X ! 0
Digits 1 2 3
Une 0 0 0
Diagram
or 3 0 0 0 X >K
Digits 1 2 3
0 0
X: ! 0 0
4 5
Une 0 0 0 0
! :X
0
Diagram
for4 0 0 0 0 0 >K
Digits 1 2 3
0
X
0 v
P, P, P, P
,
a b ra aaba
= ... (1)
clrl alba + aobl
= ... (2)
c d x C2r2 Cl + a2ba + alb I + aob2
= ... (3)
C3r3 C2 + a3ba + a2bl + alb2 + aab3
= ... (4)
(ad cb) C4r4 C3 + a3bl + a2b2 + alb3 ... ( 5)
ac bd =
with c6r6rSr4r3r2r1rO being the final product. Partial products sum by one bit. If the squares of the numbers are stored in a
are calculated in parallel and hence the delay involved is ROM, the result can be instantaneously calculated.
just the time it takes for the signal to propagate through the However, in case of Odd difference, the process is different
gates. as the average is a floating point number. In order to handle
floating point arithmetic, Ekadikena Purvena - the Vedic
Sutra which is used to find the square of numbers end with
5 is applied. Example 5 illustrates this. In this case, instead
of squaring the average and deviation, [Average x (Average
+ 1)] - [Deviation x (Deviation+I)] is used. However,
instead of performing the multiplications, the same ROM is
used and using equation (10) the result of multiplication is
obtained.
2
', r, ', ', ', r, ', " n(n+l) = (n +n) ... (10)
teMplJl) 2
Here n is obtained from the ROM and is added with the
address which is equal to n(n+l). The sample ROM
Fig.3 Urdhava Multiplier Hardware Architecture
contents are given in Table 1.
TABLE 1: ROM CONTENTS
The main advantage of the Vedic Multiplication
algorithm ( Urdhava Tiryakbhyam Sutra) stems from the fact
Address Memory Content (Square)
that it can be easily implemented in FPGA due to its
1 1
simplicity and regularity [3]. The digital hardware
2 4
realization of a 4-bit multiplier using this Sutra is shown in
Fig. 3. This hardware design is very similar to that of the 3 9
array multiplier where an array of adders is required to 4 16
arrive at the final product. Here in Urdhava, all the partial .. . ...
products are calculated in parallel and the delay associated
is mainly the time taken by the carry to propagate through Thus, division and multiplication operations are
the adders. effectively converted to subtraction and addition operations
using Vedic Maths. Square of both Average and Deviation
IV. PRO POSED METHOD is read out simultaneously by using a two port memory to
reduce memory access time.
The proposed method is based on ROM approach
however both the inputs for the multiplier can be variables. Example 3: 16x 12 192 =
In this proposed method a ROM is used for storing the 1) Find the difference between (16-12) = 4 -7 Even Number
2
squares of numbers as compared to KCM where the 2) For Even Difference, Product = [Average] - [Deviation]
2
multiples are stored.
i. Average = [(a+b)/2] = [(16+12)12] = [28/2] = 14
Method: To find (a x b), first we have to find whether the
ii. Smallest(a,b) = smallest(l6,12) =12
difference between 'a' and 'b' is odd or even. Based on the
iii. Deviation = Average - Smallest (a,b) = 14 -12 =2
difference, the product is calculated using (8) and (9). 2 2
3) Product = 14 - 2 = 196 - 4 = 192
i. In case of Even Difference
Example 4: 15x 12 180
2 2
=
Result of Multiplication= [Average] - [Deviation] I) Find the difference between (15-12)=3 -7 Odd Number
... (8) 2) For Odd Number Difference find the Average and
Deviation.
11. In case of Odd Difference i.Average = [(a+b)/2] = [(12+15)/2] = 13.5
Result of Multiplication = [Average x (Average + 1)] - ii.Deviation = [Average - smallest(a, b)] =
[Deviation x (Deviation+I)] ... (9) [12.5 - smallest(l3,12)] = [13.5 - 12] = 1.5
Where, Average = [(a+b)/2] and Deviation = [Average - 3)Product = (l3xI4) - (lx2) = 182 - 2 =180
smallest(a,b)]
2
Example 5: 25 =625
Example 3 (Even difference) and Example 4 (Odd 1) To find the square of 25, first find the square of 5 which
difference) depict the multiplication process. Thus the two is 25 and put 2 in the tens place and 5 in the ones place of
variable multiplication is performed by averaging, squaring the answer respectively.
and subtraction. To find the average[(a+b)/2], which 2) To find the number in the hundreds place, multiply 2 by
involves division by 2 is performed by right shifting the its immediate next number, 3, which is equal to (2x3) = 6
1" In!' I Conf. on Recent Advances in Information Technology I RAIT-2012 I
2
3) Answer 25 = 625
180,-----
160 H._-----
140H._--__I------
120H._--__I------
Total Combinational
100 H.--__I---II--- Functions
6oH.--__I---II---
Total Memory Bits(Kb)
40
20
V. EX PERIMENTAL RESULTS
l 'r-----
From the Table 2 and Table 3, it is inferred that the 140 +---
proposed multiplier is best suited for higher order bit 13S+---
multiplication (i.e., more than SxS). Since in FPGA there is
130+-----
sufficient amount of on chip memory, which can be used to
store the squares of the numbers, the proposed multiplier 1:15+-----
will consume only fewer logic elements for its 12l>+----
implementation. CritMOil Itrfay Mlilt,plfer Urdb... Pf<lf!OSod
Multiplier lMuntl.i'er