69
A Project report On DESIGN OF HIGH SPEED MULTIPLIER USING REVERSIBLE LOGIC Submitted in partial fulfilmentS of the requirement for the award of degree of BACHELOR OF TECHNOLOGY In ELECTRONICS AND COMMUNICATION ENGINEERING Submitted By S.SAI MOUNIKA 13KQ1A0487 K.RAMADEVI 13KQ1A0474 S.BHARGAVI 13KQ1A0490 Y.AJAY KUMAR 13KQ1A04B8 Under The Esteemed Guidance Of Mrs.D.MANOGNA,M.Tech ASSISTANT PROFESSOR DEPARTMENT OF ELECTRONICS & COMMUNICATION ENGINEERING PACE INSTITUTE OF TECHNOLOGY AND SCIENCES ACCREDITED WITH NAAC ‘A’ GRADE VALLUR, NH-5, ONGOLE, PRAKASAM DISTRICT, PIN: 523272. (Affiliated to Jawaharlal Nehru Technological University, Kakinada) 2013-2017

A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

Embed Size (px)

Citation preview

Page 1: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

A

Project report

On

DESIGN OF HIGH SPEED MULTIPLIER USING

REVERSIBLE LOGIC Submitted in partial fulfilmentS of the requirement for the award of degree of

BACHELOR OF TECHNOLOGY

In

ELECTRONICS AND COMMUNICATION ENGINEERING

Submitted

By

S.SAI MOUNIKA 13KQ1A0487

K.RAMADEVI 13KQ1A0474

S.BHARGAVI 13KQ1A0490

Y.AJAY KUMAR 13KQ1A04B8

Under The Esteemed Guidance Of

Mrs.D.MANOGNA,M.Tech

ASSISTANT PROFESSOR

DEPARTMENT OF ELECTRONICS & COMMUNICATION ENGINEERING

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES

ACCREDITED WITH NAAC ‘A’ GRADE

VALLUR, NH-5, ONGOLE, PRAKASAM DISTRICT, PIN: 523272.

(Affiliated to Jawaharlal Nehru Technological University, Kakinada)

2013-2017

Page 2: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY & SCIENCE

ACCREDITED WITH NAAC ‘A’ GRADE

VALLUR, NH-5, ONGOLE, PRAKASAM DISTRICT, PIN: 523272

(Affiliated to Jawaharlal Nehru Technological University, Kakinada)

DEPARTMENT OF ELECTRONICS AND COMMUNICATION ENGINEERING

BONAFIDE CERTIFICATE

This is certify that the project entitled “DESIGN OF HIGH SPEED

MULTIPLIER USING REVERSIBLE LOGIC” is the bonafide work of

S.SAIMOUNIKAbearing13KQ1A0487,K.RAMADEVIbearing13KQ1A0474,S.BHA

RGAVIbearing13KQ1A0490,Y.AJAYKUMAR bearing13KQ1A04B8,Bachelor of

Technology in “ELECTRONICS AND COMMUNICATION ENGINEERING”For

the academic year 2016-2017. This work is done under my supervision and guidance.

Signature of Internal Guide Signature of Head of the Department

Mrs.D.MANOGNA M.Tech Mr. M.APPARAOM. Tech, M.B.A, (Ph.D)

ASSISTANT PROFESSOROf Dept Of ECE PROFESSOR AND HOD OF ECE

Signature of the External Examiner

Page 3: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

ACKNOWLEDGEMENT

We thank the almighty for giving us the courage and perseverance in completing

the main project.

We would like to place on record the deep sense of gratitude to the honourable

chairman Sri Mr.M.VENU GOPALB.E, M.B.A., D.M.M., PACE Institute of Technology &

Sciences for providing necessary facilities to carry the concluded main project work.

We express my gratitude to Er.M.SRIDHARB.E, Secretary and correspondent of

PACE Institute of technology & sciences for providing me with adequate facilities, ways

and means by which I was able to complete this is main project work.

We are thankful to our principal Dr.C.V.SUBBARAOM.E, M.Tech, PhD, MISTE for

providing us the necessary infrastructure and labs and also permitting to carry out this

project.

With extreme jubilance and deepest gratitude, we would like to thank to head of

the E.C.E. Department Mr. M. APPARAOM.Tech, (Ph.D.) for his constant encouragement,

valuable suggestions.We are greatly indebted to project guide, Mr. M.APPARAO

M.Tech, MBA, (Ph.D) Electronics and Communication engineering, for providing valuable

guidance at every stage of this project work. We are profoundly grateful towards the

unmatched services rendered by him.

Our Special thanks to our project coordinator Mr.B.SIVA PRASAD M.TechElectronics

and Communication engineering, for his support and valuable suggestions regarding

project work.

Our special thanks to all faculties of Electronics and Communication Engineering

for their valuable advises at every stage of this work.

Last but not least, we would like to express our deep sense of gratitude and

earnest thanks giving to our dear parents for their moral support and heartfelt cooperation

in doing the main project.

In the end we would also like to thank all our peers for all the support and help

they have provided throughout our project work.

Page 4: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

i

ABSTRACT

Multipliers are vital components of any processor or computing machine. More

often than not, performance of microcontrollers and Digital signal processors are evaluated

on the basis of number of multiplications performed in unit time. Hence better multiplier

architectures are bound to increase the efficiency of the system. Vedic multiplier is one such

promising solution. Its simple architecture coupled with increased speed forms an

unparalleled combination for serving any complex multiplication computations. Tagged with

these highlights, implementing this with reversible logic further reduces power dissipation

Power dissipation is another important constraint in an embedded system which cannot be

neglected.

In this paper we bring out a Vedic multiplier known as "Urdhva Tiryakbhayam"

meaning vertical and crosswise, implemented using reversible logic, which is the first of its

kind. This multiplier may find applications in Fast Fourier Transforms (FFTs), and other

applications of DSP like imaging, software defined radios, wireless communications.For

arithmetic multiplication, various Vedic multiplication techniques like Urdhva tiryakbhyam,

Nikhilam and Anurupye has been thoroughly discussed. It has been found that Urdhva

tiryakbhyam Sutra is most efficient Sutra (Algorithm), giving minimum delay for

multiplication of all types of numbers, either small or large.

Further, the Verilog HDL coding of Urdhva tiryakbhyam Sutra for 8x8 bits multiplication

and their FPGA implementation by Xilinx Synthesis Tool on Spartan 3E kit have been done.

Page 5: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

ii

LIST OF FIGURES

Figure 2.1: Multiplication of two decimal numbers by Urdhva Tiryakbhyam

Figure 2.2: Line diagram for multiplication of two 4 - bit numbers.

Figure 2.3: Hardware architecture of the Urdhva tiryakbhyam multiplier

Figure 2.4: Multiplication Using Nikhilam Sutra

Figure 2.5: Reversible Logic Gates

Figure 2.6: Reversible Implementation of 2x2 UT Multiplier

Figure 2.7: 5 bit ripple carry adder

Figure 2.8: 4 bit Ripple carry adder

Figure 2.9: 6 bit Ripple carry adder using Reversible gates

Figure 2.10: 9 bit Ripple carry adder using Reversible gates

Figure 3.1: Block diagram of 2x2 Multiplie

Figure 3.2: RTL View of 2x2 Bits Multiplier by ModelSim

Figure 3.3: Block diagram of 4x4 Bit Vedic Multiplier

Figure 3.4 Algorithm of 4x4 bit UT Multiplier

Figure 3.5: RTL View of 4x4 Bit UT Multiplier by ModelSim

Figure 3.6: 8X8 Bits decomposed Vedic Multiplier.

Figure 4.2: FPGA Design Flow

Figure 4.3: (a) Design Flow during FPGA Implementation (b) Procedure

Followed for Implementation

Figure 5.1 VLSI Design Flow

Figure 5. Simulation Output View of 4:1 MUX Using ModelSim

Waveform Viewer

Figure 5.3 Synthesis of 4:1 MUX Using Leonardo Spectrum

Figure 5.4 Layout view of a system

Figure 5.5 Module Design

Figure 5.6 Port connection Rules

Figure 6.1 Xilinx Project Navigator window

Fig 6.2 New Project Initiation window (snapshot from Xilinx ISE

software)

Figure 6.3 Device and Design Flow of Project (snapshot from Xilinx ISE

software)

Page 6: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

iii

Figure 6.4 Create New source window (snapshot from Xilinx ISE

software)

Figure 6.5 Creating Verilog-HDL source file (snapshot from Xilinx ISE

software)

Figure 6.6 Define Verilog Source window (snapshot from Xilinx ISE

software)

Figure 6.7 New Project Information window (snapshot from Xilinx ISE

software)

Figure 6.8 Verilog Source code editor window in the Project Navigator

(from Xilinx ISE software)

Figure 6.9 OR gate description using assign statement (snapshot from

Xilinx ISE software)

Figure 6.10 Implementing the Design (snapshot from Xilinx ISE software)

Figure 6.11 Top Level Hierarchy of the design

Figure 6.12 Realized logic by the XilinxISE for the Verilog code

