Professional Documents
Culture Documents
Sampuuuu Project PG Edited
Sampuuuu Project PG Edited
Sampuuuu Project PG Edited
BACHELOR OF TECHNOLOGY
In
ELECTRONICS AND COMMUNICATION ENGINEERING
Submitted by
i
DEPARTMENT OF ELECTRONICS & COMMUNICATION ENGINEERING
CERTIFICATE
This is to certify that, the mini project entitled “AREA DELAY POWER
EFFICIENT FIXED-POINT LMS ADAPTIVE FILTER WITH LOW ADAPTION
DELAY” has been submitted by Vinnakota Druvya Sravani
(18RG1A04B8), Asuri Sai Sampadha (18RG1A0465), Surbiryal
Sindhuja (18RG1A04A9), Yenugu Sushma (18RG1A04C0) in
partial fulfillment of the requirements for the award of BACHELOR OF
TECHNOLOGY in ELECTRONICS & COMMUNICATION ENGINEERING .
This record of bonafide work carried out by them under my guidance and
supervision. The result embodied in this mini project report has not
been submitted to any other University or Institute for the award of
any degree.
ii
Project Guide
External Examiner
i
ACKNOWLEDGEMENT
The Mini Project work carried out by our team in the Department of
Electronics and Communication Engineering, Malla Reddy College of
Engineering for Women, Hyderabad. This work is original and has not
been submitted in part or full for any degree or diploma of any other
university.
We wish to acknowledge our sincere thanks to our project guide Mrs.
Affrose, Professor in Department of Electronics & Communication
Engineering for formulating the problem, analysis, guidance and his
continuous supervision during the project work.
We acknowledge our sincere thanks to Dr. Archek Praveen Kumar,
Professor, Head of the ECE Department, Dr.Kanaka Durga Returi, Dean
Academics and Professor in Department of Computer Science Engineering
and Dr. Vaka Murali Mohan, Principal and Professor in Department of
Computer Science Engineering, MRCEW for their kind cooperation in
making this Mini Project work a success.
We extend our gratitude to our beloved Chairman Sri. Ch. Malla
Reddy and our Secretary Sri. Ch. Mahender Reddy for their kind
cooperation in providing the infrastructure for successful completion of our
mini project work
We convey our special thanks to the entire Teaching faculty and non-
teaching staff members of the Electronics and Communication Engineering
Department for their support in making this project work a success.
iii
INDEX
LIST OF CONTENTS PAGE NO
ABSTRACT
1.LIST OF FIGUTRES
CHAPTER 1 - INTRODUCTION
1.1 Least mean square filter
1.2 Relationship to the least mean square filter
1.3 Definition of symbols
1.4 Simplifications
1.5 Adaptive filter
1.6 Tapped delay line FIR filter
1.7 Adaptive linear combiner
1.8 LMS algorithm
CHAPTER 2 – LITERATURE SURVEY
CHAPTER 3 – VERY LARGE SCALE INTEGRATION
3.1 Introduction
CHAPTER 4 – DESIGN CLASSIFICATION
4.1 Analog
4.2 ASCI
4.3 VLSI design styles
4.4 FPGA
4.5 Gate array design
4.6 Standard-cells based design
4.7 Full custom design
CHAPTER 5 – VERILOG
5.1 Introduction
5.2 History
5.3 Verilog code structure
5.4 Verilog design issues
5.5 Compilation
5.6 Data types
CHAPTER 6 – DESIGN REUSABILITY
6.1 Easiest to learn
6.2 Forward and backward annotation
6.3 High level constructs
6.4 Language extensions
6.5 Low level constructs
6.6 Operators
iv
6.7 Readability
6.8 Importance of HDL’s
6.9 Popularity of Verilog hdl
6.10 Typical design flow
CHAPTER 7 – XLINX
7.1 XLINX ISE overview
7.2 Design entry
7.3 Synthesis
7.4 Implementation
7.5 Project navigator overview
7.6 Using a sources window
7.7 Using the process window
7.8 Process types and status
7.9 Running process
7.1.0 Setting process properties
7.1.1 Using the transcript window and toolbar
CHAPTER 8 – CREATING A PROJECT
8.1 To create a project
8.2 Display incremental messages
8.3 Using ISE example projects
8.4 Creating a source file
8.5 Adding a source file to a project
8.6 FPGA Design flow overview
8.7 Functional verification
CHAPTER 9 – DESIGN SYNTHESIS
9.1 Design implementation
9.2 Timing verification
9.3 XLINX device programming
9.4 FPGA basic flow
OUTPUT
CONCLUSION
REFERENCE
v
ABSTRACT
vi
CHAPTER 1
INTRODUCTION
1
Park have proposed a 2-bit multiplication cell, and used that with an
efficient adder tree for pipelined inner-product computation to minimize the
critical path and silicon area without increasing the number of adaptation
delays The existing work on the DLMS adaptive filter does not discuss the
fixed-point implementation issues, e.g., location of radix point, choice of
word length, and quantization at various stages of computation, although
they directly affect the convergence performance, particularly due to the
recursive behavior of the LMS algorithm. Therefore, fixed-point
implementation issues are given adequate emphasis in this paper. Besides,
we present here the optimization of our previously reported design to reduce
the number of pipeline delays along with the area, sampling period, and
energy consumption. The proposed design is found to be more efficient in
terms of the power-delay product (PDP) and energy-delay product (EDP)
compared to the existing structures.
The realization of the causal Wiener filter looks a lot like the solution to the
least squares estimate, except in the signal processing domain. The least
squares solution, for input matrix and output vector is
The FIR least mean squares filter is related to the Wiener filter, but
minimizing the error criterion of the former does not rely on cross-
2
correlations or auto-correlations. Its solution converges to the Wiener filter
solution. Most linear adaptive filtering problems can be formulated using the
and the adaptive filter attempts to adapt the filter to make it as close
Definition of symbols
is the number of the current input sample
is the number of filter taps
The basic idea behind LMS filter is to approach the optimum filter
3
weights. In the same way, if the gradient is negative, we need to increase the
weights. So, the basic weight update equation is :
where represents the mean-square error. The negative sign indicates that,
we need to change the weights in a direction opposite to that of the gradient
slope.
4
Now, is a vector which points towards the steepest ascent of the cost
function. To find the minimum of the cost function we need to take a step in
where is the step size(adaptation constant). That means we have found a
sequential update algorithm which minimizes the cost function.
Unfortunately, this algorithm is not realizable until we
know .
Generally, the expectation above is not computed. Instead, to run the LMS
in an online (updating after each new sample is received) environment, we
use an instantaneous estimate of that expectation. See below.
Simplifications
5
Adaptive Filter:
Generally speaking, the closed loop adaptive process involves the use of
a cost function, which is a criterion for optimum performance of the filter, to
feed an algorithm, which determines how to modify filter transfer function to
minimize the cost on the next iteration. The most common cost function is
the mean square of the error signal.
One way to remove the noise is to filter the signal with a notch filter at the
mains frequency and its vicinity, which could excessively degrade the quality
of the ECG since the heart beat would also likely have frequency
components in the rejected range.
The idea behind a closed loop adaptive filter is that a variable filter is
adjusted until the error (the difference between the filter output and the
desired signal) is minimized. The Least Mean Squares (LMS) filter and
the Recursive Least Squares (RLS) filter are types of adaptive filter.
7
There are two input signals to the adaptive filter: dk and xk which are
sometimes called the primary input and the reference input respectively.[2]
These changes will be applied after sample time k and before they are
used at sample time k+1.
where:
.
where:
Ideal case
.
The error signal is minimized in the mean square sense when is
minimized. In other words, is the best mean square estimate of . In the
ideal case, and , and all that is left after the subtraction is
which is the unchanged desired signal with all undesired signals removed.
where
10
This formula means that the output signal to interference ratio at a
particular frequency is the reciprocal of the reference signal to interference
ratio.[4]
The adaptive linear combiner (ALC) resembles the adaptive tapped delay line
FIR filter except that there is no assumed relationship between the X values.
If the X values were from the outputs of a tapped delay line, then the
11
combination of tapped delay line and ALC would comprise an adaptive filter.
However, the X values could be the values of an array of pixels. Or they
could be the outputs of multiple tapped delay lines. The ALC finds use as an
adaptive beam former for arrays of hydrophones or antennas.
LMS ALGORITM
If the variable filter has a tapped delay line FIR structure, then the
LMS update algorithm is especially simple. Typically, after each sample, the
coefficients of the FIR filter are adjusted as follows: [5](Widrow)
for
The LMS algorithm does not require that the X values have any particular
relationship; therefor it can be used to adapt a linear combiner as well as an
FIR filter. In this case the update formula is written as:
The effect of the LMS algorithm is at each time, k, to make a small change in
each weight. The direction of the change is such that it would decrease the
error if it had been applied at time k. The magnitude of the change in each
weight depends on μ, the associated X value and the error at time k. The
weights making the largest contribution to the output, , are changed the
most. If the error is zero, then there should be no change in the weights. If
the associated value of X is zero, then changing the weight makes no
difference, so it is not changed.
Convergence
μ controls how fast and how well the algorithm converges to the
optimum filter coefficients. If μ is too large, the algorithm will not converge.
If μ is too small the algorithm converges slowly and may not be able to track
12
changing conditions. If μ is large but not too large to prevent convergence,
the algorithm reaches steady state rapidly but continuously overshoots the
optimum weight vector. Sometimes, μ is made large at first for rapid
convergence and then decreased to minimize overshoot. Widrow and Stearns
state in 1985 that they have no knowledge of a proof that the LMS algorithm
will converge in all cases. [6] However under certain assumptions about
stationarity and independence it can be shown that the algorithm will
converge if
where
In the case of the tapped delay line filter, each input has the same RMS
value because they are simply the same values delayed. In this case the total
power is
where
criteria becomes: .
13
CHAPTER 2
LITERATURE SURVEY
R. Rocher, D. Menard, O. Sentieys, and P. Scalart, “Accuracy evaluation of
Pramod Kumar Meher (SM’03) received the degrees of BSc (Honours), MSc in
Physics with various Government Colleges in India from 1981 to 1993. His
contributed more than 180 technical papers to various reputed journals and
conference proceedings.
and Associate Editor for the IEEE Transactions on Circuits and Systems-I:
16
International Symposium on circuits and systems (ISCAS), Rio dejaneiro,
Brazil, May 2011. Currently, he is a Senior Scientist with the Institute for
17
prominent trends in information technologies over the next few decades. The
current leading-edge technologies (such as low bit-rate video and cellular
communications) already provide the end-users a certain amount of
processing power and portability. This trend is expected to continue, with
very important implications on VLSI and systems design. One of the most
important characteristics of information services is their increasing need for
very high processing power and bandwidth (in order to handle real-time
video, for example). The other important characteristic is that the
information services tend to become more and more personalized (as
opposed to collective services such as broadcasting), which means that the
devices must be more intelligent to answer individual demands, and at the
same time they must be portable to allow more flexibility/mobility.
VLSI has been around for a long time, there is nothing new about it,
but as a side effect of advances in the world of computers, there has been a
dramatic proliferation of tools that can be used to design VLSI circuits.
Alongside, obeying Moore's law, the capability of an IC has increased
exponentially over the years, in terms of computation power, utilization of
available area, yield. The combined effect of these two advances is that
people can now put diverse functionality into the IC's, opening up new
18
frontiers. Examples are embedded systems, where intelligent devices are put
inside everyday objects, and ubiquitous computing where small computing
devices proliferate to such an extent that even the shoes you wear may
actually do something useful like monitoring your heartbeats.
Verilog was developed at a time when designers were looking for tools
to combine different levels of simulation. In the early 1980s, there were
switch-level simulators, gate-level simulators, functional simulators (often
written ad-hoc in software) and no simple means to combine them. Further,
the more-widespread, traditional programming languages themselves
were/are essentially sequential and thus "semantically challenged" when
modeling the concurrency of digital circuitry.Verilog was created by Phil
Moore in 1983-4 at Gateway Design Automation and the first simulator was
written a year later. It borrowed much from the existing languages of the
time: the concurrency aspects may be seen in both Modula and (earlier)
Simulate; the syntax is deliberately close to that of C; and the methods for
combining different levels of abstraction owe much to Hilo.
20
CHAPTER 4
DESIGNS CLASSIFICATION
ASIC
Progress in the fabrication of IC's has enabled us to create fast and
powerful circuits in smaller and smaller devices. This also means that we
can pack a lot more of functionality into the same area. The biggest
application of this ability is found in the design of ASIC's. These are IC's that
are created for specific purposes - each device is created to do a particular
job, and do it well. The most common application area for this is DSP -
21
signal filters, image compression, etc. To go to extremes, consider the fact
that the digital wristwatch normally consists of a single IC doing all the
time-keeping jobs as well as extra features like games, calendar, etc.
SOC
These are highly complex mixed signal circuits (digital and analog all
on the same chip). A network processor chip or a wireless radio chip is an
example of a SoC.
FPGA
Fully fabricated FPGA chips containing thousands of logic gates or
even more, with programmable interconnects, are available to users for their
custom hardware programming to realize desired functionality. This design
style provides a means for fast prototyping and also for cost-effective chip
design, especially for low-volume applications. A typical field programmable
gate array (FPGA) chip consists of I/O buffers, an array of configurable logic
blocks (CLBs), and programmable interconnect structures. The
programming of the inter connects is implemented by programming of RAM
cells whose output terminals are connected to the gates of MOS pass
transistors. A general architecture of FPGA.A more detailed view showing
the locations of switch matrices used for interconnect routing. A simple CLB
(model XC2000 from XILINX) It consists of four signal input terminals (A, B,
C, D), a clock signal terminal, user-programmable multiplexers, an SR-
latch, and a look-up table (LUT). The LUT is a digital memory that stores the
22
truth table of the Boolean function. Thus, it can generate any function of up
to four variables or any two functions of three variables.
23
with user programming, that of the gate array is done with metal mask
design and processing. Gate array implementation requires a two-step
manufacturing process: The first phase, which is based on generic
(standard) masks, results in an array of uncommitted transistors on each
GA chip. These uncommitted chips can be stored for later customization,
which is completed by defining the metal interconnects between the
transistors of the array Since the patterning of metallic interconnects is
done at the end of the chip fabrication, the turn-around time can be still
short, a few days to a few weeks. a corner of a gate array chip which
contains bonding pads on its left and bottom edges, diodes for I/O
protection, nMOS transistors and pMOS transistors for chip output driver
circuits in the neighboring areas of bonding pads, arrays of nMOS
transistors and pMOS transistors, underpass wire segments, and power and
ground buses along with contact windows.
Magnified portion of the internal array with metal mask design (metal
lines highlighted in dark) to realize a complex logic function. Typical gate
array platforms allow dedicated areas, called channels, for intercell routing.
The availability of these routing channels simplifies the interconnections,
even using one metal layer only. The interconnection patterns to realize
basic logic gates can be stored in a library, which can then be used to
customize rows of uncommitted transistors according to the net list. While
most gate array platforms only contain rows of uncommitted transistors
separated by routing channels, some other platforms also offer dedicated
memory (RAM) arrays to allow a higher density where memory functions are
required. The layout views of a conventional gate array and a gate array
platform with two dedicated memory banks.
With the use of multiple interconnect layers, the routing can be achieved
over the active cell areas; thus, the routing channels can be removed as in
Sea-of-Gates (SOG) chips. Here, the entire chip surface is covered with
uncommitted nMOS and pMOS transistors. As in the gate array case,
neighboring transistors can be customized using a metal mask to form basic
24
logic gates. For intercell routing, however, some of the uncommitted
transistors must be sacrificed. This approach results in more flexibility for
interconnections, and usually in a higher density. The basic platform of a
SOG chip is shown in offers a brief comparison between the channeled (GA)
vs. the channel less (SOG) approaches.
25
cell. The layout of a typical standard cell. Notice that the nMOS transistors
are located closer to the ground rail while the pMOS transistors are placed
closer to the power rail.
26
CHAPTER-5
VERILOG
INTRODUCTION
COMPILATION
The Verilog language is still rooted in it's native interpretative mode.
Compilation is a means of speeding up simulation, but has not changed the
original nature of the language. As a result care must be taken with both the
compilation order of code written in a single file and the compilation order of
multiple files. Simulation results can change by simply changing the order
of compilation.
DATA TYPES
Compared to VHDL, Verilog data types are very simple, easy to use
and very much geared towards modeling hardware structure as opposed to
abstract hardware modeling. Unlike VHDL, all data types used in a Verilog
model are defined by the Verilog language and not by the user. There are net
data types, for example wire, and a register data type called reg. A model
with a signal whose type is one of the net data types has a corresponding
electrical wire in the implied modeled circuit. Objects, that is signals, of type
reg hold their value over simulation delta cycles and should not be confused
with the modeling of a hardware register. Verilog may be preferred because
of it's simplicity.
30
Net variables correspond to structural connections between two or
more elements within the module. These are most often declared within a
model using the keyword wire. Alternative specifications of nets also exist to
define, for example, tristable nets (e.g., triand, trior), nets that can
implement wired AND or wired OR logic functions (e.g., wand, wor), and
power/ground nets (supply1 and supply0). The default value of a wire data
type is the tristate value z.
Unless specified in terms of an array, both the wire and reg keywords
represent a single bit. Particularly in the case of stored variables, more
compact representations are often convenient. To facilitate this, Verilog
permits register variables of type integer and real to store integer and real
variables, respectively. For example, in specifying the value of a counter, an
integer variable may be more convenientto use, and may make the
description more readable than the use of an array of bits. Another stored
variable that is provided for convenience is the integer time data type, which
is most commonly used in conjunction with the system function $time that
provides the current time point of the simulation as an integer. A
corresponding data type realtime can be used to store time in the form of a
real number.
31
The following rules govern the mapping of ports of a module to nets or
registers:
• From the inside, an input must be a net data type, but not a register data
type. The connection external to the module may be either a register or a
net.
• An output port may be either a net or a register variable from the inside,
but must be a net variable on the outside.
• An input port must be a net both from the inside and the outside. The
rationale for this convention could be understood by observing that the
designer does not inadvertently specify a latency of more than one, i.e., two
storage elements are not inadvertently connected in series. In cases where
such a connection is desired, the notation permits such a connection
through an explicit and conscious action of connecting a net to a register.
VECTORS AND ARRAYS
It is often convenient to conceptualize groups of nets or registers in
terms of an array, for example, in case of a bus or a hardware register. For
this purpose, Verilog permits the definition of a vector for net and reg data
types. For example, an eight-bit address bus may be specified using the
declaration.
CONSTANTS
The keyword parameter in Verilog announces the declaration of a
constant and assigns a value to it. Parameter values may be declared by
providing their values with the description. For example, within a module
my_module, one may define parameter number_of_bits = 32;
32
The defparam statement in the upper level module permits the
declared values of the parameter within a module to be overridden. For
example, the value of the parameter number_of_bits in the module
my_module may be overridden in the upper level module. The my_module
x(); and my_module y(); statements will, respectively, instantiate the module
my_module and override the value of the internally declared parameter,
number_of_bits, from its default value of 32 to 16 and 64, respectively.
Alternatively, parameter instances can also be overridden during module
instantiation.
NUMBER REPRESENTATION
Verilog permits numbers to be represented using a binary, octal, hex
or decimal representation. Apart from the normally permissible values (0
and 1 for binary, 0 through 7 for octal, 0 through F for hex, and 0 through 9
for decimal), each digit may take on the values x (unknown) or z (high
impedance). A number may be represented in a sized or unsized form,
depending on whether the number of bits is specified or not. A sized number
is represented in the form size ’ base_format number where size corresponds
to the number of bits, base_format takes on one of the possible values of b
(binary), o (octal), h (hex) or d (decimal), and number is the actual value of
the number. It is important to note that regardless of the base that is used,
the size refers to the number of binary bits in the representation. Examples
of numbers in a sized format include 8’b11111111, 8’o377, 8’h FF and
33
8’d255 In contrast, unsized numbers are written without a size specification,
which defaults to a value that varies with the simulator.
CHAPTER 6
DESIGN REUSABILITY
There is no concept of packages in Verilog. Functions and procedures
used within a model must be defined in the module. To make functions and
procedures generally accessible from different module statements the
functions and procedures must be placed in a separate system file and
included using the `include compiler directive.
EASIEST TO LEARN
Starting with zero knowledge of either language, Verilog is probably
the easiest to grasp and understand. This assumes the Verilog compiler
directive language for simulation and the PLI language is not included. If
these languages are included they can be looked upon as two additional
languages that need to be learned. VHDL may seem less intuitive at first for
two primary reasons. First, it is very strongly typed; a feature that makes it
34
robust and powerful for the advanced user after a longer learning phase.
Second, there are many ways to model the same circuit, specially those with
large hierarchical structures.
FORWARD AND BACK ANNOTATION
A spin-off from Verilog is the Standard Delay Format (SDF). This is a
general purpose format used to define the timing delays in a circuit. The
format provides a bidirectional link between, chip layout tools, and either
synthesis or simulation tools, in order to provide more accurate timing
representations. The SDF format is now an industry standard in it's own
right.
LANGUAGE EXTENSIONS
The use of language extensions will make a model non standard and
most likely not portable across other design tools. However, sometimes they
are necessary in order to achieve the desired results. The Programming
Language Interface (PLI) is an interface mechanism between Verilog models
and Verilog software tools. For example, a designer, or more likely, a Verilog
tool vendor, can specify user defined tasks or functions in the C
programming language, and then call them from the Verilog source
description. Use of such tasks or functions make a Verilog model
nonstandard and so may not be usable by other Verilog tools. Their use is
not recommended. Libraries There is no concept of a library in Verilog. This
is due to it's origins as an interpretive language.
35
The Verilog language was originally developed with gate level modeling
in mind, and so has very good constructs for modeling at this level and for
modeling the cell primitives of ASIC and FPGA libraries. Examples include
User Defined Primitive s (UDP), truth tables and the specify block for
specifying timing delays across a module.
OPERATORS
The majority of operators are the same between the two languages.
Verilog does have very useful unary reduction operators that are not in
VHDL. A loop statement can be used in VHDL to perform the same operation
as a Verilog unary reduction operator. VHDL has the mod operator that is
not found in Verilog.
READABILITY
This is more a matter of coding style and experience than language
feature. VHDL is a concise and verbose language; its roots are based on Ada.
Verilog is more like C because its constructs are based approximately 50%
on C and 50% on Ada. For this reason an existing C programmer may prefer
Verilog over VHDL. Although an existing programmer of both C and Ada may
find the mix of constructs somewhat confusing at first. Whatever HDL is
used, when writing or reading an HDL model to be synthesized it is
important to think about hardware intent.
IMPORTANCE OF HDLS
37
Most popular logic synthesis tools support Verilog HDL. This makes it
the language of choice for designers.
TRENDS IN HDLS
The speed and complexity of digital circuits have increased rapidly.
Designers have responded by designing at higher levels of abstraction.
Designers have to think only in terms of functionality. EDA tools take
care of the implementation details. With designer assistance, EDA
tools have become sophisticated enough to achieve a close-to-
optimum implementation.
The most popular trend currently is to design in HDL at an RTL level,
because logic synthesis tools can create gate-level netlists from RTL
level design. Behavioral synthesis allowed engineers to design directly
in terms of algorithms and the behavior of the circuit, and then use
EDA tools to do the translation and optimization in each phase of the
design. However, behavioral synthesis did not gain widespread
acceptance. Today, RTL design continues to be very popular. Verilog
HDL is also being constantly enhanced to meet the needs of new
verification methodologies.
38
describe a design in Verilog HDL will not go away. Assertion checkers
allow checking to be embedded in the RTL code. This is a convenient
way to do checking in the most important parts of a design.
39
before the RTL descriptions for the graphics chip and the I/O chip are
completed.
A typical design flow for designing VLSI-IC circuits is shown in the below
Figure 1. Unshaded blocks show the level of design representation; shaded
blocks show processes in the design flow.
The design flow shown in Figure 1 is typically used by designers who use
HDLs. In any design, specifications are written first. Specifications describe
abstractly the functionality, interface, and overall architecture of the digital
40
circuit to be designed. At this point, the architects do not need to think
about how they will implement this circuit. A behavioral description is then
created to analyze the design in terms of functionality, performance, and
compliance to standards, and other high-level issues. Behavioral
descriptions are often written with HDLs. The behavioral description is
manually converted to an RTL description in an HDL. The designer has to
describe the data flow that will implement the desired digital circuit. From
this point onward, the design process is done with the assistance of EDA
tools.
42
CHAPTER 7
XILINX
DESIGN ENTRY
Design entry is the first step in the ISE design flow. During design
entry, you create your source files based on your design objectives. You can
create your top-level design file using a Hardware Description Language
(HDL), such as VHDL, Verilog, or ABEL, or using a schematic. You can use
multiple formats for the lower-level source files in your design.
SYNTHESIS
After design entry and optional simulation, you run synthesis. During
this step, VHDL, Verilog, or mixed language designs become netlist files that
are accepted as input to the implementation step.
IMPLEMENTATION
After synthesis, you run design implementation, which converts the
logical design into a physical file format that can be downloaded to the
selected target device. From Project Navigator, you can run the
implementation process in one step, or you can run each of the
implementation processes separately. Implementation processes vary
depending on whether you are targeting a Field Programmable Gate Array
(FPGA) or a Complex Programmable Logic Device (CPLD).
43
VERIFICATION
You can verify the functionality of your design at several points in the
design flow. You can use simulator software to verify the functionality and
timing of your design or a portion of your design. The simulator interprets
VHDL or Verilog code into circuit functionality and displays logical results of
the described HDL to determine correct circuit operation. Simulation allows
you to create and verify complex functions in a relatively small amount of
time. You can also run in-circuit verification after programming your device.
DEVICE CONFIGURATION
After generating a programming file, you configure your device. During
configuration, you generate configuration files and download the
programming files from a host computer to a Xilinx device.
PROJECT NAVIGATOR OVERVIEW
Project Navigator organizes your design files and runs processes to move
the design from design entry through implementation to programming the
targeted Xilinx® device. Project Navigator is the high-level manager for your
Xilinx FPGA and CPLD designs, which allows you to do the following:
Add and create design source files, which appear in the Sources
window
44
Fig 7.1 project navigator
1. Toolbar
2. Sources window
3. Processes window
4. Workspace
5. Transcript window
USING THE SOURCES WINDOW
The first step in implementing your design for a Xilinx® FPGA or
CPLD is to assemble the design source files into a project. The Sources tab
in the Sources window shows the source files you create and add to your
45
project, as shown in the following figure. For information on creating
projects and source files, see Creating a Project and Creating a Source File.
The Design View ("Sources for") drop-down list at the top of the
Sources tab allows you to view only those source files associated with the
selected Design View (for example, Synthesis/Implementation). For details,
see Using the Design Views. The "Number of" drop-down list, Resources
column, and Preserve column are available for designs that use Partitions.
For details, see Using Partitions.
The Sources tab shows the hierarchy of your design. You can collapse
and expand the levels by clicking the plus (+) or minus (-) icons. Each
source file appears next to an icon that shows its file type. The file you select
determines the processes available in the Processes window. You can
double-click a source file to open it for editing in the Workspace. For
information on the different file types, see Source File Types.
You can change the project properties, such as the device family to
target, the top-level module type, the synthesis tool, the simulator, and the
generated simulation language. For information, see Changing Project,
Source, and Snapshot Properties.
46
Depending on the source file and tool you are working with, additional
tabs are available in the Sources window:
Depending on the source file and tool you are working with, additional tabs
are available in the Processes window:
PROCESS TYPES
47
The following types of processes are available as you work on your
design:
Tasks
When you run a task process, the ISE software runs in "batch mode,"
that is, the software processes your source file but does not open any
additional software tools in the Workspace. Output from the processes
appears in the Transcript window.
Reports
Most tasks include report sub-processes, which generate a summary or
status report, for example, the Synthesis Report or Map Report. When
you run a report process, the report appears in the Workspace.
Tools
When you run a tools process, the related tool launches in standalone
mode or appears in the Workspace where you can view or modify your
design source files.
PROCESS STATUS
As you work on your design, you may make changes that require some or
all of the processes to be rerun. For example, if you edit a source file, it may
require that the Synthesis process and all subsequent process be rerun.
Project Navigator keeps track of the changes you make and shows the status
of each process with the following status icons:
Running
Up-to-date
This icon shows that the process ran successfully with no errors or
warnings and does not need to be rerun. If the icon is next to a report
process, the report is up-to-date; however, associated tasks may have
48
warnings or errors. If this occurs, you can read the report to determine
the cause of the warnings or errors.
Warnings reported
This icon shows that the process ran successfully but that warnings
were encountered.
Errors reported
This icon shows that the process ran but encountered an error.
Out-of-Date
This icon shows that you made design changes, which require that the
process be rerun. If this icon is next to a report process, you can rerun
the associated task process to create an up-to-date version of the
report.
No icon
If there is no icon, this shows that the process was never run.
RUNNING PROCESSES
To run a process, you can do any of the following:
Right-click while positioned over the process, and select Run from the
popup menu, as shown in the following figure.
49
Fig 7.3 RUNNING PROCESSES
Select the process, and then click the Run toolbar button .
51
Float
Dock
The Console tab of the Transcript window shows output messages from
the processes you run. When the following icons appear next to a message,
you can right-click the message and select Goto Answer Record to open the
Xilinx website and show any related Answer Records. If a line number
appears as part of the message, you can right-click the message and select
Goto Source to open the source file with the appropriate line number
highlighted.
Warning
Error
Depending on the source file and tool you are working with, additional
tabs are available in the Transcript window:
Always available: Console tab, Errors tab, Warnings tab, Tcl Shell tab,
Find in Files tab
ISE Simulator: Simulation Console tab
RTL and Technology Viewers: View by Name tab, View by Category tab
52
CHAPTER 8
CREATING A PROJECT
Project Navigator allows you to manage your FPGA and CPLD designs
using an ISE™ project, which contains all the files related to your design.
First, you must create a project and then add source files. With your project
open in Project Navigator, you can view and run processes on all the files in
your design. Project Navigator provides a wizard to help you create a new
project, as follows.
a) In the Project Name field, enter a name for the project. Follow the
naming conventions described in File Naming Conventions.
53
b) In the Project Location field, enter the directory name or browse to the
directory.
c) In the Top-Level Source Type drop-down list, select one of the
following:
HDL: Select this option if your top-level design file is a VHDL, Verilog,
or ABEL (for CPLDs) file. An HDL Project can include lower-level
modules of different file types, such as other HDL files, schematics,
and "black boxes," such as IP cores and EDIF files.
Schematic: Select this option if your top-level design file is a
schematic file. A schematic project can include lower-level modules of
different file types, such as HDL files, other schematics, and "black
boxes," such as IP cores and EDIF files. Project Navigator
automatically converts any schematic files in your design to structural
HDL before implementation; therefore, you must specify a synthesis
tool when working with schematic projects, as described in step 5.
EDIF: Select this option if you converted your design to this file type,
for example, using a synthesis tool. Using this file type allows you to
skip the Project Navigator synthesis process and to start with the
implementation processes.
NGC/NGO: Select this option if you converted your design to this file
type, for example, using a synthesis tool. Using this file type allows
you to skip the Project Navigator synthesis process and start with the
implementation processes.
3. Click Next.
4. If you are creating an HDL or schematic project, skip to the next step.
If you are creating an EDIF or NGC/NGO project, do the following in
the Import EDIF/NGC Project page:
a) In the Input Design field, enter the name of the input design file, or
browse to the file and select it.
54
b) Select Copy the input design to the project directory to copy your file
to the project directory. If you do not select this option, your file is
accessed from the remote location.
c) In the Constraint File field, enter the name of the constraints file, or
browse to the file and select it.
d) Select Copy the constraints file to the project directory to copy your
file to the project directory. If you do not select this option, your file is
accessed from the remote location.
e) Click Next.
3 In the Device Properties page, set the following options. These settings
affect other project options, such as the types of processes that are available
for your design.
Product Category
Family
Device
Package
Speed
Top-Level Source Type
Synthesis Tool
Select one of the following synthesis tools and the HDL language for your
project. VHDL/Verilog is a mixed language flow. If you plan to run
behavioral simulation, your simulator must support multiple language
simulation.
XST (Xilinx® Synthesis Technology)
XST is available with ISE Foundation™ software installations. It supports
projects that include schematic design files and projects that include mixed
language source files, such as VHDL and Verilog sources files in the same
project. Synplify and Synplify Pro (Synplicity®, Inc.)
The Synplify® software does not support projects that include mixed
language source files. The Synplify Pro® software supports projects that
55
include mixed language source files, such as VHDL and Verilog sources files
in the same project. The Synplify and Synplify Pro software do not support
projects that include schematic design files.
57
7. Click Next, and optionally, add existing source files to your project in
the Add Existing Sources page.
8. Click Next to display the Project Summary page.
9. Click Finish to create the project.
WHAT TO EXPECT
Project Navigator creates the project file, project_name.ise, in the
directory you specified. All source files related to the project appear in the
Project Navigator Sources tab. Project Navigator manages your project based
on the project properties (top-level module type, device type, synthesis tool,
and language) you selected when you created the project. It organizes all the
parts of your design and keeps track of the processes necessary to move the
design from design entry through implementation to programming the
targeted Xilinx device.
WHAT TO DO NEXT
You can perform any of the following:
Create and add source files to your project.
Add existing source files to your project.
Run processes on your source files.
58
To help you choose an example project, the Project Description field
describes each project. In addition, you can scroll to the right to see
additional fields, which provide details about the project.
3. Enter a name for the new source file in the File Name field. Follow the
naming conventions described in File Naming Conventions.
59
4. In the Location field, enter the directory name or browse to the
directory.
5. Select Add to Project to automatically add this source to the project.
6. Click Next.
7. If you are creating a source file that needs to be associated with an
existing source file, select the appropriate source file, and click Next. If
this does not apply, skip to the next step.
8. In the New Source Wizard - Summary window, verify the information
for the new source, and click Finish.
WHAT TO EXPECT
After you click Finish, the New Source wizard closes. In some cases, a
related tool is launched in which you can finish creating your file. After the
source file is created, it appears in the Project Navigator Sources tab. If you
selected Add to Project when creating the source file, the file is automatically
added to the project.
5. Click OK.
WHAT TO EXPECT
The source file is added to your project, and the file appears as part of
the design hierarchy in the Sources tab. If you added a remote source, the
directory path appears with the file name.
If the source file you added refers to files that have not been added to
the project, the file names appear in the design hierarchy as undefined files
. You must add the referenced files to the project for the ISE software to
track changes to the files.
FPGA DESIGN FLOW OVERVIEW
The ISE™ design flow comprises the following steps: design entry,
design synthesis, design implementation, and Xilinx® device programming.
Design verification, which includes both functional verification and timing
verification, takes places at different points during the design flow. This
section describes what to do during each step. For additional details on each
design step, click a box in the following figure.
61
DESIGN ENTRY
Create an ISE project as follows:
1. Create a project.
2. Create files and add them to your project, including a user constraints
(UCF) file.
3. Add any existing files to your project.
4. Assign constraints such as timing constraints, pin assignments, and
area constraints.
FUNCTIONAL VERIFICATION
You can verify the functionality of your design at different points in the
design flow as follows:
Before synthesis, run behavioral simulation (also known as RTL
simulation).
After Translate, run functional simulation (also known as gate-level
simulation), using the SIMPRIM library.
After device programming, run in-circuit verification.
62
CHAPTER 9
DESIGN SYNTHESIS
DESIGN IMPLEMENTATION
Implement your design as follows:
1. Implement your design, which includes the following steps:
Translate
Map
Place and Route
Process properties
Constraints
Source files
TIMING VERIFICATION
63
You can verify the timing of your design at different points in the design
flow as follows:
Run static timing analysis at the following points in the design flow:
After Map
After Place & Route
Run timing simulation at the following points in the design flow:
After Map (for a partial timing analysis of CLB and IOB delays)
After Place and Route (for full timing analysis of block and net
delays)
64
Use the Test Bench Waveform Editor to specify stimulus for the
design.
Use the Language Templates to assist in coding of the test bench.
Translate
Map
Place and Route
Process properties
Constraints
Source files
c) Modify the design as necessary, simulate, synthesize, and implement
your design again until design requirements are met.
d) Run timing simulation to verify end functionality and timing of the
design.
65
OUTPUT
66
67
68
69
70
71
CONCLUSION
FIR filter block designed to optimize the PPG unit and it reduces the area
and delay power. It reduces the energy per samples (EPS) value upto 85%
compared to the existing system . An area and the power are reduced with
the FIR filter block. Using the FIR filter block architechture size will be
reduced. The direct -form LMS adaptive filter is more efficient than the
transpose-form LMS adaptive filter . In ten direct form LMS structure there
is no need of pipelined concept . So it consumes more power than existing
system . From this method, more than 92% power consumption is possible
while using the direct form structure.
72
REFERENCES
[1] B. Widrow and S. D. Stearns, Adaptive signal processing. Englewood Cliffs, NJ:
Prentice-Hall, 1985.
[2] S. Haykin and B. Widrow, Least-mean-square adaptive filters. Hoboken, NJ: Wiley-
Interscience, 2003.
[4] G. Long, F. Ling, and J. G. Proakis, “The LMS algorithm with delayed coefficient
adaptation,” IEEE Transactions on Acoustics, Speech, and Signal Processing, vol. 37, no. 9,
pp. 1397–1405, Sep. 1989.
[5] ——, “Corrections to ‘The LMS algorithm with delayed coefficient adaptation’,” IEEE
Transactions on Signal Processing, vol. 40, no. 1, pp. 230–232, Jan. 1992.
[7] M. D. Meyer and D. P. Agrawal, “A high sampling rate delayed LMS filter architecture,”
IEEE Transactions on Circuits and Systems II: Analog and Digital Signal Processing, vol. 40,
no. 11, pp. 727–729, Nov. 1993.
[8] S. Ramanathan and V. Visvanathan, “A systolic architecture for LMS adaptive filtering
with minimal adaptation delay,” in Proc. International Conference on VLSI Design (VLSID),
Jan. 1996, pp. 286–289.
73
[9] Y. Yi, R. Woods, L.-K. Ting, and C. F. N. Cowan, “High speed FPGAbased
implementations of delayed-LMS filters,” Journal of VLSI Signal Processing, vol. 39, no. 1-
2, pp. 113–131, Jan. 2005.
[10] L. D. Van and W. S. Feng, “An efficient systolic architecture for the DLMS adaptive
filter and its applications,” IEEE Transactions on Circuits and Systems II: Analog and Digital
Signal Processing, vol. 48, no. 4, pp. 359–366, Apr. 2001.
74