FPGA 8-Bit Vedic Divider Project Report
FPGA 8-Bit Vedic Divider Project Report
UNIVERSITY
ANANTHAPUR, ANANTHAPURAMU
In partial fulfillment of the requirement for the award of degree of
BACHELOR OF TECHNOLOGY
IN
ELECTRONICS AND COMMUNICATION ENGINEERING
Submitted by
C. GUNASREE (209X1A0410)
grade)
(AFFILIATED TO JNTUA,
ANANTHAPURAMU) 2023-
2024
G. PULLA REDDY ENGINEERING COLLEGE (Autonomous), Kurnool
CERTIFICATE
This is to certify that the major project work entitled
C.Gunasree 209X1A0410
We would like to express our sincere thanks to Dr. S. Nagaraja Rao garu, Head of the
Electronics and Communication Engineering Department, G. Pulla Reddy Engineering College
for providing requisite facilities and helping us providing such a good environment.
We are extremely grateful to our project guide, Smt T. Swati, Assistant Professor, ECE
Department, G. Pulla Reddy Engineering College, who has been a source of inspiration
throughout the course and for extending all support to us in the form of the technical literature
and excellent guidance.
We also extend our sincere thanks to the entire faculty and staff members of ECE
Department, who have been a source of information throughout the course and for extending all
support to us in the form of technical literature and excellent guidance.
DECLARATION
C.GUNASREE
(209X1A0410)
G. POOJITHA
(209X1A0415)
ABSTRACT
Table Page no
1. INTRODUCTION
is a shorthand technique that simplifies the process, particularly when dividing by linear
factors.
Bus Stop Method (Chunking):
The bus stop method, also known as chunking, is an informal division method that
involves breaking down the dividend into manageable "chunks" or groups. This method
is often used for mental calculations or when an exact quotient is not required.
Partial Quotients:
Partial quotients is a division method that involves breaking down the division problem
into a series of easier steps. Each step involves finding a partial quotient until the entire
division is complete.
Repeated Subtraction:
Repeated subtraction is a basic method where the divisor is subtracted repeatedly from
the dividend until the result is less than the divisor. The number of subtractions
represents the quotient.
Decimal Division:
The decimal division is a standard process for dividing numbers with decimal points. It
involves placing the decimal point in the quotient directly above the decimal point in
the dividend and proceeding with division as usual.
Matrix Division:
In linear algebra, matrix division involves finding the inverse of one matrix and then
multiplying it by another matrix. This is a common operation when solving systems of
linear equations.
Binary Division:
Binary division is used in computer science and digital electronics for dividing binary
numbers. The process is like decimal division but involves the binary number system.
Vedic Division (Paravartya Sutra):
As mentioned earlier, the Vedic division is an alternative division algorithm inspired by
ancient Indian mathematical techniques. The Paravartya Sutra is a specific Vedic
division method known for its speed and efficiency.
The choice of division method often depends on the context, the size and nature of the
numbers involved, and personal preference or familiarity with a particular technique.
While Vedic division offers advantages, its applicability may depend on specific use
cases and the desired trade-offs between speed, complexity, and ease of
implementation. In certain scenarios, such as FPGA-based designs, the unique
characteristics of Vedic division can make it a compelling choice for efficient
arithmetic computation.
1.1 BACKGROUND
In the ever-evolving landscape of digital signal processing (DSP), the relentless pursuit
of computational efficiency stands as a defining challenge. This pursuit is particularly
pronounced in applications such as communication systems, image processing, and
cryptography, where the demand for accelerated arithmetic operations has become a
hallmark of technological progress. Among these fundamental arithmetic operations,
division holds a critical position, serving as a linchpin for algorithms and computations
that underpin the functionality of diverse digital systems.
In the realm of digital signal processing and arithmetic computation, there exists a
demand for efficient and high-performance division operations. Traditional division
algorithms may not always meet the criteria of speed and resource optimization required
for modern applications. This project addresses the need for an optimized hardware
implementation of an 8-bit Vedic divider using the Paravartya Sutra.
The goal is to design and implement an FPGA-based solution that leverages the
parallelism inherent in Vedic division, providing a faster and resource-efficient
alternative to conventional division methods. The project involves the development of a
robust 8-bit Vedic divider using Verilog Hardware Description Language (HDL) for
synthesis on FPGA platforms. The project aims to surpass the performance metrics of
sequential division methods while demonstrating the versatility and adaptability of the
Vedic approach in FPGA-based systems.
2. LITERATURE REVIEW
1. In the year 2017, S. BhanuTej proposed the 8-bit Modified Vedic Paravartya
Divider with quotient in fractions. Overall, the paper presents a new and efficient
architecture for the Paravartya division that is well-suited for high-speed digital signal
processing applications. A modified Vedic Paravartya divider that can compute the
quotient in fractions. The proposed divider is implemented in a 8-bit configuration and
shows significant improvements in speed and area over conventional dividers. The key
contributions of the paper are A new architecture for Paravartya division that generates
8 partial quotient terms in parallel in each stage. A reduction in delay of 4.5ns compared
to the conventional serial implementation of the Paravartya sutra. A 62% reduction in
delay when compared with existing dividers like SRT, Newton-Raphson, and Nikhilam
dividers that produce quotient and remainder. The proposed divider is a promising
candidate for high-speed digital signal processing applications.
3. The paper “8-bit Modified Vedic Paravartya Divider with quotient in fractions" by
M. K. Sanju Vikasini and Binsu J. Kailath, published in IEEE Xplore. The paper
discusses the related work on Vedic mathematics and division algorithms. The authors
Dept of ECE, GPREC page 6
KNL
FPGA IMPLEMETATION OF 8-BIT VEDIC DIVIDER
4. In the paper “Vedic Divider: Novel Architecture (ASIC) For High-Speed VLSI
Applications" by Prabir Saha, Arindam Banerjee, Partha Bhattacharyya, and Anup
Dandapat presents a novel divider architecture based on Vedic mathematics, an ancient
Indian methodology with unique computational techniques. The proposed architecture
significantly reduces propagation delay and dynamic power consumption by eliminating
unnecessary recursion through Vedic division methodology. The functionality of the
circuits was verified, and performance parameters such as propagation delay and
dynamic power consumption were calculated using SPICE Spectre with 90nm CMOS
technology. The results demonstrate that the proposed architecture achieves a 45%
reduction in propagation delay and a 30% reduction in power consumption compared to
conventional divider architectures.
5. In the paper “High-Speed Vedic Divider Designs Using Carry Save Adders" by S. N.
Behera and S. Majumdar (2008). This sounds like an interesting contribution to the field
of Vedic divider designs, particularly focusing on achieving high-speed performance
using carry save adders. The use of carry save adders is significant in digital circuit
design, and it's intriguing to see their application in the context of Vedic dividers. The
reduction in propagation delay is a crucial factor in enhancing the speed and efficiency
of divider circuits, which can be particularly valuable in various applications, including
VLSI design and other areas requiring fast arithmetic operations. If you have access to
the paper, you may want to explore the details of the proposed design, the methodology
followed, and the experimental results that demonstrate the reduction in propagation
delay. Additionally, check for any comparisons with conventional divider designs and
discussions on the advantages and limitations of the proposed approach.
6. The paper "Low power divider using Vedic mathematics" by Dalal Rutwik Kishor
and V.S. Kanchana Bhaaskaran: Dividers are essential components in digital signal
processing (DSP) systems. However, conventional dividers are often power-hungry and
time-consuming. This paper proposes a low-power and fast divider architecture based
on the ancient Indian Vedic mathematics. The proposed architecture utilizes Vedic
sutras (formulae) to reduce the number of multiplication operations required for
division. This results in significant power savings and improved speed compared to
conventional dividers. The proposed Vedic divider architecture achieves up to 52.93%
reduction in power consumption compared to conventional dividers. The proposed
divider is also faster than conventional dividers, with a reduction in latency of up to
40%. The proposed divider is implemented using industry-standard Cadence® software
using a 45nm technology library. The design has been validated on the FPGA Spartan-
3E kit.
3. INTRODUCTION TO VLSI
VLSI (Very Large-Scale Integration) is a technology that involves packing thousands to
millions of transistors onto a single chip. It enables the creation of complex integrated
circuits, fostering the development of powerful electronic systems. VLSI design follows
a hierarchical approach, breaking down systems into manageable modules. This
technology encompasses both digital and analog components, with digital design
involving logic gates and analog design dealing with continuous signals. Key
parameters in VLSI projects include power consumption, performance, area utilization,
timing analysis, reliability, and cost. Achieving a balance between these factors is
crucial for economic viability. Testability is essential for manufacturing yield, with
built-in self-test methodologies commonly employed. Designs must be manufactured
within chosen semiconductor processes, considering variations and yield optimization.
Security is increasingly relevant, prompting considerations for hardware-level
protection. Economic and environmental impact, as well as sustainability, are emerging
concerns in VLSI projects. Overall, VLSI integrates diverse principles to create
efficient, high-performance, and cost-effective electronic systems.
1. Power Consumption:
Power efficiency is a critical parameter in VLSI design. Lower power consumption is
desirable for both battery-powered devices and to reduce heat dissipation.
2. Performance:
Performance is measured by factors such as clock frequency, throughput, and response
time. VLSI designs aim to achieve high performance while meeting other constraints.
3. Area Utilization:
Efficient use of silicon area is essential. This involves minimizing the physical size of
the chip while maximizing the number of functional components.
4. Timing Analysis:
Timing analysis ensures that signals within the circuit meet setup and hold time
requirements. It involves considering the propagation delays of various components.
VLSI Design is an iterative cycle. Designing a VLSI Chip includes a few problems such
as functional design, logic design, circuit design, and physical design. The design is
verified for accuracy by the process of simulation. If any design errors are found at any
stage of verification, at least one of the previous design steps must be repeated to correct
the error during the process of designing.
1. System specification: The objective of the desired final product is written in this
step. During system specification, the designated cost of the system, its performance,
architecture, and how the system will communicate with the external world are to be
determined. During this step, the design specification should be provided by the users or
clients.
2. Architectural design: The basic architecture of the desired design must meet the
system specifications of the desired design. The architecture of the desired design is
decided and the layout for the same is designed by design engineers. Architectural
design includes the integration of analog and mixed-signal blocks, memory
management, internal and external communication, power requirements, and choice of
process technology and layer stacks.
3.Functional design or Behavioral design: It consists of refining the design
specification of the desired design in order to design the functional behavior of the
desired system. The main objective of this is to generate design a high-performance
architectural design within the cost requirements posed by the specifications.
4. Logic Design: In this step, the structure of the desired design is added to the
behavioral representation of the desired design. The main specifications to be
considered for logic design are logic minimization, performance enhancement, and
testability. Logic design must also consider the problems associated with test vector
generation, error detection, and error correction. Many logic synthesis tools have been
developed for the automation of the process of logic design.
5. Circuit Design: In this step, the logic blocks of the desired design are replaced by the
electronic circuits, which are consists of electronic devices such as resistors, capacitors,
and transistors. Circuit simulation of the desired design is done at this stage, in order to
verify the timing behavior of the desired system. Kirchhoff’s laws are used to know the
behavior of the electronic circuit in terms of node voltages and branch circuits. The
result of integrodifferential equations is then solved in discrete- time. SPICE is a well-
known program for circuit simulation.
6. Physical Design: In this step, the actual layout of the desired system is done, where
all the components will be placed in the circuit and all these components are
interconnected. The actual layout of the desired system can affect the area, correctness,
and performance of the final desired product. The correctness of the chip is also
controlled by the physical design. A circuit design that passes the test of a circuit
Dept of ECE, GPREC page 11
KNL
FPGA IMPLEMETATION OF 8-BIT VEDIC DIVIDER
a simulator may be faulty after it has been packaged. This is because of geometric
design rule errors. These design rules must be followed to ensure the correctness of the
chip fabrication. Errors such as short circuits, open circuits, open channels, etc. may
result if the design rules are not respected.
7. Fabrication: After the actual layout and verification of the desired design, the design
is sent for manufacturing. The handoff of the desired design to the manufacturing
process is called tape out. The generation of data for manufacturing is referred to as
streaming out. The desired design is onto the different layers of the design using the
photolithographic process. ICs are manufactured on round silicon wafers with a
diameter from 200mm to 300mm, these ICs are then tested and are marked as either
functional or defective ICs.
8. Packaging and Testing: After the fabrication of the desired design, functional chips
are then packed. Packaging is configured early in the desired design process and the
application along with the cost and form factor requirements. Packaged types may
include Dual In-Line Packaged (DIPs), Pin Grid Array (PGAs), and Ball Grid Arrays
(BGAs). After a die is positioned in the package cavity, its pins are connected to the
pins of the package, e.g., with wire bonding or more solid bumps (flip-chip). The
package of the desired design is then sealed and then sent to the end-users or clients.
The term FPGA stands for Field Programmable Gate Array and, it is a type of
semiconductor logic chip that can be programmed to become almost any kind of system
or digital circuit, like PLDs. PLDS are limited to hundreds of gates, but FPGAs support
thousands of gates. The configuration of the FPGA architecture is generally specified
using a language, i.e., HDL (Hardware Description language)
which is like the one used for an ASIC (Application Specific Integrated Circuit).
FPGAs can provide several advantages over a fixed-function ASIC technology such as
standard cells. Normally, ASICs takes months to manufacture and the cost of them will
be thousands of dollars to obtain the device. But FPGAs are fabricated in less than a
second, the cost will be from a few dollars to a thousand dollars. The flexible nature of
the FPGA comes at a significant cost in area, power consumption, and delay. When
compared to a standard cell ASIC, an FPGA requires 20 to 35 times more area, and the
speed’s performance will be 3 to 4 times slower than the ASIC. This article describes
FPGA basics and FPGA architecture modules that include I/O pad, logic blocks, and
switch matrix. FPGAs are some of the new trending areas of VLSI. Therefore, these are
used in VLSI-based projects for electronic engineering students.
The general FPGA architecture consists of three types of modules. They are I/O blocks
or Pads, Switch Matrix/ Interconnection Wires, and Configurable logic blocks (CLB).
The basic FPGA architecture has two dimensional arrays of logic blocks with a means
for a user to arrange the interconnection between the logic blocks. The functions of an
FPGA architecture module are discussed below:
1. CLB (Configurable Logic Block) includes digital logic, inputs, and outputs. It
implements the user logic.
2. Interconnects provide direction between the logic blocks to implement the user logic.
3. Depending on the logic, the switch matrix provides switching between interconnects.
4. I/O Pads used for the outside world to communicate with different applications.
Logic Block contains MUX (Multiplexer), D flip flop, and LUT. LUT implements the
combinational logical functions; the MUX is used for selection logic, and D flip flop
stores the output of the LUT.
The basic building block of the FPGA is the Look Up Table-based function generator.
The number of inputs to the LUT varies from 3,4,6, and even 8 after experiments. Now,
we have adaptive LUTs that provide two outputs per single LUT with the
implementation of two function generators.
Xilinx Virtex-5 is the most popular FPGA, that contains a Look up Table (LUT) which
relates to MUX, and a flip flop as discussed above. Present FPGA consists of
about hundreds or thousands of configurable logic blocks. For configuring the FPGA,
model sim, Xilinx Vivado, and Xilinx ISE software are used to generate a bitstream file
and for development. In our project, we are using the “Nexys A7 FPGA” board.
4. PROJECT METHODOLOGY
1. The 8-bit Vedic Divider was implemented using the Paravartya Sutra as follows:
2. The 8-bit dividend and divisor were taken.
3. The quotient and remainder were initialized as 0.
4. Starting from the leftmost bit of the dividend, processing was initiated.
5. If the current quotient plus the divisor was less than or equal to 255, the divisor was
added to the quotient, and the corresponding quotient bit was set to 1; otherwise, it
was set to 0.
6. The dividend was shifted left by 1 bit.
7. Steps 3-5 were repeated until all bits of the dividend were processed.
8. The resulting quotient and remainder were obtained, representing the division result.
9. This approach exemplified the application of the Paravartya Sutra, simplifying
division through the consideration of complementary values.
The distinction between Vedic division and conventional division lies in the
methodologies and techniques employed during the division process. Vedic division,
inspired by the ancient Indian mathematical system known as Vedic mathematics, often
differs from traditional long-division methods in its approach and efficiency. Let's
explore the differences between Vedic and normal division in a passage:
Vedic Division vs. Conventional Division: Unveiling Distinctive Approaches
Division, a fundamental arithmetic operation, serves as the cornerstone of mathematical
computations. In the realm of division, two distinct methodologies, Vedic division, and
conventional division, offer contrasting approaches to the same mathematical task.
The hallmark of Vedic division lies in its sutras, or specific formulae, which guide the
division process. One such sutra is the Paravartya method, a technique that involves
successive subtractions and shifting operations. The elegance of Vedic division is
manifest in its ability to parallelize these operations, minimizing the computational
steps required to arrive at the quotient. This parallelism is particularly advantageous in
digital systems, where efficiency is paramount.
The key difference between Vedic division and conventional division lies in their
approaches to computational efficiency. Vedic division, with its emphasis on
parallelism and streamlined processes, is often more adept at minimizing computational
steps, making it particularly advantageous in digital and algorithmic contexts.
Conventional division, while tried-and-true, may involve a more step-intensive process.
In conclusion, the choice between Vedic division and conventional division depends
on the specific context and requirements of the computation at hand. While Vedic
Dept of ECE, GPREC page 17
KNL
FPGA IMPLEMETATION OF 8-BIT VEDIC DIVIDER
EXPLANATION OF FLOWCHART:
Operands: we took two 8-bit operands “Divisor” [A] and “Dividend” [B]
Inverter: Here inverter is used to complement the divisor except for MSB (Most
significant bit)
Multiplier: Multiplier is used to multiply the bits of dividend and complement bits of
divisor.
Adder: Adder adds the multiplier result and dividend which gives partial remainder and
quotient.
Incrementer: Incrementer is used to calculate the number of terms in the quotient,
initially it is set to 0.
Condition Check: If the partial remainder is greater than the divisor then the process
repeats until partial remainder is less than the divisor.
Result: Result consists of two parts Quotient and Remainder. Quotient is number of
terms the process is repeated and the remaining part is Remainder.
EXAMPLE: 1
From the above example, To find out the quotient term, the formula = Number of terms in
dividend –
Number of terms in divisor + 1
So, quotient =2–2+1
=1
And remainder = 1
output: Quotient = 01 & Remainder = 01
EXAMPLE: 2
From the above example, To find out the quotient term, the formula = Number of terms
in dividend – Number of terms in divisor + 1
So, quotient =2–2+1
=1
And remainder = 1
Output: Quotient = 01 & Remainder = 00
flip-flops, and other predefined modules. The structural approach is akin to a schematic
representation of the circuit. An example of structural modeling is as follows:
For example:
module Structural_Model (input a, b, output y);
and gate1(a, b, y);
endmodule
5. SOFTWARE TOOL
Vivado, developed by Xilinx, is a robust and integrated design environment for
FPGA and SoC development. Serving as a comprehensive IDE, it facilitates hardware
description, synthesis, implementation, and debugging. Supporting a broad range of
Xilinx devices, Vivado enables designers to optimize their designs for specific FPGA
and SoC architectures. With high-level design entry options such as Verilog, VHDL,
and graphical block diagram entry through IP Integrator, it accommodates diverse
design methodologies. The tool incorporates an extensive IP library, streamlining the
integration of intellectual property blocks into designs to reduce development time.
Vivado's synthesis and optimization capabilities enhance performance, area utilization,
and power efficiency. Through its place-and-route tools, it maps designs onto FPGA
resources, optimizing for timing and meeting specified constraints.
STEP 1: CREATE A VIVADO PROJECT
1. Start Vivado
In Windows, you can start Vivado by clicking the shortcut on the desktop. After Vivado
is started, the window should look similar to the picture in Figure 1.
4. Select Parts
Xilinx produces many different parts, and the synthesizer needs to know exactly what
part you are using so it can produce the correct programming file. To specify the correct
part, you need to know the device family and package, and less critically, the speed and
temperature grades (the speed and temperature grades only affect special-purpose
simulation results, and they have no effect on the synthesizer’s ability to produce
accurate circuits). You must choose the appropriate part for the device installed on your
board.
For example, the Blackboard uses a Zynq device with the following attributes:
gradually over the first several projects. For now, you can get familiar with some of the
basic concepts by reading the following.
To create a Verilog source file for your project, right-click on “Design Sources” in the
Sources panel and select Add Sources. The Add Sources dialog box will appear as
shown – select “Add or create design sources” and click next.
In the Add or Create Design Sources dialog, click on Create File, enter “mba” as
filename, and click OK. The newly created file will appear in the list as shown. Click
Finish to move to the next step.
3. Constraints
Design sources, like Verilog HDL files, only describe circuit behavior. You must also
provide a constraints file to map your design into the physical chip and board you are
working with. To create a constraint file, expand the Constraints heading in the Sources
panel, right-click on constrs_1, and select Add Sources.
An Add Sources dialog will appear as shown. Select Add or Create Constraints and
click Next to cause the “Add or Create Constraints” dialog box to appear.
Click on Create File, enter project1 for the filename, and click OK. The newly created
file will appear in the list as shown. Click Finish to move to the next step.
Double-click “mbv1.xdc” to open the file, and replace the contents with the code below:
4. Alternative: Download and Add Constraints
Instead of creating an empty constraint file and using copy-and-paste to replace the
contents as described above, you can also download “mba1.xdc” the file and add it to
your project using the Add Files button in the Add Sources dialog.
After your Verilog and constraint files are complete, you can Synthesize the design
project. In the synthesis process, Verilog code is translated into a “netlist” that defines
all the required circuit components needed by the design (these components are the
programmable parts of the targeted logic device - more on that later). You can start the
Synthesize process by clicking on Run Synthesis button in the Flow Navigator panel as
shown.
When synthesis is running, you can select the log panel located at the bottom of Project
Manager to see a log of the currently running processes. Any errors that occur during
the synthesis process will be described in the log.
Figure 21 Start the Synthesis process and monitor the synthesis log
2. Implementation
After the design is synthesized, you must run the Implementation process. The
implementation process maps the synthesized design onto the Xilinx chip targeted by
the design. Click the Run Implementation button in the Flow Navigator panel as shown.
When the implementation process is running, the log panel at the bottom of the Project
Manager will show details about any errors that occur.
3. Generate Bitstream
After the design is successfully implemented, you can create a .bit file by clicking on
the Generate Bitstream process located in the Flow Navigator panel as shown. The
process translates the implemented design into a bitstream which can be directly
programmed into your board’s device.
by moving the switch in the top-left corner to the on position. You’ll see a red LED
light up by the switch when it powers on. If your board doesn’t power on, check that the
blue jumper by the port labeled “EXTP” is set to “USB”. The figure shows a powered-
on Blackboard, with the correct jumper setting.
6. SIMULATION RESULTS
6.1 DATA FLOW OF A DIAGRAM
The project was implemented using the Xilinx Vivado design suite. The divider was
designed using a pipelined architecture, in each stage different operations are performed
to get the valid quotient and remainder. Each module of the data flow diagram performs
a valid function.
Partial result: This module calculates the partial result of the division by subtracting the
divisor from the dividend. The partial result is the remainder after the first subtraction.
RTL SUB: This module performs the subtraction operation. It takes two inputs, the
dividend, and the divisor, and outputs the remainder.
Remainder: This module stores the remainder after the first subtraction. It is used by the
RTL GEQ module to compare the remainder to the divisor.
RTL GEQ: This module compares the remainder to the divisor and generates a signal
indicating whether the remainder is greater than or equal to the divisor. This signal is
used by the RTL MUX module to select the partial result or the remainder as the output.
RTL MUX: This module selects the partial result or the remainder as the output,
depending on the signal from the RTL GEQ module. If the remainder is greater than or
equal to the divisor, then the partial result is selected as the output. Otherwise, the
remainder is selected as the output.
Quotient: This module stores the quotient of the division. It is updated each time the
RTL MUX module selects the partial result as the output.
The schematic diagram in the image shows a circuit with the following components:
157 cells: These are the basic building blocks of the circuit. They can be batteries, solar
32 input/output (I/O) ports: These are the points where the circuit interacts with the
outside world. For example, I/O ports can be used to connect sensors, actuators, and
displays.
228 nets: These are the connections between the components in the circuit.
Operands: This store 8-bit operands “Divisor” [A] and “Dividend” [B]
Inverter: This stage complements the divisor except MSB (Most significant bit)
Multiplier: This stage multiplies the bits of dividend and complements bits of the
divisor.
Adder: Adder adds the multiplier result and dividend which gives partial remainder and
quotient.
Condition Check: If the partial remainder is greater than the divisor then the process
repeats, until partial remainder is less than divisor.
Result: Result consists of two parts Quotient and Remainder. Quotient is number of
terms the process is repeated and the remaining part is Remainder.
6.4 PACKAGE OF FPGA
Pins: The pins column shows the names of the I/O pins. The pins are named in a
specific format, which includes the bank and the PIN. For example, the pin "AA1" is
in bank A and is PIN 1.
Bank: The bank column shows the bank that the pin is located in. FPGAs are divided
into banks, which are groups of I/O pins. The banks are used to route the signals
between the I/O pins and the internal logic of the FPGA.
Direction: The direction column shows the direction of the pin. The direction can be
input, output, or bidirectional. An input pin is a pin that receives data from an external
device. An output pin is a pin that sends data to an external device. A bidirectional pin
can both send and receive data.
I/O Standard: The I/O standard column shows the I/O standard that the pin is using. The
I/O standard defines the electrical characteristics of the pin, such as the voltage level
and the drive strength.
Used: The used column shows whether the pin is being used by the design. If a pin is
not being used, it is set to "No".
Assigned To: The assigned to column shows the net that the pin is assigned to. A net is
a group of wires that are connected. The net name is typically the name of the signal
that is being carried on the wires.
The I/O planning report is a valuable tool for designing and implementing FPGA
circuits. It is important to make sure that the I/O pins are being used correctly and that
the I/O standards are correct for the devices that are being connected to the FPGA.
The table contains the list of functional categories of different components used in an
FPGA. The table lists the number of times each component was used in the design. Here
is a brief description of each component:
• FDRE: This component is a flip-flop that stores a single bit of information. It is used
to hold the state of a signal between clock cycles.
• LUT6: This component is a lookup table that can implement any 6-input Boolean
function. It is used to implement combinational logic in an FPGA.
• LUT4: This component is a lookup table that can implement any 4-input Boolean
function. It is used to implement combinational logic in an FPGA.
• LUT3: This component is a lookup table that can implement any 3-input Boolean
function. It is used to implement combinational logic in an FPGA.
• LUT5: This component is a lookup table that can implement any 5-input Boolean
function. It is used to implement combinational logic in an FPGA.
• LUT2: This component is a lookup table that can implement any 2-input Boolean
function. It is used to implement combinational logic in an FPGA.
• FDSE: This component is a flip-flop that stores a single bit of information. It is used to
hold the state of a signal between clock cycles.
• LUT1: This component is a lookup table that can implement any 1-input Boolean
function. It is used to implement combinational logic in an FPGA.
• MUXF7: This component is a multiplexer that can select one of up to 128 inputs.
It is used to implement complex logic functions in an FPGA.
Description of Results:
RESULT-1: In the FPGA board we have considered 254 as dividend whose binary
number is 11111110 and 12 as divisor 00001100. The switches indicate the values of
the dividend and divisor, and the LEDs indicate the values of the remainder and
quotient. In this case, the quotient is 21 and the remainder is 2.
RESULT-2: In the FPGA board we have considered 80 as dividend whose binary
number is 001010000 and 24 as divisor 00011000. The switches indicate the values of
dividend and divisor, and the LEDs indicates the values of remainder and quotient. In
this case the quotient is 3 and the remainder is 8.
In this project, both Parvartya sutra and long division are implemented on the FPGA
board using the Xilinx Vivado software tool, which helped a lot to understand the
difference between the two division methods and which we should choose for more
efficiency and Fastness. This comparison helped us to realize why we should prefer
Paravartya Method and how efficient it is in terms of various factors compare to long
division method.
Slices 24 25
Look Up Tables 85 85
Note: This process does not involve any clock cycles, as the Paravartya Sutra method
operates without relying on a clock signal, so there will be no delays.
7.1ADVANTAGES
1. Reduced hardware complexity: Vedic dividers can be implemented using fewer logic
gates than conventional dividers, making them smaller and more compact.
2. Faster division speed: Vedic dividers achieve higher throughput than conventional
dividers due to their bit-serial nature, which means they perform division one bit at a
time.
3. Lower power consumption: Vedic dividers typically consume less power than
conventional dividers due to their simplicity.
4. Efficiency: The Vedic Divider uses a streamlined method inspired by ancient
mathematical techniques, making the division process more efficient and faster
compared to conventional methods.
5. Simplicity: The approach is intuitive and straightforward, reducing the complexity of
the division operation. This simplicity is advantageous for mental calculations and
digital systems.
6. Parallelism: The Paravartya method allows for parallel processing of division steps,
potentially speeding up the overall computation. This is particularly beneficial in digital
circuits where parallel operations enhance efficiency.
7. Ease of Mental Calculation: Vedic mathematics techniques are often designed for
mental calculations. While this may not be a significant advantage in automated
systems, it can be valuable for educational purposes or situations where mental
arithmetic skills are emphasized.
Dept of ECE, GPREC page 44
KNL
FPGA IMPLEMETATION OF 8-BIT VEDIC DIVIDER
7.2 APPLICATIONS
efficiency can be advantageous. It allows for quicker computations, reducing the time
the processor needs to be active and conserving power.
6. Educational Tools:
As a pedagogical tool, the 8-bit Vedic Divider can be used to teach students about
historical mathematical methods and their application in modern digital systems. It
provides a tangible link between ancient mathematical principles and contemporary
computing.
8.1 CONCLUSION
methods, particularly in terms of speed and efficiency. The Paravartya method, one of
the Vedic sutras, is a powerful tool for division, and its implementation in architectures
holds immense potential for future applications. Several promising research directions
exist for Vedic dividers using the Paravartya methods such as Hardware Optimization,
Error Correction, Application-Specific Design, Integration with Other Vedic
Techniques.
The future of 8-bit Vedic dividers using the Paravartya method is bright, with potential
applications in various fields and promising research directions to further enhance their
performance and applicability.
9.REFERENCES
S-G. Chen, C-C. Li, "An efficient division algorithm and its architecture," in Proc.
IEEE Int. Computer, Communication, Control and Power Engineering Conf. 1993,
Beijing, China, Oct. 19-21, 1993,vol 1, pp. 24-27.
Low Power High Speed Vedic Techniques in Recent VLSI Design
https://d-nb.info/1220892254/34?shem=ssusxt
Vedic divider - A high performance computing algorithm for VLSI ...
https://www.researchgate.net/publication/269329142_Vedic_divider_-
_A_high_performance_computing_algorithm_for_VLSI_applications?shem=ssusxt
K. Kataria and S. Patel, "Design Of High Performance Digital Divider," 2020 IEEE
VLSI DEVICE CIRCUIT AND SYSTEM (VLSI DCS), Kolkata, India, 2020, pp. 1-6,
doi: 10.1109/VLSIDCS47293.2020.9179903.
https://ieeexplore.ieee.org/document/6117328
https://gear.kku.ac.th/~watis/courses/198323/slide09.pdf
https://ieeexplore.ieee.org/document/6463781
https://www.researchgate.net/publication/
3043862_Division_algorithms_and_implementations
R. Senapati, B. K. Bhoi and M. Pradhan, "Novel binary divider architecture for high
speed VLSI applications," 2013 IEEE Conference on Information & Communication
Technologies, Thuckalay, India, 2013, pp. 675-679,
S. F. Obermann and M. J. Flynn, "Division algorithms and implementations," in IEEE
Transactions on Computers, vol. 46, no. 8, pp. 833-854, Aug. 1997, doi:
10.1109/12.609274.
J. E. Robertson, "A New Class of Digital Division Methods," in IRE Transactions on
Electronic Computers, vol. EC-7, no. 3, pp. 218-222, Sept. 1958, doi:
10.1109/TEC.1958.5222579.
J. E. Meggitt, "Pseudo Division and Pseudo Multiplication Processes," in IBM Journal
of Research and Development, vol. 6, no. 2, pp. 210-226, April 1962, doi:
10.1147/rd.62.0210.