Figure 6.13 Simulating the design (snapshot from Xilinx ISE software)

Figure 6.14 Behavioral Simulation output Waveform (Snapshot from

ModelSim)

Figure 7.1: Synthesis report

Figure 7.2: Program Code

Figure 7.3: Top view of system

Figure 7.4: RTL view of system

Figure 7.5: Test bench code

Figure 7.6: Simulated output

Figure 7.7: Time Delay of system

Page 7: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

iv

LIST OF TABLES

Table 4.1: Summary of FPGA features

Table 7.1: Time delay comparison table

Page 8: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

v

Page 9: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

CONTENTS PAGE NO

LIST OF FIGURES i-ii

LIST OF TABLES iii

ABSTRACT iv

1. INTRODUCTION 1

1.1 OBJECTIVE 4

1.2 THESIS ORGANISATION 4

1.3 TOOLS USED 4

2. VEDIC MULTIPLICATION ALGORITHMS 5

2.1HISTORY OF VEDIC MATHEMATICS 5

2.2 ALGORITHMS OF VEDIC MATHEMATICS 7

2.2.1 VEDIC MULTIPLICATION 7

2.2.2 SQUARE ALGORITHM 13

2.2.3 CUBE ALGORITHM 14

2.3 PERFORMANCE 15

2.3.1 SPEED 15

2.3.2 POWER 15

2.3.3 AREA 16

2.4 DESIGN SYNOPSIS 16

3. DESIGN AND SOFTWARE SIMULATION 20

3.1IMPLEMENTATION OF 2X2 BITS VEDIC MULTIPLIER 20

3.2 IMPLEMENTATION OF 4X4 BITS MULTIPLIER 21

3.3 IMPLEMENTATION OF 8X8 BIT MULTIPLIER 23

4. IMPLEMENTATION AND TESTING OF MULTIPLIER 25

4.1FPGA IMPLIMENTATION 25

4.1.1 OVERVIEW OF FPGA 25

4.1.2 DESIGN ENTITY 26

4.1.3 BEHAVIOURAL SIMULATION 27

4.1.4 DESIGN SYNTHASIS 27

4.1.5 DESIGN IMPLEMENTATION 27

4.2 IMPLEMENT DESIGN IN FPGA 29

Page 10: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

4.3 DOWNLOAD DESIGN TO THE SPARTAN -3E KIT 29

4.4 PROGRAMMING THE FPGA 29

5. VERILOG 30

5.1 HISTORY OF VERILOG 30

5.2 BASIC CONCEPTS 30

5.2.1 HARDWARE DESCRIPTION LANGUGAE 30

5.2.2 VERILOG INTRODUCTION 31

5.3 DESIGN FLOW 31

5.3.1 DESIGN SPECIFICATIONS 31

5.3.2 RTL DESCRIPTION 31

5.3.3 FUNCTIONAL VERIICATION & TESTING 33

5.3.4 LOGIC SYNTHASIS 33

5.3.5 LOGICAL VERIFICATION & TESTING 34

5.3.6 FLOOR PLANNING 34

5.3.7 PHYSICAL LAYOUT 34

5.3.8 LAYOUT VERIFICATION 34

5.3.9 IMPLEMENTATION 35

5.5 MODULES 35

5.6 PORTS 36

5.6.1 PORT DECLERSTION 36

5.6.2 VERILOG KEYWORD TYPE OF PORT 37

5.6.3 PORT CONNECTION RULES 37

6. DIGITAL CIRCUIT DESIGN USING XILINX ISE TOOLS 39

6.1 INTRODUCTION 39

6.1.1 FPGA 40

6.2 SIMULATING AND VIEWING OUTPUT WAVEFORMS 51

7. XILINX SYNTHESIS AND OUTPUT SCREENS 53

7.1 PROPOSED METHOD OUTPUT SCREENS 53

CONCLUSION & FUTURE SCOPE 58

REFERENCES 59

Page 11: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 1

CHAPTER 1

1. INTRODUCTION

The most important fundamental function in arithmetic operations is

multiplication. Some of the frequently used Computation- Intensive Arithmetic

Functions(CIAF) are Multiplication-based operations such as Multiply and

Accumulate(MAC) and inner product. These are presently used in many Digital Signal

Processing (DSP) applications such as Fast Fourier Transform(FFT), convolution,

filtering and in microprocessors in its arithmetic and logic unit. There is a need of high

speed multiplier since multiplication dominates the execution time of most DSP

algorithms. At present the instruction cycle time of a DSP chip determination depends on

multiplication time and this time is still a dominant factor.

The demand for high speed processing has been increasing as a result of

expanding computer and signal processing applications. Higher throughput arithmetic

operations are important to achieve the desired performance in many real-time signal and

image processing applications. One of the key arithmetic operations in such applications

is multiplication and the development of fast multiplier circuit has been a subject of

interest over decades. Reducing the time delay and power consumption are very essential

requirements for many applications. This work presents different multiplier

architectures. Multiplier based on Vedic Mathematics is one of the fast and low power

multiplier.

Minimizing power consumption for digital systems involves optimization at all

levels of the design. This optimization includes the technology used to implement the

digital circuits, the circuit style and topology, the architecture for implementing the

circuits and at the highest level the algorithms that are being implemented. Digital

multipliers are the most commonly used components in any digital circuit design. They

are fast, reliable and efficient components that are utilized to implement any operation.

Depending upon the arrangement of the components, there are different types of

multipliers available. Particular multiplier architecture is chosen based on the

application.

Page 12: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 2

In many DSP algorithms, the multiplier lies in the critical delay path and

ultimately determines the performance of algorithm. The speed of multiplication

operation is of great importance in DSP as well as in general processor. In the past

multiplication was implemented generally with a sequence of addition, subtraction and

shift operations. There have been many algorithms proposals in literature to perform

multiplication, each offering different advantages and having tradeoff in terms of speed,

circuit complexity, area and power consumption.

The multiplier is a fairly large block of a computing system. The amount of

circuitry involved is directly proportional to the square of its resolution i.e. A multiplier

of size n bits has n2 gates. For multiplication algorithms performed in DSP applications

latency and throughput are the two major concerns from delay perspective. Latency is

the real delay of computing a function, a measure of how long the inputs to a device are

stable is the final result available on outputs. Throughput is the measure of how many

multiplications can be performed in a given period of time; multiplier is not only a high

delay block but also a major source of power dissipate minimizes power consumption, it

is of great interest to reduce the delay by using various delay optimizations.

Digital multipliers are the core components of all the digital signal processors

(DSPs) and the speed of the DSP is largely determined by the speed of its multipliers.

Two most common multiplication algorithms followed in the digital hardware are array

multiplication algorithm and Booth multiplication algorithm. The computation time

taken by the array multiplier is comparatively less because the partial products are

calculated independently in parallel. The delay associated with the array multiplier is the

time taken by the signals to propagate through the gates that form the multiplication

array. Booth multiplication is another important multiplication algorithm. Large booth

arrays are required for high speed multiplication and exponential operations which in

turn require large partial sum and partial carry registers. Multiplication of two n-bit

operands using a radix-4 booth recording multiplier requires approximately n / (2m)

clock cycles to generate the least significant half of the final product, where m is the

number of Booth recorder adder stages. Thus, a large propagation delay is associated

with this case.

Due to the importance of digital multipliers in DSP, it has always been an active

area of research and a number of interesting multiplication algorithms have been

Page 13: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 3

reported in the literature. In this thesis work, Urdhva tiryakbhyam Sutra is first applied to

the binary number system and is used to develop digital multiplier architecture. This is

shown to be very similar to the popular array multiplier architecture. This Sutra also

shows the effectiveness of to reduce the NXN multiplier structure into an efficient 4X4

multiplier structures. Nikhilam Sutra is then discussed and is shown to be much more

efficient in the multiplication of large numbers as it reduces the multiplication of two

large numbers to that of two smaller ones. The proposed multiplication algorithm is then

illustrated to show its computational efficiency by taking an example of reducing a 4X4-

bit multiplication to a single 2X2-bit multiplication operation. This work presents a

systematic design methodology for fast and area efficient digit multiplier based on Vedic

mathematics .The Multiplier Architecture is based on the Vertical and Crosswise

algorithm of ancient Indian Vedic Mathematics.

This work presents methodology to detect and locate faults using Built in Self

Test (BIST) and other various Designs for Testability (DFT) methods. It also introduces

Automatic Test Pattern Generation for maximum fault coverage. The task of determining

whether the chip is working properly or not is very tedious. However, if chip is not

properly fabricated, they can cause system failure and result in heavy loss in economy.

System failure results difficulty in debugging. The debugging cost grows exponentially

as we move from chip to board level and then toward the system level. As the number of

transistor integrated in the chip increases, task to test the functionality of chip become

more and more difficult. To overcome these design issues, Design for Testability has

become more important.

Automatic Test Pattern Generation is a process of generating patterns to test a

circuit which is described strictly with a logic level net list. They can generate circuit test

