Professional Documents
Culture Documents
Main Porject Phase LL Content
Main Porject Phase LL Content
Main Porject Phase LL Content
INTRODUCTION
It follows that a circuit with a regular layout usually has shorter wires and
hence less wiring delay than a non-regular circuit. Therefore, if circuit delay
is estimated as the total gate delay, one should also have in minded the circuit‟s
size and amount of regularity, when comparing it to other circuits. “Delay”
1
usually refers to the “worst-case delay”. That is, if the delay of the output is
dependent on the inputs given, it is always the largest possible output delay that
sets the speed. Furthermore, if different bits in the output have different worst-
case delays, it is always the slowest bit that sets the delay for the whole output.
The slowest path between any input bit and any output bit is called the “critical
path”.
The actual chip size of a circuit also depends on how the gates are placed on
the chip – the circuit‟s layout. Since we do not deal with layout in this
report, the only thing we can say about this is that regular circuits are
usually smaller than non-regular ones (for the same number of gates),
because regularity allows more compact layout.
The physical delay of circuits originates from the small delays in single
gates, and from the wiring between them. The delay of a wire depends on
how long it is. Therefore, it is difficult to model the wiring delay; it requires
knowledge
2
CHAPTER 2
LITERATURE SURVEY
5
CHAPTER 3
EXISTING SYSTEM
Currently the working method of posit multiplier uses the modified booth‟s
algorithm technique. This method is also known as bit pair algorithm or radix-4
algorithm. There is a possibility to decrement the partial products number. Here
we do not shift and add for all the columns of the multiplier and later doing
multiplication with 0 or 1. But what we do here is to multiply every 2nd column
with 0 or ±1 or ±2. Both the methods yield similar results. Radix-4 booth encoder
compares 3 bits at a time which is also known as the overlapping method. By
adding a zero the left end of the number, we start pairing them into a batch of 3
numbers together shown in Figure
Fig.3.1.Pairing of 3numbers
7
CHAPTER 4
PROPOSED SYSTEM
The design differs from the existing method in the mantissa multiplier. The
mantissa multiplier uses the Modified booth multiplication, consisting of a (nb -
es) bit mantissa multiplier. While doing multiplication, we do not always require a
maximum bit-width mantissa multiplier. That is, there is no need to always use
nb – es mantissa unit. Generally, the bits which are not used in multiplier and
multiplicand will be assigned to zero normally. But those bits will be reverted to
value one during recoding the multiplier when it is negative. Thus it results in an
unwanted signal toggling.
8
CHAPTER 5
The physical delay of circuits originates from the small delays in single
gates, and from the wiring between them. The delay of a wire depends on how
long it is. Therefore, it is difficult to model the wiring delay; it requires
knowledgeabout the circuit‟s layout on the chip.
The gate delay, however, can easily be modeled by saying that the output is
delayed a constant amount of time from the latest input. What we can say about
the wiring delay is that larger circuits have longer wires, and hence more wiring
delay. It follows that a circuit with a regular layout usually has shorter wires and
hence less wiring delay than a non-regular circuit. Therefore, if circuit delay is
estimated as the total gate delay, one should also have in minded the
circuit‟s size and amount of regularity, when comparing it to other circuits.
“Delay” usually refers tothe “worst-case delay”.
That is, if the delay of the output is dependent on the inputs given, it is
always the largest possible output delay that sets the speed. Furthermore, if
different bits in the output have different worst-case delays, it is always the
slowest bit that sets the delay for the whole output. The slowest path between any
input bit and any output bit is called the “critical path”
Here, we assume that MSB represent the sign of the digit. The operation of
multiplication is rather simple in digital electronics. It has its origin from the
classical algorithm for the product of two binary numbers. This algorithm uses
addition and shift left operations to calculate the product of two numbers. Based
upon the above procedure, we can deduce an algorithm for any kind of
multiplication which is shown in Figure. We can check at the initial stage also that
whether the product will be positive or negative or after getting the whole result,
MSB of the results tells the sign of the product.
10
5.2 BINARY MULTIPLICATION
In the binary number system the digits, called bits, are limited to the set [0,
1]. The result of multiplying any binary number by a single binary bit is either
0, or the original number. This makes forming the intermediate partial- products
simple and efficient. Summing these partial-products is the time consuming task
for binary multipliers. One logical approach is to form the partial- products one at
a time and sum them as they are generated. Often implemented by software on
processors that do not have a hardware multiplier, this technique works fine, but
is slow because at least one machine cycle is required to sum each additional
partial-product. For applications where this approach does not provide enough
performance, multipliers can be implemented directly in hardware. The two main
categories of binary multiplication include signed and unsigned numbers. Digit
multiplication is a series of bit shifts and series of bit additions, where the two
numbers, the multiplicand and the multiplier are combined into the result.
Considering the bit representation of the multiplicand x = xn-1…..x1 x0 and the
multiplier y = yn-1…..y1y0 in order to form the product up to n shifted copies of
the multiplicand are to be added for unsigned multiplication.
Multiplication Process:
The first operand is called the multiplicand and the second the multiplier.
The intermediate products are called partial products and the final result is called
the product. However, the multiplication process, when this method is directly
11
mapped to hardware. As can been seen in the Figures, the multiplication operation
in hardware consists of PP generation, PP reduction and final addition steps.
The two rows before the product are called sum and carry bits. The operation of
this method is to take one of the multiplier bits at a time from right to left,
multiplying the multiplicand by the single bit of the multiplier and shifting the
intermediate product one position to the left of the earlier intermediate products
All the bits of the partial products in each column are added to obtain two bits:
sum and carry. Finally, the sum and carry bits in each column have to be summed.
Similarly, for the multiplication of an n-bit multiplicand and an m-bit multiplier, a
product with n + m bits long and m partial products can be generated. The method
shown in Figure.3 is also called a non-Booth encoding scheme.
sign-s
regime-rg
exponent-exp
mantissafrac.
The component width of the bit is variable. The regime values are always
varying. The rest of the positions for the bits shall be taken by mantissa and also
the exponent. This happens only when the regime does not reserve all the
positions. A numeral illustrated in the format for posits arithmetic
13
Fig.5.3.1. Posit arithmetic
14
CHAPTER 6
REQUIREMENT SPECIFICATION
• Mouse : Logitech.
15
Usability:
Reliability:
Reliability defines the trust in the system that is developed after using it for
a period of time. It defines the likeability of the software to work without failure
for a given time period.
The number of bugs in the code, hardware failures, and problems can
reduce the reliability of the software.
Create a requirement that data created in the system will be retained for a
number of years without the data being changed by the system.
It’s a good idea to also include requirements that make it easier to monitor
system performance.
Performance:
What should system response times be, as measured from any point, under
what circumstances?
Are there specific peak times when the load on the system will be unusually
high?
16
CHAPTER 7
SYSTEM SPECIFICATION
17
Creating the Working Library. In Modelsim, all designs are compiled into
a library. You typically start a new simulation in Modelsim by creating a
working library called "work," which is the default library name used by the
compiler as thedefault destination for compiled design units.
Compiling Your Design. After creating the working library, you compile
your design units into it. The Modelsim library format is compatible across all
supported platforms. You can simulate your design on any platform without
having to recompile your design.
Loading the Simulator with Your Design and Running the Simulation. With
the design compiled, you load the simulator with your design by invoking the
simulator on a top-level module (Verilog) or a configuration or entity/architecture
pair (VHDL). Assuming the design loads successfully, the simulation time is set
to zero, and you enter a run command to begin simulation.
Debugging Your Results. If you don‟t get the results you expect, you can
use Modelsim robust debugging environment to track down the cause of the
problem.
18
Fig.7.1.2.1. Project Flow
The flow is similar to the basic simulation flow. However, there are two
importantdifferences:
• You do not have to create a working library in the project flow; it is done
foryou automatically.
• Projects are persistent. In other words, they will open every time you
invokeModelsim unless you specifically close them.
The diagram above shows the basic steps for simulating with multiple
libraries. Modelsim uses libraries in two ways:
A resource library is typically static and serves as a parts source for your
design. You can create your own resource libraries, or they may be supplied by
another design team or a third party (e.g., a silicon vendor). You specify which
resource libraries will be used when the design is compiled, and there are rules to
specify in which order they are searched. A common example of using both a
working library and a resource library is one where your gate-level design and test
bench are compiled into the working library, and the design references gate-level
models in a separate resource library.
You can also link to resource libraries from within a project. If you are
using a project, you would replace the first step above with these two steps: create
the project and add the test bench to the project.
20
Working steps for modelsim:
2. File -> New -> project -> browse the project location ->enter the project
name.(The project created with the name what you have created).
3. Right click the workspace window to add the project file to project
(Rightclick -
add -> add existing file -> add the files (by browse)).
5. Select library (below in workspace), open the work package and double
click thefile tobe compiled for simulation process).
6. After simulating that file, it will create the simulation window (as sim).
7. Right click in that simulation window (by placing the cursor which has
beensimulated with entity name) and go to add -> add all to wave.
8. In waveform right click the operand and force the value. For clock input,
right clickthe clock operand and give the value (by clicking clock in the
option).
21
logic synthesizer, fitter, and bit stream generator software. The XS tools from
XESS provide utilities for downloading the bit stream into the FPGA on the XSA
Board.
Static power - Static power results primarily from transistor leakage current
in the device. Leakage current is either from source-to-drain or through the gate
oxide, and exists even when the transistor is logically “OFF”.
The accuracy of the Xilinx Power Tools depends on two primary components:
Device data models and device characterization integrated into the tool.
When using the Xilinx Power Tools, XPE is used for pre-design power
estimation and XPA is used for post-implementation design power optimization.
Since the Xilinx Power Tools cover different stages of the design flow, the tools
can be used for:
22
Part selection
Board design
System reliability
The Power Tools can be used for power optimization as well.. You can then
find tradeoffs to design for power. This can also be coupled with power
optimization algorithms available in synthesis and implementation within ISE.
Fig.7.2.1..Block diagram
2. Click File menu -> Select New project -> Then browse the project location
(which you have already created) -> then write the project name -> click
the next option.
3. In that Property Name -> select the family -> select the device -> select the
23
package -> then select the speed -> finally click the next option.
6. Then click final option (It will create the project source).
7. In that sources workspace right click and choose add copy of source. And
selectwhat are the files you need -> then give open -> then give ok.
8. Then select the file which you want -> right click -> set as top module.
10. Then for pin assignment select user constraints -> assign package pins ->
then give the input and output pins. Finally save it. (For editing select edit
constraints, then edit it if need)
11. Then go to generate programming files -> run the configure devices
(IMPACT)option.
Then select the finish option, choose the bit file program. (That bit file adds
to the device). Finally right click the device, select program -> click ok (it‟ll fetch
to the FPGA kit through the port).
24
7.3 CODING
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
entity MULTIPLIER is
port(
clk : in std_logic;
IN1 : in std_logic_vector (15 downto 0);
IN2 : in std_logic_vector (15 downto 0);
C : out std_logic_vector(31 downto 0));
end MULTIPLIER;
component PPG_0_0
port(
clk : in std_logic;
X : in std_logic_vector (3 downto 0);
Y : in std_logic_vector (3 downto 0);
OUT11 : out std_logic_vector(31 downto 0));
end component;
component PPG_0_1
port(
clk : in std_logic;
X : in std_logic_vector (3 downto 0);
Y : in std_logic_vector (7 downto 0);
OUT11 : out std_logic_vector(31 downto 0));
end component;
component PPG_0_2
port(
clk : in std_logic;
X : in std_logic_vector (3 downto 0);
Y : in std_logic_vector (11 downto 0);
OUT11 : out std_logic_vector(31 downto 0));
end component;
component PPG_0_3
port(
clk : in std_logic;
X : in std_logic_vector (3 downto 0);
Y : in std_logic_vector (15 downto 0);
OUT11 : out std_logic_vector(31 downto 0));
end component;
component PPG_1_0
port(
clk : in std_logic;
X : in std_logic_vector (7 downto 0);
Y : in std_logic_vector (3 downto 0);
OUT11 : out std_logic_vector(31 downto 0));
end component;
component PPG_1_1
port(
25
clk : in std_logic;
X : in std_logic_vector (7 downto 0);
Y : in std_logic_vector (7 downto 0);
OUT11 : out std_logic_vector(31 downto 0));
end component;
component PPG_1_2
port(
clk : in std_logic;
X : in std_logic_vector (7 downto 0);
Y : in std_logic_vector (11 downto 0);
OUT11 : out std_logic_vector(31 downto 0));
end component;
component PPG_1_3
port(
clk : in std_logic;
X : in std_logic_vector (7 downto 0);
Y : in std_logic_vector (15 downto 0);
OUT11 : out std_logic_vector(31 downto 0));
end component;
component PPG_2_0
port(
clk : in std_logic;
X : in std_logic_vector (11 downto 0);
Y : in std_logic_vector (3 downto 0);
OUT11 : out std_logic_vector(31 downto 0));
end component;
component PPG_2_1
port(
clk : in std_logic;
X : in std_logic_vector (11 downto 0);
Y : in std_logic_vector (7 downto 0);
OUT11 : out std_logic_vector(31 downto 0));
end component;
component PPG_2_2
port(
clk : in std_logic;
X : in std_logic_vector (11 downto 0);
Y : in std_logic_vector (11 downto 0);
OUT11 : out std_logic_vector(31 downto 0));
end component;
component PPG_2_3
port(
clk : in std_logic;
X : in std_logic_vector (11 downto 0);
Y : in std_logic_vector (15 downto 0);
OUT11 : out std_logic_vector(31 downto 0));
end component;
component PPG_3_0
port(
clk : in std_logic;
X : in std_logic_vector (15 downto 0);
Y : in std_logic_vector (3 downto 0);
26
OUT11 : out std_logic_vector(31 downto 0));
end component;
component PPG_3_1
port(
clk : in std_logic;
X : in std_logic_vector (15 downto 0);
Y : in std_logic_vector (7 downto 0);
OUT11 : out std_logic_vector(31 downto 0));
end component;
component PPG_3_2
port(
clk : in std_logic;
X : in std_logic_vector (15 downto 0);
Y : in std_logic_vector (11 downto 0);
OUT11 : out std_logic_vector(31 downto 0));
end component;
component PPG_3_3
port(
clk : in std_logic;
X : in std_logic_vector (15 downto 0);
Y : in std_logic_vector (15 downto 0);
OUT11 : out std_logic_vector(31 downto 0));
end component;
begin
process(IN1,IN2,CTLx,CTLy,X,Y)
begin
else
end if;
else
end if;
end process;
28
x10 : PPG_1_0 port map (clk,X(15 downto 8) ,Y(15 downto
12),PPG10);
process(CTLx,CTLy,PPG00,PPG01,PPG02,PPG03,PPG10,PPG11,PPG12,PPG13,PPG20,P
PG21,PPG22,PPG23,PPG30,PPG31,PPG32,PPG33)
begin
C <= PPG00;
C <= PPG01;
C <= PPG02;
C <= PPG03;
C <= PPG10;
C <= PPG11;
29
elsif ((CTLx="01") and (CTLy="10")) then
C <= PPG12;
C <= PPG13;
C <= PPG20;
C <= PPG21;
C <= PPG22;
C <= PPG23;
C <= PPG30;
C <= PPG31;
C <= PPG32;
C <= PPG33;
end if;
end process;
end BEH;
30
CHAPTER 8
FEASIBILITY ANALYSIS
The feasibility of the project is analyzed in this phase and business proposal
is put forth with a very general plan for the project and some cost estimates.
During system analysis the feasibility study of the proposed system is to be
carried out. This is to ensure that the proposed system is not a burden to the
company. For feasibility analysis, some understanding of the major requirements
for the system is essential.
ECONOMICAL FEASIBILITY
TECHNICAL FEASIBILITY
SOCIAL FEASIBILITY
ECONOMICAL FEASIBILITY:
This study is carried out to check the economic impact that the system will
have on the organization. The amount of fund that the company can pour into the
research and development of the system is limited. The expenditures must be
justified. Thus the developed system as well within the budget and this was
achieved because most of the technologies used are freely available. Only the
customized products had to be purchased.
TECHNICAL FEASIBILITY:
This study is carried out to check the technical feasibility, that is, the
technical requirements of the system. Any system developed must not have a high
demand on the available technical resources. This will lead to high demands on
31
the available technical resources. This will lead to high demands being placed on
the client. The developed system must have a modest requirement, as only
minimal or null changes are required for implementing this system.
SOCIAL FEASIBILITY:
The aspect of study is to check the level of acceptance of the system by the
user. This includes the process of training the user to use the system efficiently.
The user must not feel threatened by the system, instead must accept it as a
necessity. The level of acceptance by the users solely depends on the methods that
are employed to educate the user about the system and to make him familiar with
it. His level of confidence must be raised so that he is also able to make some
constructive criticism, which is welcomed, as he is the final user of the system.
32
CHAPTER 9
SYSTEM TESTING
Unit testing is usually conducted as part of a combined code and unit test
phase of the software lifecycle, although it is not uncommon for coding and unit
testing to be conducted as two distinct phases.
Test objectives
33
Features to be tested
Test Results: All the test cases mentioned above passed successfully. No
defects encountered.
Test Results: All the test cases mentioned above passed successfully. No
defects encountered.
34
CHAPTER 10
APPLICATION
35
I = imread('moon.tif');
J = immultiply(I,1.2);
imshow(I);
figure, imshow(J)
36
dimensional signals with systems that range from simple digital circuits to
advanced parallel computers. The goal of this manipulation can be divided into
three categories:
37
Fig : 10.2 Fundamental Steps
38
CHAPTER 11
OUTPUT
39
11.3. Power Generated
40
CHAPTER 12
FUTURE SCOPE
The proposed method is evaluated with 8-bit, 16-bit, and 32-bit posit
multiplier and an average of 16% power reduction can be achieved. The proposed
method is suitable to be used in any low power posit arithmetic unit designs.
41
CHAPTER 13
CONCLUSION
42
REFERENCES
[1] J. L. Gustafson and I. Yonemoto, “Beating floating point at its own game:
Posit arithmetic,” Supercomput. Front. Innovat. Int. J., vol. 4, no. 2, pp. 71–86,
Jun. 2017.
[2] IEEE Standard for Floating-Point Arithmetic, IEEE Standard 754-2008, Aug.
23, 2008, pp. 1–70.
D. Kudithipudi, “Deep positron: A deep neural network using the posit number
system,” CoRR, vol. abs/1812.01762, pp. 1–6, Dec. 2018.
[4] J. Johnson, “Rethinking floating point for deep learning,” CoRR, vol.
abs/1811.01721, pp. 1–8, Nov. 2018.
[7] M. K. Jaiswal and H.-K. So, “Architecture generator for type-3 unum posit
[8] H. Zhang, J. He, and S.-B. Ko, “Efficient posit multiply-accumulate unit
generator for deep learning applications,” in Proc. IEEE Int. Symp. Circuits Syst.
(ISCAS), Sapporo, Japan, May 2019, pp. 1–5.
43
[9] A. Podobas and S. Matsuoka, “Hardware implementation of POSITs and their
application in FPGAs,” in Proc. IEEE Int. Parallel Distrib. Process. Symp.
Workshops (IPDPSW), Vancouver, BC, Canada, May 2018, pp. 138–145.
44