vectors to detect faults in the circuit. They can find redundant or unnecessary circuit

logic and they can prove whether one circuit implementation matches the circuit

implementation.

Page 14: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 4

1.1 OBJECTIVE

The main objective of this thesis work is to design and implement a fast vedic

UT multiplier using reversible logic gates with self testing, which can be used in the

application of any processor. The study, design and implementation of Vedic multiplier

with Built In Self Test technique deals in this thesis work. Vedic multiplication using

reversible logic gates, square and cube algorithms has been explored in this thesis work.

Here the architecture of Vedic multiplier depending on speed specification is developed

here. Spartan 3E Board is used for the Hardware Implementation of this multiplier. The

testing of this multiplier is finally done using BIST technique.

1.2 THESIS ORGANIZATION

The functionality of Vedic multiplier using reversible logic gates and

fundamental concepts of multiplications, architectures are going to be discussed in

chapter2 The design and software implementation of different modules of the Vedic

multiplier using reversible gates are discussed in Chapter 3 & chapter 4. Simulation

software ISE (Integrated Software Environment) of Xilinx and ModelSim are used for

the coding of modules.

The hardware implementation of Vedic multiplier using reversible logic gates on FPGA

using Xilinx tool is going to be discussed and the design flow of BIST is also explained

in chapter 6.In chapter 7 results obtained from realization of Vedic multiplier using

reversible logic gates on FPGA kit, in terms of speed, area and number of gates are

shown. The observation of Built In Self Test results of has done. By observing the

results of proposed work, a conclusion and future scope of the thesis work are discussed.

1.3 TOOLS USED

Simulation Software: Modelsim6.1e has been used for simulation. For synthesis and

verification ISE14.3i (Integrated system environment) has been used.

Hardware used: Xilinx Spartan3E (Family), XC3S100(Device),VQ100(Package), -5

(Speed Grade) FPGA devices.

Page 15: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 5

CHAPTER 2

2. VEDIC MULTIPLICATION ALGORITHMS

2.1 HISTORY OF VEDIC MATHEMATICS

Vedic mathematics is part of four Vedas (books of wisdom). It is part of

Sthapatya-Veda (book on civil engineering and architecture), this is an upa-veda

(supplement) of Atharvana Veda. It covers explanation of several modern mathematical

terms including quadratic equations, factorization ,arithmetic, geometry (plane, co-

ordinate), trigonometry, and even calculus.

His Holiness Jagadguru Shankaracharya Bharati Krishna Teerthaji Maharaja

(1884-1960) comprised all this work together and gave its mathematical explanation

while discussing it for various applications.16 sutras (formulae) and 16 Upa sutras (sub

formulae) was constructed by Swamiji after extensive research in Atharvana Veda. these

formulae were constructed by Swamiji himself obviously these formulae are not to be

found in present text of Atharvana Veda since Vedic mathematics which couldn‟t be

disapproved because it is not only a mathematical wonder. Vedic Mathematics has

already crossed the boundaries of India and has become a leading topic of research

abroad due these phenomenal characteristic. Several basic as well as complex

mathematical operations are deal with vedic mathematics. The various branches of

mathematics like geometry, algebra, arithmetic are mainly included in Vedic

mathematics based on 16 Sutras (or aphorisms) dealing with etc. These Sutras are

enlisted below alphabetically along with their brief meanings

1. (Anurupye) Shunyamanyat –If one is in ratio, the other is zero.

2. Chalana-Kalanabyham –Differences and Similarities.

3. Ekadhikina Purvena –By one more than the previous One.

4. Ekanyunena Purvena –By one less than the previous one.

5. Gunakasamuchyah –The factors of the sum is equal to the sum of the factors.

6. Gunitasamuchyah –The product of the sum is equal to the sum of the product.

7. Nikhilam Navatashcaramam Dashatah –All from 9 and last from 10.

Page 16: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 6

8. Paraavartya Yojayet –Transpose and adjust.

9. Puranapuranabyham –By the completion or no completion.

10. Sankalana- vyavakalanabhyam –By addition and by subtraction.

11. Shesanyankena Charamena –The remainders by the last digit.

12. Shunyam Saamyasamuccaye –When the sum is the same that sum is zero.

13. Sopaantyadvayamantyam –The ultimate and twice the penultimate.

14. Urdhva-tiryakbhyam –Vertically and crosswise.

15. Vyashtisamanstih –Part and Whole.

16. Yaavadunam –Whatever the extent of its deficiency.

These methods of architectures and ideas may be applied to applied mathematics

of various kinds and spherical geometry, plain and conics, trigonometry, calculus (both

differential and integral) directly. All these Sutras were reconstructed from ancient Vedic

texts early in the last century s mentioned earlier. There are so many Sub-sutras were

also discovered at the same time but are not discussed here.

The reduction of cumbersome-looking calculations in conventional mathematics

to a very simple one is the beauty of Vedic mathematics lies in that. The natural

principles on which the human mind works are the basic building blocks of the Vedic

formulae . Various branches of engineering such as computing and digital signal

processing.

The multiplier architecture can be generally classified into three categories. First

is the serial multiplier which emphasizes on hardware and minimum amount of chip

area. Second is parallel multiplier (array and tree) which carries out high speed

mathematical operations. But the drawback is the relatively larger chip area

Page 17: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 7

consumption. Third is serial- parallel multiplier which serves as a good trade-off

between the times consuming serial multiplier and the area consuming parallel

multipliers.

2.2 ALGORITHMS OF VEDIC MATHEMATICS

2.2.1 VEDIC MULTIPLICATION

The proposed Vedic multiplier is based on the Vedic multiplication formulae

(Sutras). For the multiplication of two numbers in the decimal number system the

proposed Sutras have been traditionally used. To make the proposed algorithm

compatible with the digital hardware in this work, the same ideas are applied to the

binary number system. The algorithms that took part in Vedic multiplication based are

explained in further discussion.

2.2.1.1 Urdhva Tiryakbhyam sutra

Urdhva Tiryakbhyam Sutra is applicable to all cases of multiplication. This sutra

performs the multiplication using the principle Vertically and crosswise multiplication.

The generation of all partial products can be done with the concurrent addition of these

partial products. The fig 2.1 explains parallelism in generation of partial products and

their summation. The algorithm can be generalized for n x n bit number. This multiplier

is independent of the clock frequency of the processor as the partial products and their

sums are calculated in parallel. The same amount of time will require by this multiplier

to calculate the product and thus it is independent of the clock frequency.

The need of microprocessors to operate at increasingly high clock frequencies is

reduces using which is main advantage. There is an increase in processing power as a

result of high clock frequency. The power dissipation is also increases which is a dis

advantage results in higher device operating temperatures. Through the implementation

of Vedic multiplier in processor design the problems are easily over come and hence the

device failure may avoided. The great advantage of this multiplier is gate delay and area

increases very slowly with the number of bits increases as compared to conventional

multipliers. Hence it is more efficient than conventional multipliers. This architecture is

quite efficient in terms of silicon area/speed.

Page 18: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 8

1) Multiplication of two decimal numbers- 325*738

To illustrate this multiplication scheme, the multiplication of two decimal

numbers (325 * 738) is going to explain here. This multiplication process is explained in

terms of line diagram for as shown below. Multiplication proceeds from right to left, first

digits are multiplied and to the carry which is obtained from the previous step. This

result in the generation of a part of the bits in the result. This process continuous by

adding the previous carry to the next step. When one or more lines are in one step then

all the results are added. All the bits act as carry for the next step except, least significant

bit which acts as the result bit. For the first time carry bit is zero.

Figure 2.1: Showing Multiplication of two decimal numbers by Urdhva

Tiryakbhyam

2) Algorithm for 4 x 4 bit Vedic multiplier Using Urdhva Tiryakbhyam

(Vertically and crosswise) for two Binary numbers

CP = Cross Product (Vertically and Crosswise)

X3 X2 X1 X0 Multiplicand

Y3 Y2 Y1 Y0 Multiplier

--------------------------------------------------------------------

H G F E D C B A

---------------------------------------------------------------------

P7 P6 P5 P4 P3 P2 P1 P0 Product

---------------------------------------------------------------------

Page 19: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 9

PARALLEL COMPUTATION METHODOLOGY

1. CP X0 = X0 * Y0 = A

Y0

2. CP X1 X0 = X1 * Y0+X0 * Y1 = B

Y1 Y0

3. CP X2 X1 X0 = X2 * Y0 +X0 * Y2 +X1 * Y1 = C

Y2 Y1 Y0

4. CP X3 X2 X1 X0 = X3 * Y0 +X0 * Y3+X2 * Y1 +X1 * Y2 = D

Y3 Y2 Y1 Y0

5. CP X3 X2 X1 = X3 * Y1+X1 * Y3+X2 * Y2 = E

Y3 Y2 Y1

6. CP X3 X2 = X3 * Y2+X2 * Y3 = F

Y3 Y2

7 CP X3 = X3 * Y3 = G

Y3

3) Algorithm for 8 X 8 Bit Multiplication Using Urdhva Triyakbhyam for two

Binary numbers

A = A7A6A5A4 A3A2A1A0

X1 X0

B = B7B6B5B4 B3B2B1B0

Y1 Y0

X1 X0

* Y1 Y0

---------------------------------------------------------

F E D C

CP = X0 * Y0 = C

CP = X1 * Y0 + X0 * Y1 = D CP = X1 * Y1 = E

Where CP = Cross Product.

Page 20: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 10

For the illustration of the multiplication algorithm, the multiplication of two

binary numbers a3a2a1a0 and b3b2b1b0 are explained. The result of this multiplication

is expressed as... r3r2r1r0 since it should be more than 4 bits. Fig 2.2 shows the line

diagram for multiplication of two 4-bit numbers which is nothing but the mapping of the

binary system in Fig 2.1. Each bit is represented by a circle for the simplicity. the least

significant bits of the multiplicand and the multiplier are multiplied to obtain least

significant bit r0.

Figure 2.2: Showing Line diagram for multiplication of two 4 - bit numbers.

The least significant bit of the product is first obtained by multiplying least

significant bits. Then, the product of LSB of multiplier and next higher bit of the

multiplicand are added with the multiplication of LSB of the multiplicand and the next

higher bit of the multiplier . This sum results in second bit of the product and the carry is

added in the output of next stage sum obtained by the crosswise and vertical

multiplication and addition of three bits of the two numbers from least significant

position. Next, all the four bits are processed with crosswise multiplication and addition

to give the sum and carry. The sum is the corresponding bit of the product and the carry

is again added to the next stage multiplication and addition of three bits except the LSB.

The same operation continues until the multiplication of the two MSBs to give the MSB

of the product. For example, if in some intermediate step, we get 110, then 0 will act as

result bit (referred as rn) and 11 as the carry (referred as cn).

Page 21: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 11

r0rr0=a0b0; (1)

c1rr1=a1b0+a0b1; (2)

c2rr2=c1+a2b0+a1b1 + a0b2; (3)

c3rr3=c2+a3b0+a2b1 + a1b2 + a0b3; (4)

c4rr4=c3+a3b1+a2b2 + a1b3; (5)

c5rr5=c4+a3b2+a2b3; (6)

c6rr6=c5+a3b3 (7)

The final product is c6r6r5r4r3r2r1r0 being. Thus all cases of multiplications

employ this general mathematical formula.

Figure 2.3: Showing Hardware architecture of the Urdhva tiryakbhyam multiplier

The proposed hardware architecture design resembles that of the popular array

multiplier where the final product is achieved through an array of adders. All the partial

products are calculated in parallel in general array multiplier so that the delay associated

is clearly the time taken by the carry to propagate through the adders which form the

Page 22: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 12

multiplication array. Thus array multiplier is not suitable for the multiplication of large

numbers because of large propagation delay involved. An efficient multiplier algorithm

for multiplication of two large numbers is the Nikhilam Sutra algorithm.

2.2.1.2 Nikhilam Sutra

The meaning of Nikhilam Sutra is all from nine and last from ten. All cases of

multiplication can employ Nikhilam Sutra, when the numbers involved are large it is

more effective. To perform the multiplication operation it finds out the compliment of

the large number from its nearest base. This multiplication algorithm is less complex for

large numbers. Let us consider the multiplication of two decimal numbers (96 * 93) here

the base is chosen 100 since it is nearest to and greater than both these two numbers.

Figure 2.4: Showing Multiplication Using Nikhilam Sutra

With simple multiplication of the numbers of the Column 2 (7*4 = 28) the right

hand side (RHS) of the product resulted. By cross subtracting the second number of

Column 2 from the first number of Column 1 or vice versa, i.e., 96 - 7 = 89 or 93 - 4 =

89 the left hand side (LHS) of the product can be obtained. By concatenating RHS and

LHS (Answer = 8928) the final result is obtained.

Page 23: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 13

2.2.2 SQUARE ALGORITHM

Urdhva Triyakbhyam‟s square of a property is calculated using the Duplex. The

duplex can be achieved by taking twice the product of the outermost pair and then add

twice the product of the next outermost pair and so on till no pairs are left. When there

are odd numbers of bits in the original sequence, there is no possibility of leaving at least

one bit by itself in the middle so that this enters as its square. Thus for 987654321,

D= 2 * ( 9 * 1) + 2 * ( 8 * 2 ) + 2 * ( 7 * 3 ) + 2 * ( 6 * 4) + 5 * 5 = 165.

The Duplex can be explained further as follows

For a 1 bit number D is its square.

For a 2 bit number D is twice their product

For a 3 bit number D is twice the product of the outer pair + square of the middle bit.

For a 4 bit number D is twice the product of the outer pair + twice the product of the

inner pair.

The algorithm is explained for 4 x 4 bit number. The Vedic square algorithm is very fast

and smaller which are added advantages for this than the array, Booth and Vedic

multipliers.

a) Algorithm for 4 x 4 bit Square Using Urdhva Tiryakbhyam D - Duplex

X3 X2 X1 X0 Multiplicand

X3 X2 X1 X0 Multiplier

--------------------------------------------------------------

H G F E D C B A

--------------------------------------------------------------

P7 P6 P5 P4 P3 P2 P1 P0 Product

---------------------------------------------------------------

Page 24: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 14

PARALLEL COMPUTATION

1. D = X 0 * X0 = A

2. D = 2 * X1 * X0 = B

2.2.3 CUBE ALGORITHM

The cube of the number is based on the Anurupyena Sutra of Vedic Mathematics

Which states “If you start with the cube o(in the top row) in a Geometrical Proportion (in

the ratio of the original digits themselves) then you will find that the 4th figure (on the

right end) is just the cube of the second digit”.

If a and b are two digits then according to Anurupye Sutra,

a3 a

2b ab

2 b

3

2a2b 2ab

2

--------------------------------

a3 + 3a2b + 3ab

2 + b

3 = ( a + b )

3

--------------------------------

The cube of a number can be find using this sutra. The Anurupyena Sutra is

applied to find the cube of the number. The number M of N bits having its cube to be

calculated is divided in two partitions of N/2 bits, say a and b, and then anurupyena is

used to determine cube of the number. In the above algebraic explanation of the

Anurupye Sutra, we have seen that a3 and b

3 are to be calculated in the final

computation of (a+b)3.

3. D = 2 * X2 * X0 + X1 * X1 = C

4. D = 2 * X3 * X0 + 2 * X2 * X1 = D

5 D = 2 * X3 * X1 + X 2 * X2 = E

6. D = 2 * X3 * X2 = F

7. D = X3 * X3 = G

Page 25: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 15

The Anurupyena Sutra is recursively applied to calculate the intermediate a3 and b

3.

The working of Anurupyena sutra is illustrated as follows.

( 15 )3 = 1 5 25 125

10 50

----------------------------------

3 3 7 5

-----------------------------------

2.3 PERFORMANCE

2.3.1 SPEED:

Array multiplier and Booth multiplier are slower than Vedic multiplier. The

timing delay is greatly reduced for Vedic multiplier as compared to other multipliers as

the number of bits increases from 8x8 bits to 16x16 bits. Gate delays and regularity of

structures are the greatest advantages of Vedic multiplier as compared to other

multipliers. The delay in UT multiplier using normal gates and wallace multiplier are

23.67ns and 25.79 ns respectively while delay in Vedic multiplier for 8 x 8 bit number is

21.04 ns. Hence this multiplier is the highest speed multiplier among conventional

multipliers. Thus it is the best multiplier as compared to all conventional multipliers.

2.3.2 POWER:

Less number of gates are required for Vedic Multiplier. Hence for a given 8x8

Multiplier so that its power dissipation is very small as compared to other conventional

multiplier architectures. It has less switching activity as compared to other conventional

multiplier architectures for the same operation.

The following steps 1-5 explain the improvements of Vedic multiplier.

1. In parallel computation B of (a) square algorithm, the term X1*Y0+X0*Y1 of

multiplier algorithm, that is two 4x4 multiply operations are reduced to 2* X1*X0, that

is, one 4x4 multiply operation (and multiply by 2 requires only shift operation).

2. In parallel computation C of (a) square algorithm, the term X2 * Y0+X0*Y2 + X1 *

Y1 of multiplier algorithm, that is three 4x4 multiply operations are reduced to 2* X2 *

Page 26: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 16

X0+X1 * X1, that is only two 4x4 bit operations.

3. In parallel computation D of (a) square algorithm, the term X3 * Y0+X0* Y3+

X2 * Y1 +X1 * Y2 of (2) multiplier algorithm, that is, 4 multiply operations of 4x4 bit

are reduced to 2 * X3 * X0+2 * X2 *X1, that is, only two multiply operations.

4. In parallel computation E of (a) square algorithm, the term X3 * Y1 +X1 *

Y3+X2 * Y2 of multiplier algorithm, that is, three 4x4 multiply operations are reduced

to 2 * X3 * X1 + X2 * Y2, that is, only two multiply operations.

5. In parallel computation F of (a) square algorithm, the term X3*Y2+X2*Y3 of (2)

multiplier algorithm, that is, two 4x4 bit multiply operations are reduced to 2 *X3 * X2,

that is, only one multiply operation.

2.3.2 AREA:

Other multiplier architectures needed more area as compared to Vedic UT

multiplier i.e. the number of devices used in Vedic UT multiplier are 259 while Booth

and Array Multiplier is 592 and 495 respectively for 8 x 8 bit number when implemented

on Spartan3E FPGA . Hence the Vedic square multiplier requires small area and the

2fastest of the all reviewed architectures. There is an improved efficiency in terms of

speed and area in UT multiplier using reversible logic gates compared to wallce and UT

Multiplier using normal gate. This architecture can be easily realized on silicon due to its

parallel and regular structure and can high speed working can be achieved without

increasing the clock frequency. The gate delay and area increase very slowly as the

number of bits increases as compared to the wallace and UT multiplier using normal

gates architectures. parallelizing the generation of partial products with their concurrent

summations gains the speed improvements. It is demonstrated that in terms of silicon

area/speed this design is quite efficient.

2.4 Design Synopsis:

The reversible logic circuits have the following important design constraints.

1. Reversible logic gates do not allow fan-outs.

2. Reversible logic circuits should have minimum quantum cost.

3. The design can be optimized so as to produce minimum number of garbage outputs.

4. The reversible logic circuits must use minimum number of constant inputs.

5. The reversible logic circuits must use a minimum logic depth or gate levels.

The basic reversible logic gates encountered during the design are listed below:

Page 27: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 17

1. Feynman Gate:

It is a 2x2 gate and its logic circuit is as shown in the figure. It is also known as

Controlled Not (CNOT) Gate. It has quantum cost one and is generally used for Fan Out

purposes.

2. Peres Gate:

It is a 3x3 gate and its logic circuit is as shown in the figure. It has quantum cost four. It

is used to realize various Boolean functions such as AND, XOR.

3. Fredkin Gate:

It is a 3x3 gate and its logic circuit is as shown in the figure. It has quantum cost five. It

can be used to implement a Multiplexer.

4. HNG Gate:

It is a 4x4 gate and its logic circuit is as shown in the figure. It has quantum cost six. It is

used for designing ripple carry adders. It can produce both sum and carry in a single gate

thus minimizing the garbage and gate counts.

Figure 2.5: Showing Reversible Logic Gates

Page 28: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 18

Figure 2.6:showing Reversible Implementation of 2x2 UT Multiplier

Figure 2.7:showing 5 bit ripple carry adder

Page 29: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 19

Figure 2.8: 4 bit Ripple carry adder

Figure 2.9: 6 bit Ripple carry adder using Reversible gates

Figure 2.10: 9 bit Ripple carry adder using Reversible gates

Page 30: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 20

CHAPTER 3

3. DESIGN AND SOFTWARE SIMULATION

A novel technique of digital multiplication which is quite different from the

conventional method of multiplication like add and shift is used for the designing of

Vedic Multiplier. Verilog HDL is used for the design of Vedic Multiplier, since this give

effective utilization of structural method of modeling. Verilog hardware description

language is used for the implementation of individual block. ModelSim and ISE are used

for the verification of functionality of each block is using simulation software,.

3.1 IMPLEMENTATION OF 2X2 BITS VEDIC MULTIPLIER

One bit multipliers and adders are the basic building blocks of this multiplier.

Two input AND gate and for addition full adder can be utilized for performing the one

bit multiplication. Figure 3.2 shows the 2 x 2 bit multiplier.

Figure 3.1:Showing Block diagram of 2x2 Multiplie

As per basic method of multiplication, results are obtained after getting partial

product and doing addition.

A1 A0

X B1 B0

------------------

A1B0 A0B0

A1B1 A0B1

-----------------------------

Q3 Q2 Q1 Q0

Page 31: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 21

In Vedic method, Q0 is vertical product of bit A0 and B0, Q1 is addition of

crosswise bit multiplication i.e. A1 & B0 and A0 and B1, and Q2 is again vertical

product of bits A1 and B1 with the carry generated, if any, from the previous addition

during Q1. Q3 output is nothing but carry generated during Q2 calculation. This module

is known as 2x2 multiplier block.

Figure 3.2:Showing RTL View of 2x2 Bits Multiplier by ModelSim

3.2 IMPLEMENTATION OF 4X4 BITS VEDIC MULTIPLIER

Little modification is required for higher no. of input bits. The input bits are

divided into two equal no. of bits

Figure 3.3: Showing Block diagram of 4x4 Bit Vedic Multiplier

Page 32: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 22

Let us analyze 4x4 multiplications, say A3A2A1A0 and B3B2B1B0. The result

of this 4X4 multiplication is Q7Q6Q5Q4Q3Q2Q1Q0.Fig 3.4 shows the block diagram

of 4x4 Vedic Multiplier is given below.

The fundamental of Vedic multiplication, taking two bit at a time and using 2 bit

multiplier block,

A3A2 A1A0

XB3B2 B1B0

---------------------------

Figure 3.4: Showing Algorithm of 4x4 bit UT Multiplier .

2x2 bits multiplier is the basic building block as shown above is. A1 A0 and B1

B0 are the inputs for first 2x2 multiplier. A3 A2 and B3 B2 are the inputs for last block

is 2x2 multiplier. A3A2 & B1B0 and A1A0 & B3B2 are the inputs for middle. Hence

the 8 bit answer Q7Q6Q5Q4Q3Q2Q1Q0 is the final result of multiplication.

The figure 3.6 show 4x 4-bit multiplier the structure using 2X2 bit blocks.

Page 33: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 23

Figure 3.5: Showing RTL View of 4x4 Bit UT Multiplier by ModelSim

3.3 IMPLEMENTATION OF 8X8 BIT UT MULTIPLIER

The figure 3.7 shows the construction of 8x 8 bit UT multiplier using 4X4 bit

blocks using reversible logic gates. In this figure AH-AL are the two 4-bit pairs of the 8

bit multiplicand A. Similarly BH-BL are the two pairs of multiplicand B. The result of

16 bit product can be written as:

P= A x B= (AH-AL) x (BH-BL)

= AH x BH+AH x BL + AL x BH+ AL x BL

The final product can be obtained suitably by adding the outputs of 4X4 bit

multipliers. Also two adders are required similarly in the final stage.

Now 4x4 bits multiplier which is the basic building block of 8x8 bits UT

multiplier is which implemented in its structural model.

The fastest design of a circuit can be obtained by structural modeling.

Page 34: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 24

Figure 3.6: Showing 8X8 Bits decomposed Vedic Multiplier.

RESULT = (Q15- Q8) & (Q7- Q4) & (Q3-Q0)

Page 35: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 25

CHAPTER 4

4. I MPLEMENTATION AND TESTING OF MULTIPLIER

4.1 FPGA IMPLEMENTATION

The FPGA that is used for the implementation of the circuit is the Xilinx Spartan

3E (Family), XC3S100e (Device), vq100 (Package), -5 (Speed Grade). The working

environment/tool for the design is Xilinx ISE14 .3i.

Device: Spartan 3E

(Family)

XC3S100e-

5vq100

Technology 90nm

I/O standards 232

No:of slices 960

4 input LUT‟s 1920

Bonded IOB‟s 66

Table 4.1: Showing Summary of FPGA features

4.1.1 Overview of FPGA

CAD software has become more mature as the FPGA architecture evolves and its

complexity increases. A fairly complete set of design tools that allows automatic

synthesis and compilation from design specifications in hardware specification

languages, such as Verilog or VHDL are provided by most FPGA vendors all the way

down to a bit stream to program FPGA chips. Fig. 4.1 shows a typical FPGA design

flow includes the steps and components.

The choice of FPGA device is the second design input component. A wide range

of FPGA devices typically provided by Each FPGA vendor, with different power

tradeoffs,cost and performance. a small (low capacity) device with a nominal speed-

grade may be selected by the designer at starting. But, it is necessary that the designer

has to upgrade to a high-capacity device if synthesis effort fails to map the design into

the target device. Similarly, he has to upgrade to a device with higher speed-grade if the

Device

family

Sparta

n 3E

Target

device

XC3S1

00e

Package Vq100

Speed

Grade

-5

Page 36: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 26

synthesis result fails to meet the operating frequency. Thus better synthesis tools are

required, since their quality directly impacts the performance and cost of FPGA designs.

Design declaration in HDL

FRONT END

Verify Behavior functionality

Synthesis

Translate

BACK END

Map

Place and Route

Program the FPGA

Figure 4.2: Showing FPGA Design Flow

4.1.2 Design Entry

A Hardware description Language like Verilog or VHDL is used to code the

design of basic architecture of the system . A concept of a design module is described

using Verilog .

Page 37: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 27

4.1.3 Behavioral Simulation

The code is verified using a simulation software, after the design phase, i.e.

Modelsim6.1e to generate outputs for different inputs and if it verifies then

modifications and necessary corrections will be done in the HDL code otherwise we will

proceed further and this is called as the behavioral simulation.

4.1.4 Design Synthesis

the design is then synthesized after the correct simulations results. The Xilinx

ISE tool does the following operations during synthesis:

HDL Compilation: The checking of the syntax of the code written for the design is

done after the tool compiles all the sub-modules in the main module if any .

Design Hierarchy Analysis: this analyzes the hierarchy of the design.

1. HDL Synthesis: The process of generating device net list format from VHDL or

Verilog code is called HDL synthesis. i.e. a complete circuit with logical elements such

as XORs, Tristate Buffers, Decoders, Flip flops, Latches, Comparators, Multiplexer,

Adder/Subtraction, Counters, Registers,etc.

2. Advanced HDL Synthesis: Low Level synthesis: The low level blocks such as

buffers, lookup tables are used to define the blocks synthesized in the HDL synthesis and

the Advanced HDL synthesis. The logic entities in the design are also optimized by

eliminating the redundant logic, if any and then optimizes it.

4.1.5 Design Implementation

The following sub processes are contained in the design implementation process:

1. Translation: The all the input net lists are merging by translate process and

outputs a Xilinx NGD (Native Generic Database) file and design constraints

information‟s.

2. Mapping: After the Translate process is complete then the Map process is run.

The target device present Mappin4.1.5g maps the logical design described in the NGD

file to the components/primitives (slices/CLBs An NCD file is created by the Map

Page 38: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 28

process.

3. Place and Route: After the design has been mapped then the place and route

(PAR) process is run. To place and route the design on the target FPGA design PAR

uses the NCD file created by the Map process.

4. Bit stream Generation: The process of “bi misleading because the data are no

more bit oriented than that of an instruction set processor and there is generally” which

is the collection of binary data used to program reconfigurable logic device is most

commonly

5. Functional Simulation: Prior to mapping of the design post-Translate (functional)

simulation can be performed. The user to verify that your design has been synthesized

correctly and any differences due to the lower level of abstraction can be identified is

allowed by this simulation process.

(a) (b)

Figure 4.3: Showing (a) Design Flow during FPGA Implementation (b) Procedure

Followed for Implementation

6. Static timing analysis: three are types of static timing analysis can be performed :

(a) Post-fit Static Timing Analysis: The timing Analyzer window open by the

Analyze Post-Fit Static timing process, which enables interactively to select timing paths

in the specified design for tracing the timing results.

(b) Post-Map Static Timing Analysis: The timing results of the Map process can be

Page 39: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 29

analyze. in evaluating timing performance (logic delay + route delay) Post-Map timing

reports can be very useful

(c) Post Place and Route Static Timing Analysis: All delays to provide a

comprehensive timing summary are incorporate by Post-PAR timing reports. You can

proceed by creating configuration data and downloading a device if a placed and routed

design has met all of your timing constraints.

7. Timing Simulation: A timing simulation net list can be created after your design has

been placed and routed. It is possible to see how your design will behave in the circuit

which is allowed by this simulation process.

4.2 IMPLEMENT DESIGN IN FPGA

The unique features of the Spartan-3E FPGA family are the highlights of the

Spartan-3E Starter Kit board and a convenient development board for embedded

processing applications is provided. After check syntax and synthesis, the board

implements the design and verifies that it meets the timing constraints.

4.3 DOWNLOAD DESIGN TO THE SPARTAN-3E KIT

The last step in the design verification process is this. Simple Instructions for

downloading the design to the Spartan-3 Starter Kit demo board are provided by this

section.

4.4 PROGRAMMING THE FPGA

The Generate Programming File process is run for generating a programming

file. After the FPGA design has been completely routed this process can be run. To

produce a bit stream (.BIT) or (.ISC) file for Xilinx device configuration the Generate

Programming File process runs BitGen, the Xilinx bit stream generation program. Using

the JTAG boundary scan method the FPGA device is then configured with the .bit file.

Then its working is verified by applying different inputs, after the Spartan device is

configured for the intended design.

Page 40: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 30

CHAPTER 5

5.1 HISTORY OF VERILOG

Verilog was started in the year 1984 by Gateway Design Automation Inc as a

proprietary hardware modeling language. It is rumored that the original language was

designed by taking features from the most popular HDL language of the time, called

HiLo, as well as from traditional computer languages such as C. At that time, Verilog

was not standardized and the language modified itself in almost all the revisions that

came out within 1984 to 1990.

Verilog simulator first used in 1985 and extended substantially through 1987.The

implementation of Verilog simulator sold by Gateway. The first major extension of

Verilog is Verilog-XL, which added a few features and implemented the infamous "XL

algorithm" which is a very efficient method for doing gate-level simulation.

Later 1990, Cadence Design System, whose primary product at that time

included thin film process simulator, decided to acquire Gateway Automation System,

along with other Gateway products., Cadence now become the owner of the Verilog

language, and continued to market Verilog as both a language and a simulator. At the

same time, Synopsys was marketing the top-down design methodology, using Verilog.

This was a powerful combination.

In 1990, Cadence organized the Open Verilog International (OVI), and in 1991

gave it the documentation for the Verilog Hardware Description Language. This was the

event which "opened" the language.

5.2 BASIC CONCEPTS

5.2.1 Hardware Description Language

Two things distinguish an HDL from a linear language like “C”:

Concurrency:

• The ability to do several things simultaneously i.e. different code-blocks can run

concurrently.

Timing:

• Ability to represent the passing of time and sequence events accordingly

Page 41: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 31

5.2.2 VERILOG Introduction

• Verilog HDL is a Hardware Description Language (HDL).

• A Hardware Description Language is a language used to describe a digital system; one

may describe a digital system at several levels.

• An HDL might describe the layout of the wires, resistors and transistors on an

Integrated Circuit (IC) chip, i.e., the switch level.

• It might describe the logical gates and flip flops in a digital system, i.e., the gate level.

• An even higher level describes the registers and the transfers of vectors of information

between registers. This is called the Register Transfer Level (RTL).

• Verilog supports all of these levels.

• A powerful feature of the Verilog HDL is that you can use the same language for

describing, testing and debugging your system.

VERILOG Features

• Strong Background: Supported by open verilog international and Institute of Electrical

and Electronics Engineering standardized.

• Industrial support: Simulation is very fast and synthesis is very efficient.

• Universal: Entire process is allowed in one design environment.

• Extensibility: It also allows Verilog PLI for extension of Verilog capabilities

5.3 DESIGN FLOW

The typical design flow is shown in figure,

5.3.1 Design Specification

• The project Specifications and requirements are written first

• The digital circuit functionality is explained for the architecture to be designed.

• Specification: It uses wave former ,test bencher or word for drawing waveform.

5.3.2 RTL Description

• CAD Tools are used for coding format for the Conversation of Specification.

Coding Styles:

• Gate Level Modeling

• Data Flow Modeling

• Behavioral Modeling

Page 42: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 32

• RTL Coding Editor: HDL Turbo Writer , Emacs ,Vim, , conTEXT,

Figure 5.1 Showing VLSI Design Flow

Page 43: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 33

5.3.3 Functional Verification &Testing

• The method of coding with respective inputs and outputs are going to be tested.

• Check the RTL Description once again if testing fails.

• Simulation: Using Xilinx , Verilog-XL ,ModelSim,

Figure 5.2 Showing Simulation Output View of 4:1 MUX Using ModelSim Wave form

Viewer

5.3.4 Logic Synthesis

• RTL description into Gate level -Net list form conservation.

• The circuit is described as a function of gates and connections.

• Synthesis: Synthesis is done by Altera and Xilinx ,Simplify Pro, Leonardo Spectrum

Design Compiler, FPGA Compiler.

Page 44: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 34

Figure 5.3 Showing Synthesis of 4:1 MUX Using Leonardo Spectrum

5.3.5 Logical Verification and Testing

• Simulation and synthesis are used for functional Checking of HDL coding. Check the

RTL description if fails.

5.3.6 Floor Planning Automatic Place and Route

• Layout is created with the respective gate level Net list.

• the blocks of the net list are arranged on the chip.

• Place & Route: Implement FPGA vendors P&R tool for FPGA. Very costly P&R

tools like Apollo required for ASIC tools.

5.3.7 Physical Layout

• The process of describing a circuit description into the physical layout is called the

Physical design, it explains the interconnections between the cells and routes position.

5.3.8 Layout Verification

• Under layout verification first the physical layout structure has to be verified.

• Floor Planning Automatic Place and Route and RTL Description can be done for any

modifications.

Page 45: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 35

5.3.9 Implementation

• The design process is the final stage in implementation.

• coding and RTL can be Implemented using Integrated circuits.

Figure 5.4 Showing Layout view of a system

5.5 MODULES

Distinct parts of a Verilog module consists of are as shown in below figure. The

keyword module is the beginning of a module definition. In a module definition the

module name, port list, port declarations, and optional parameters must come first in its

definition. If the module has any ports to interact with the external environment then

only Port list and port declarations are present. There are five components within a

module

• variable declarations,

• dataflow statements

• instantiation of lower modules

• behavioral blocks

• tasks or functions.

The following components may appear in any order and at any place in a given

module definition.

Page 46: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 36

The end module statement must always come last in a module definition. All

components except module, module name, and end module are optional and can be

mixed and matched as per design needs. Multiple modules definition in a single file are

allowed by Verilog. In the file the modules can be defined in any order.

Figure 5.5 Showing Module Design

Example Module Structure:

module <module name>(<module_terminals_list>);

…..

<module internals>

….

Endmodule

5.6 PORTS

The interface between a module and its environment is provided by the ports. The

input/output pins of an Integrated Circuit chip are its ports. The environment cannot see

the internals of the module. It is a great advantage for the designer. As long as the

interface is not modified the internals of the module may be mod ifiedwithout affecting

its environment . Terminals are the synonyms for the ports.

5.6.1 Port Declaration

the module may contain the declaration of all ports in the given list of ports

. The declaration of ports are explained in detail below.

Page 47: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 37

5.6.2 Verilog Keyword Type of Port

Input:- Input port

Output:- Output port

inout :-Bidirectional port

depending on the direction of the port signal, each port in the port list is given a label as

follows input, output, or inout,

5.6.3 Port Connection Rules

A port consisting of two units, primary unit is into the module and secondary unit

is out of the module. The primary and secondary units are connected. When modules are

instantiated within other modules there are rules governing port connections within

module. If any port connection rules are violated then the Verilog simulator complains.

The figure 5.6 shows the port connection rules.

Figure 5.6 Showing Port connection Rules

Inputs:

• Internally must be of net data type (e.g. wire)

• Externally the inputs may be connected to a reg or net data type

Outputs:

• Internally may be of net or reg data type

• Externally must be connected to a net data type

Inouts:

• Internally must be of net data type (tri recommended)

• Externally must be connected to a net data type (tri recommended)

Ports Connection to External Signals

Signals and Ports in a module can be connected in two ways. In the module

definition those two methods cannot be mixed .

Page 48: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 38

• Port by order list

• Port by name

Port by order list

Most spontaneous method for learners is the Connecting port by order list. The

order in which the ports in the ports list in the module definition must be connected in

the same order.

Syntax for instantiation with port order list:

module name instance name (signal, signal...);

The external signals a, b, out appear in exactly the same order as the ports a, b, out in the

module defined in adder in the below example.

Example

Port by name

For larger designs where the module have say 30 ports ,it is almost impractical

and possibility of errors if remembering the order of the ports in the module definition.

There is capability to connect external signals to ports by the port names, rather than by

position provided by the Verilog.

Syntax for instantiation with port name:

Module name instance name (.port name(signal), .port name (signal)… );

The port connections in any order as long as the port name in the module

definition correctly matches the external signal

Page 49: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 39

CHAPTER 6

DIGITAL CIRCUIT DESIGN USING XILINX ISE TOOLS

6.1 Introduction

Xilinx Tools is a suite of software tools used for the design of digital circuits

implemented using Xilinx Field Programmable Gate Array (FPGA) or Complex

Programmable Logic Device (CPLD). The design procedure consists of (a) design entry,

(b) synthesis of the design and implementation of the design, (c) functional simulation

and (d) testing and verification. The following CAD tools are used for digital designs by

entering the code in various ways: using a schematic entry tool, using a hardware

description language (HDL) – Verilog or VHDL or a combination of both Verilog and

VHDL .This thesis implement programs using the design flow that involves the use of

Verilog HDL.

The CAD tools enable you to design combinational and sequential circuits

starting with Verilog HDL design specifications. The steps of this design procedure are

listed below:

1. Create Verilog design input file(s) using template driven editor.

2. Compile and implement the Verilog design file(s).

3. Create the test-vectors and simulate the design (functional simulation) without using a

PLD (FPGA or CPLD).

4. Assign input/output pins to implement the design on a target device.

5. Download bit stream to an FPGA or CPLD device.

6. Test design on FPGA/CPLD device

The following segments are contained within the Xilinx software environment of a

Verilog input file.

Header: module name, list of input and output ports.

Declarations: input and output ports, registers and wires.

Logic Descriptions: equations, state machines and logic functions.

End: end module

Page 50: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 40

Verilog input format must be used for all the designs. For combinational logic

designs the state diagram segment is not exist.

6.1.1 Programmable Logic Device: FPGA

The digital designs of proposed multiplier are implemented in the Basys2 board

which has a Xilinx Spartan3E –XC3S100E FPGA with VQ100 package. This FPGA part

belongs to the Spartan family of FPGAs. These are a variety of packages for these device

families. This thesis uses devices that are packaged in 100 pin package with the

following part number: XC3S100E-VQ100. There are about 50K gates in this FPGA

device.

Creating a New Project

Click on the Project Navigator Icon on the Windows desktop for starting Xilinx

Tools. Then a Project Navigator window is opened on desktop screen. The last accessed

project is shown by this window.

Figure 6.1 Showing Xilinx Project Navigator window

Page 51: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 41

Opening a project

To create a new project select File->New Project. A new project window is

opened on the desktop. As shown below fill up the necessary entries:

Fig 6.2 Showing New Project Initiation window (snapshot from Xilinx ISE

software)

Project Name: Give the name to your project

Project Location: Give the storage location.

Leave the top level module type as HDL.

Example: If the project name is “or_gate”, enter “or_gate” as the project name and then

click on “Next” button.

Page 52: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 42

This brings up the following window:

Figure 6.3 Showing Device and Design Flow of Project (snapshot from Xilinx ISE

software)

Click on the „value‟ area and select from the list of values that appear for each of

the properties given below then click on the „value‟ area and select from the list of

values that appear.

Device Family: Family of the FPGA select the Spartan3E FPGA‟s.

Device: The number of the actual device enter XC3S100E.

Package: The type of package with the number of pins. The Spartan FPGA used

in this lab is packaged in VQ100 package.

Speed Grade: The Speed grade is “-5”.

Synthesis Tool: XST [VHDL/Verilog]

Simulator: This tool is used to simulate and verify the functionality of the design.

Modelsim simulator is integrated in the Xilinx ISE. Hence choose “Modelsim-XE

Verilog” as the simulator or even Xilinx ISE 14.3i Simulator can be used.

Then save the entries by clicking on NEXT button.

Page 53: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 43

A subdirectory with the project name is used to store all project files such as schematics,

netlists, Verilog files, VHDL files, etc,. A project can only have one top level HDL

source file (or schematic). To create a modular, hierarchical design modules can be

added to the project.

Select File->Open Project In order to open an existing project in Xilinx Tools

and also it shows the list of projects on the machine. click OK after the selection of

project .

The following window is opened by Clicking on NEXT on the above window:

Figure 6.4 Showing Create New source window (snapshot from Xilinx ISE

software)

Click on the NEW SOURCE to create a new source file,.

Creating a Verilog HDL input file for a combinational logic design

a design entry can be done using a structural or RTL description using the

Verilog HDL. The HDL Editor is used which is available in the Xilinx ISE Tools to

create a Verilog HDL input file (.v file).

Page 54: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 44

Click on the NEW SOURCE then a window pops up as shown in Figure 6.5.

Figure 6.5 Showing Creating Verilog-HDL source file (snapshot from Xilinx ISE

software)

Select Verilog Module and enter the name of the Verilog source file in the File

Name option. Select Add to project option so that the source need not be added to the

project again. To accept the entries click on Next. Then the following window is opened.

Figure 6.6 Showing Define Verilog Source window (snapshot from Xilinx ISE

software)

Enter the names of all input and output pins in the Port Name column, and

mention the Direction clearly. A Vector/Bus can be defined by entering appropriate bit

Page 55: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 45

numbers in the left/right columns. All the new source information is shown in a window

by clicking on Next. For changes are to be made, just click on Back button to go back

and make changes. If everything is seems to be correct then click on Finish to continue.

Figure 6.7 Showing New Project Information window (snapshot from Xilinx ISE

software)

The source file will be displayed in the sources window of the Project Navigator

after clicking on Finish button.

To remove a source just right click on the source file and select Remove in that

which automatically removes that source file. Any related files of removed source file

are deleted by selecting Project - Delete Implementation Data from the Project Navigator

menu bar.

Editing the Verilog source file

The Project Navigator window displays the source file. The changes can be made

to the source file. The displaying of all the input/output pins is done. Save the Verilog

program periodically by selecting the File->Save from the menu bar. Using “Add Copy

Source” Verilog programs can be edited in any text editor and add can be added to the

project directory.

Page 56: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 46

Figure 6.8 Verilog Source code editor window in the Project Navigator (from Xilinx

ISE software)

The module name, the list of ports and also the declarations (input/output) for

each port are shown by the generation of Verilog source code template. After the

declarations and before the end module line the combinational logic code can be added

to the verilog code.

For example, an output x in an AND gate with inputs a and b can be described as,

assign x= a & b;

the names are case sensitive.

Other constructs for modeling the logic function: A given logic function can be

modeled in many ways in verilog. Here is another example in which the logic function,

is implemented as a truth table using a case statement:

Page 57: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 47

module or_gate(a,b,z);

input a;

input b;

output z;

reg z;

always @(a or b)

begin

case ({a,b})

00: z = 1'b0;

01: z = 1'b1;

10: z = 1'b1;

11: z = 1'b1;

endcase

end

endmodule

Suppose we want to describe an OR gate. It can be done using the logic equation

as shown in Figure 9a or using the case statement as shown in Figure. These are just two

example constructs to design a logic function. Verilog offers numerous such constructs

to efficiently model designs. A brief tutorial of Verilog is available in Appendix-A.

Figure 6.9 Showing OR gate description using assign statement (snapshot from

Xilinx ISE software)

Page 58: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 48

Synthesis and Implementation of the Design

The design has to be synthesized and implemented before it can be checked for

correctness, by running functional simulation or downloaded onto the prototyping board.

With the top-level Verilog file opened (can be done by double-clicking that file) in the

HDL editor window in the right half of the Project Navigator, and the view of the project

being in the Module view , the implement design option can be seen in the process view.

Design entry utilities and Generate Programming File options can also be seen in the

process view. The former can be used to include user constraints, if any and the latter

will be discussed later.

To synthesize the design, double click on the Synthesize Design option in the

Processes window.

To implement the design, double click the Implement design option in the

Processes window. It will go through steps like Translate, Map and Place & Route. If

any of these steps could not be done or done with errors, it will place a X mark in front

of that, otherwise a tick mark will be placed after each of them to indicate the successful

completion. If everything is done successfully, a tick mark will be placed before the

Implement Design option. If there are warnings, one can see mark in front of the

option indicating that there are some warnings. One can look at the warnings or errors in

the Console window present at the bottom of the Navigator window. Every time the

design file is saved; all these marks disappear asking for a fresh compilation.

Page 59: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 49

Figure 6.10 Showing Implementing the Design (snapshot from Xilinx ISE software)

The schematic diagram of the synthesized verilog code can be viewed by double

clicking View RTL Schematic under Synthesize-XST menu in the Process Window.

This would be a handy way to debug the code if the output is not meeting our

specifications in the proto type board.

By double clicking it opens the top level module showing only input(s) and

output(s) as shown below.

Page 60: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 50

Figure 6.11 Showing Top Level Hierarchy of the design

By double clicking the rectangle, it opens the realized internal logic as shown below.

Figure 6.12 Showing Realized logic by the Xilinx ISE for the Verilog code

Page 61: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 51

6.2 Simulating and Viewing the Output Waveforms

Now under the Processes window (making sure that the test bench file in the

Sources window is selected) expand the ModelSim simulator Tab by clicking on the add

sign next to it. Double Click on Simulate Behavioral Model. You will probably receive a

complier error. This is nothing to worry about – answer “No” when asked if you wish to

abort simulation. This should cause ModelSim to open. Wait for it to complete

execution. If you wish to not receive the compiler error, right click on Simulate

Behavioral Model and select process properties. Mark the checkbox next to “Ignore Pre-

Complied Library Warning Check”.

Figure 6.13 Showing Simulating the design (snapshot from Xilinx ISE software)

Page 62: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 52

Saving the simulation results

To save the simulation results, Go to the waveform window of the Modelsim

simulator, Click on File -> Print to Postscript -> give desired filename and location.

Note that by default, the waveform is “zoomed in” to the nanosecond level. Use

the zoom controls to display the entire waveform.

Else a normal print screen option can be used on the waveform window and

subsequently stored in Paint.

Figure 6.14 Showing Behavioral Simulation output Waveform (Snapshot from

ModelSim)

For taking printouts for the lab reports, convert the black background to white in

Tools -> Edit Preferences. Then click Wave Windows -> Wave Background attribute.

Page 63: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 53

CHAPTER 7

XILINX SYNTHESIS AND OUTPUT SCREENS

7.1 PROPOSED METHOD OUTPUT SCREENS

Synthesis report of proposed Urdhva tiryakbhyam method

Figure 7.1: Showing Synthesis report

Program Code of Proposed Urdhva tiryakbhyam method

Figure 7.2: Showing Program Code

Page 64: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 54

Top view of Proposed Urdhva tiryakbhyam System

Figure 7.3: Showing Top view of system

RTL View of Proposed Urdhva tiryakbhyam System

Figure 7.4: Showing RTL view of system

Page 65: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 55

Test bench model of Proposed Urdhva tiryakbhyam method

Figure 7.5: Showing Test bench code

Simulated output of test bench code

Figure 7.6: Showing Simulated output

Page 66: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 56

Time delay required for a system

Figure 7.7: Showing Time Delay of system

Time Delay comparison table:

Device:Spartan3E

Xc3s100e-5vq100

Wallance multiplier UT multiplier using normal

gates

UT multiplier using

reversible logic gates

Path delay ( ns) 25.712 23.620 21.074

Table 7.1:Time delay comparison table

Page 67: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 57

Device utilization summary for UT multiplier using reversible logic gates

Device utilization summary for UT multiplier using normal gates

Page 68: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 58

CONCLUSION & FUTURE SCOPE

CONCLUSION:

The designs of 8x8 bits Vedic multipliers using reversible gates and normal gates

have been implemented on Spartan Xc3s100e-5vq100. The computation delay for 8x8

bits Wallace multiplier was 25.712 ns and for 8x8 bits Vedic multiplier using normal

gates was 23.620 ns, and for Vedic multiplier using reversible logic gates was 21.074 ns

. It is therefore seen that the Vedic multiplier using reversible logic gates is much faster

than the conventional Wallace and Vedic multiplier using normal gates multipliers. The

algorithms of Vedic mathematics are much more efficient than of conventional

mathematics.

Urdhva tiryakbhyam sutram, Nikhilam sutram and Anurupyena sutram are the

important among such vedic algorithms which can reduce the delay, power and hardware

requirements for multiplication of numbers.

The hardware realization of the Vedic mathematics algorithms is easily possible

through the FPGA implementation of these multipliers.

FUTURE SCOPE:

A clue of symmetric computation was developed around 2500 years ago which is

brought out by Vedic mathematics. trigonometry, calculus, geometry and basic

arithmetic are dealt by this symmetric computation. All these methods are very powerful

as far as manual calculations are considered.

The computational speed drastically reduces if all those methods are effectively

used for the hardware implementation. Hence there is a chance for implementing a

complete ALU using Vedic mathematics methods. Vedic mathematics is long been

known but has not been implemented in the DSP and ADSP processors employing large

number of multiplications in calculating the various transforms like FFTs and the IFFTs.

By using these ancient Indian Vedic mathematics methods world can achieve new

heights of performance and quality for the cutting edge technology devices.

Page 69: A Project report On DESIGN OF HIGH SPEED …pace.ac.in/documents/ece/DESIGN OF HIGH SPEED... · Project report On DESIGN OF HIGH SPEED MULTIPLIER USING ... Further, the Verilog HDL

PACE INSTITUTE OF TECHNOLOGY AND SCIENCES, ECE 59

REFERENCES

1. Swami Bharati Krishna Tirthaji Maharaja, “Vedic Mathematics”, MotilalBanarsidass

Publishers, 1965.

2. Rakshith T R and RakshithSaligram, “Design of High Speed Low Power Multiplier

using Reversible logic: a Vedic Mathematical Approach”, International Conference on

Circuits, Power and Computing Technologies (ICCPCT-2013), ISBN: 978-1-4673-4922-

2/13, pp.775-781.

3. M.E. Paramasivam and Dr. R.S. Sabeenian, “An Efficient Bit Reduction Binary

Multiplication Algorithm using Vedic Methods”, IEEE 2nd

International Advance

Computing Conference, 2010, ISBN: 978-1-4244-4791-6/10, pp. 25-28.

4. Sushma R. Huddar, Sudhir Rao Rupanagudi, Kalpana M and Surabhi Mohan, “Novel

High Speed Vedic Mathematics Multiplier using Compressors”, International Multi

conference on Automation, Computing, Communication, Control and Compressed

Sensing(iMac4s), 22-23 March 2013, Kottayam, ISBN: 978-1-4673-5090-7/13, pp.465-

469.

5. L. Sriraman and T. N. Prabakar, “Design and Implementation of Two Variables

Multiplier Using KCM and Vedic Mathematics”, 1st International Conference on Recent

Advances in Information Technology (RAIT -2012), ISBN: 978-1-4577-0697-4/12.

6. Prabir Saha, Arindam Banerjee, Partha Bhattacharyya and Anup Dandapat, “High

Speed ASIC Design of Complex Multiplier Using Vedic Mathematics”, Proceeding of

the 2011 IEEE Students' Technology Symposium 14-16 January,2011, IIT Kharagpur,

ISBN: 978-1-4244-8943-5/11, pp.237-241.

7. Soma BhanuTej, “Vedic Algorithms to develop green chips for future”, International

Journal of Systems, Algorithms & Applications, Volume 2, Issue ICAEM12, February

2012, ISSN Online: 2277-2677.