17. Design of FIR Filter Using Verilog HDL - Copy
-
Upload
karthik-kodali -
Category
Documents
-
view
4.738 -
download
2
Transcript of 17. Design of FIR Filter Using Verilog HDL - Copy
CHAPTER 1
INTRODUCTION
1.1. INTRODUCTION:
In signal processing, a finite impulse response (FIR) filter is a filter whose impulse
response (or response to any finite length input) is of finite duration, because it settles to zero in
finite time. This is in contrast to infinite impulse response (IIR) filters, which have internal
feedback and may continue to respond indefinitely (usually decaying).
The impulse response of an Nth-order discrete-time FIR filter (i.e., with a Kronecker delta
impulse input) lasts for N + 1 samples, and then settles to zero.
FIR filters can be discrete-time or continuous-time, and digital or analog.
The output y of a linear time invariant system is determined by convolving its input signal x with
its impulse response b.
For a discrete-time FIR filter, the output is a weighted sum of the current and a finite number of
previous values of the input. The operation is described by the following equation, which defines
the output sequence y[n] in terms of its input sequence x[n]:
where:
x[n] is the input signal,
y[n] is the output signal,
zn are the filter coefficients, also known as tap weights, that make up the impulse
response,
bn is the filter order; an n th-order filter has n terms on the right-hand side. The n in these
terms are commonly referred to as taps, based on the structure of a tapped delay line that
in many implementations or block diagrams provides the delayed inputs to the
multiplication operations. One may speak of a 5th order/6-tap filter, for instance.
An FIR filter has a number of useful properties which sometimes make it preferable to an infinite
impulse response (IIR) filter. FIR filters:
Require no feedback. This means that any rounding errors are not compounded by
summed iterations. The same relative error occurs in each calculation. This also makes
implementation simpler.
Are inherently stable. This is due to the fact that, because there is no required feedback,
all the poles are located at the origin and thus are located within the unit circle (the
required condition for stability in a Z transformed system).
They can easily be designed to be linear phase by making the coefficient sequence
symmetric; linear phase, or phase change proportional to frequency, corresponds to equal
delay at all frequencies. This property is sometimes desired for phase-sensitive
applications, for example data communications, crossover filters, and mastering.
The main disadvantage of FIR filters is that considerably more computation power in a general
purpose processor is required compared to an IIR filter with similar sharpness or selectivity,
especially when low frequency (relative to the sample rate) cutoffs are needed. However many
digital signal processors provide specialized hardware features to make FIR filters approximately
as efficient as IIR for many applications.
Filter is the component which passes certain band of frequencies and opposes other
frequency components. Filter is the basic component in any Digital Signal Processor (DSP)
applications. For this we have two filters they are Finite Impulse Response (FIR) filter and
Infinite Impulse Response (IIR) filter.
FIR filter is digital type of filter where we consider finite number of samples. In FIR
filter the impulse response settle down to zero after final sample of interval, where as in IIR filter
we consider infinite number of samples for analysis.
1.2. FIR Filter:
FIR filter is a one polynomial coefficient. FIR filter needs much high order polynomial to get an
equivalent filter as IIR filter, which results in longer delay.
H (Z) =B (Z)/ZN
Y[n] = b0x[n] +b1x [n-1] +b2x [n-2]………………..+ bn x[n-N]
N is the filter order an Nth-order filter has (N + 1) terms on the right-hand side; these are
commonly referred to as taps.
This equation can also be expressed as a convolution of the coefficient sequence bi with the
input signal
That is, the filter output is a weighted sum of the current and a finite number of previous values
of the input.
1.3. Block Diagram of FIR filter:
Fig1.1:Block diagram of FIR filter
CHAPTER 2
LITERATURE SURVEY
2.1 INTRODUCTION:
The signal is the one which carries information from one source to the destination. There
are different types of signals. Filter plays essential role in Digital Signal Processing (DSP). Filter
is a system that passes certain frequency components and rejects other frequency components.
Filters are designed for the specifications of the desired properties of the system. FPGA is a
prototype device which is used to implement simpler algorithms.
2.2. Signal:
In the field of communications, signal processing and in electrical engineering more
generally, a signal is any time-varying or spatial-varying quantity.
In the physical world, any quantity measurable through time or over space can be taken as a
signal. Within a complex society, any set of human information or machine data also be taken as
a signal. Such information or machine data must all be part systems existing in the physical
world- either living or non-living.
Despite the complexity of such systems, their outputs and inputs can often be represented
as simple quantities measurable through time or across space. In the latter half of the 20th
century Electrical engineering itself separated into several disciplines, specializing in the design
and analysis of physical signals and systems, on one hand and in the functional behavior and
conceptual structure of the complex human and machine systems, on the other. These
engineering disciplines have led the way in the design, study, and implementation of systems that
take advantage of signals as simple measurable quantities in order to facilitate the transmission,
storage and manipulation of information.
2.2.1. Definition of the signal:
In information theory, a signal is a codified message, that is, the sequence of states in a
communication channel that encodes a message.
In the context of signal processing, arbitrary binary data streams are not considered as signals,
but only analog and digital signals that are representations of analog physical quantities.
In a communication system, a transmitter encodes a message into a signal, which is carried to a
receiver by the communications channel. For example, the words "Mary had a little lamb" might
be the message spoken into a telephone. The telephone transmitter converts the sounds into an
electrical voltage signal. The signal is transmitted to the receiving telephone by wires; and at the
receiver it is reconverted into sounds.
In telephone networks, signaling, for example common channel signaling, refers to phone
number and other digital control information rather than the actual voice signal.
Signals can be categorized in various ways. The most common distinction is between discrete
and continuous spaces that the functions are defined over, for example discrete and continuous
time domains. Discrete-time signals are often referred to as time series in other fields.
Continuous-time signals are often referred to as continuous signals even when the signal
functions are not continuous; an example is a square-wave signal.
A second important distinction is between discrete-valued and continuous-valued. Digital signals
are sometimes defined as discrete-valued sequences of quantified values that may or may
2.2.2. Types of Signals:
2.2.2.1. Discrete-time and continuous time signal:
If for a signal, the quantities are defined only on a discrete set of times, we call it a discrete-time
signal. In other words, a discrete-time real (or complex) signal can be seen as a function from the
set of integers to the set of real (or complex) numbers. Discrete signals have frequency domain
analysis. A discrete signal usually uses Z- Transform to analyze its frequency response, where
discrete signals are denoted by u (k) and k= -1, 0, 1, 2, 3…..
A continuous-time real (or complex) signal is any real-valued (or complexvalued) function
which is defined for all time t in an interval, most commonly an infinite interval. Continuous
signals have continuous frequency spectrum. It uses Fourier Transform (FT) to obtain its
frequency response, where continuous signals are denoted by u (t), t is continuous.
2.2.2.2. Analog and Digital signal:
There are mainly two types of signals encountered in practice, analog and digital. In
short, the difference between them is that digital signals are discrete and quantized, as defined
below, while analog signals possess neither property.
DISCRETIZATION:
One of the fundamental distinctions between different types of signals is between
continuous and discrete time. In the mathematical abstraction, the domain of a continuous-time
(CT) signal is the set of real numbers (or some interval thereof), whereas the domain of a
discrete-time (DT) signal is the set of integers (or some interval). What these integers represent
depends on the nature of the signal.
DT signals often arise via sampling of CT signals. An audio signal, for example consists
of a continually fluctuating voltage on a line that can be digitized by an ADC circuit, wherein the
circuit will read the voltage level on the line, say, every 50 μs. The resulting stream of numbers
is stored as digital data on a discrete-time signal. Computers and other digital devices are
restricted to discrete time.
QUANTIZATION:
If a signal is to be represented as a sequence of numbers, it is impossible to maintain
arbitrarily high precision - each number in the sequence must have a finite number of digits. As a
result, the values of such a signal are restricted to belong to a finite set; in other words, it is
quantized.
2.3 Filters in signal processing:
In signal processing, a filter is a device or process that removes from a signal some
unwanted or component or feature. In general, it takes an input that is a function of time and
produces an output that is a function of time (usually delayed from the input).
Filtering is a class of signal processing, the defining feature of filters being the complete
or partial suppression of some aspect of the signal. Most often, this means removing some
frequencies and not others in order to suppress interfering signals and reduce background noise.
However, filters do not exclusively act in the frequency domain; especially in the field of image
processing many other targets for filtering exist.
There are many different bases of classifying filters and these overlap in many different
ways, there is no simple hierarchical classification. Filters may be:
analog or digital
discrete-time (sampled) or continuous-time
linear or non-linear
passive or active type of continuous-time filter
Infinite impulse response (IIR) or finite impulse response (FIR)
type of discrete-time or digital filter.
2.3.1. Analog Filter:
Analog filters are a basic building block of signal processing much used in electronics.
Amongst their many applications is the separation of an audio signal before application
to bass, mid-range and tweeter loudspeakers; the combining and later separation of multiple
telephone conversations onto a single channel; the selection of a chosen radio station in a radio
receiver and rejection of others.
Passive linear electronic analogue filters are those filters which can be described with
linear differential equations (linear); they are composed of capacitors, inductors and, sometimes,
resistors (passive) and are designed to operate on continuously varying (analogue) signals. There
are many linear filters which are not analogue in implementation (digital filter), and there are
many electronic filters which may not have a passive topology – both of which may have the
same transfer function of the filters described in this article. Analogue filters are most often used
in wave filtering applications, that is, where it is required to pass particular frequency
components and to reject others from analog (continuous-time) signals.
2.3.2. Digital Filters:
In electronics, computer science and mathematics, a digital filter is a system that
performs mathematical operations on a sampled, discrete-time signal to reduce or enhance
certain aspects of that signal. This is in contrast to the other major type of electronic filter, the
analog filter, which is an electronic circuit operating on continuous-time analog signals. An
analog signal may be processed by a digital filter by first being digitized and represented as a
sequence of numbers, then manipulated mathematically, and then reconstructed as a new analog
signal. In an analog filter, the input signal is "directly" manipulated by the circuit.
A digital filter system usually consists of an analog-to-digital converter (to sample the
input signal), a microprocessor (often a specialized digital signal processor), and a digital-
toanalog converter. Software running on the microprocessor can implement the digital filter by
performing the necessary mathematical operations on the numbers received from the ADC. In
some high performance applications, an FPGA or ASIC is used instead of a general purpose
microprocessor.
Digital filters may be more expensive than an equivalent analog filter due to their
increased complexity, but they make practical many designs that are impractical or impossible as
analog filters. Since digital filters use a sampling process and discrete-time processing, they
experience latency (the difference in time between the input and the response), which is almost
irrelevant in analog filters.
Digital filters are commonplace and an essential element of everyday electronics such as
radios, cell phones, and stereo receivers.
2.3.3. Passive filter:
Passive implementations of linear filters are based on combinations of resistors (R),
inductors (L) and capacitors (C). These types are collectively known as passive filters, because
they do not depend upon an external power supply and/or they do not contain active components
such as transistors.
Inductors block high-frequency signals and conduct low-frequency signals, while
capacitors do the reverse. A filter in which the signal passes through an inductor, or in which a
capacitor provides a path to ground, presents less attenuation to low-frequency signals than high-
frequency signals and is a low-pass filter. If the signal passes through a capacitor, or has a path to
ground through an inductor, then the filter presents less attenuation to high frequency signals
than low-frequency signals and is a high-pass filter. Resistors on their own have no frequency-
selective properties, but are added to inductors and capacitors to determine the time-constants of
the circuit, and therefore the frequencies to which it responds.
The inductors and capacitors are the reactive elements of the filter. The number of
elements determines the order of the filter. In this context, an LC tuned circuit being used in a
band-pass or band-stop filter is considered a single element even though it consists of two
components.
At high frequencies (above about 100 megahertz), sometimes the inductors consist of
single loops or strips of sheet metal, and the capacitors consist of adjacent strips of metal. These
inductive or capacitive pieces of metal are called stubs.
2.3.4. Active Filter:
Active filters are implemented using a combination of passive and active (amplifying)
components, and require an outside power source. Operational amplifiers are frequently used in
active filter designs. These can have high Q, and can achieve resonance without the use of
inductors. However, their upper frequency limit is limited by the bandwidth of the amplifiers
used.
2.3.5. Linear- Continuous time filter:
Linear continuous-time circuit is perhaps the most common meaning for filter in the
signal processing world, and simply "filter" is often taken to be synonymous. These are filters
that are designed to remove certain frequencies and allow others to pass. Such a filter is, of
necessity, a linear filter. Any non-linearity will result in the output signal containing components
of frequency which were not present in the input signal.
The modern design methodology for linear continuous-time filters is called network
synthesis. Some important filter families designed in this way are;
Chebyshev filter , has the best approximation to the ideal response of any filter for a
specified order and ripple.
Butterworth filter , has a maximally flat frequency response.
Bessel filter , has a maximally flat phase delay.
Elliptic filter , has the steepest cutoff of any filter for a specified order and ripple.
The difference between these filter families is that they all use a different polynomial
function to approximate to the ideal filter response. This results in each having a different
transfer function.
Another methodology which is dead but can still is seen walking around now and again is the
image parameter method. Filters designed by this methodology are archaically called "wave
filters". Some important filters designed by this method are;
Constant k filter , the original and simplest form of wave filter.
M-derived filter , a modification of the constant k with improved cutoff steepness and
impedance matching.
2.3.6. Terminology to classify linear filter:
Some terms used to describe and classify linear filters:
The frequency response can be classified into a number of different band forms describing
which frequencies the filter passes (the pass band) and which it rejects (the stop band);
Low-pass filter – low frequencies are passed, high frequencies are attenuated.
High-pass filter – high frequencies are passed, Low frequencies are attenuated.
Band-pass filters – only frequencies in a frequency band are passed.
Band-stop filter or band-reject filters – only frequencies in a frequency band are
attenuated.
Notch filter – rejects just one specific frequency - an extreme band-stop filter.
Comb filter – has multiple regularly spaced narrow pass bands giving the band form the
appearance of a comb.
All-pass filter – all frequencies are passed, but the phase of the output is modified.
Cutoff frequency is the frequency beyond which the filter will not pass signals. It is
usually measured at a specific attenuation such as 3dB.
Roll-off is the rate at which attenuation increases beyond the cut-off frequency.
Transition band , the (usually narrow) band of frequencies between a pass band and stop
band.
Ripple is the variation of the filters insertion loss in the pass band.
The order of a filter is the degree of the approximating polynomial and in passive filters
corresponds to the number of elements required to build it. Increasing order increases
roll-off and brings the filter closer to the ideal response.
2.3.7. FIR Filter:
A Finite Impulse Response (FIR) filter is a type of a digital filter. The impulse response,
the filter's response to a Kronecker delta input, is finite because it settles to zero in a finite
number of sample intervals. This is in contrast to Infinite Impulse Response (IIR) filters, which
have internal feedback and may continue to respond indefinitely. The impulse response of an
Nth-order FIR filter lasts for N+ 1 sample, and then dies to zero.
The difference equation that defines the output of an FIR filter in terms of its input is:
Y[n] = b0x[n] +b1x [n-1] +b2x [n-2]………………..+ bn x [n-N]
where:
x[n] is the input signal,
y[n] is the output signal,
bi are the filter coefficients, and
N is the filter order – an Nth-order filter has (N + 1) terms on the right-hand side;
these are commonly referred to as taps.
This equation can also be expressed as a convolution of the coefficient sequence bi with the input
signal:
That is, the filter output is a weighted sum of the current and a finite number of previous
values of the input.
2.3.8. IIR filters:
Infinite Impulse Response (IIR) is a property of signal processing systems. Systems with
this property are known as IIR systems or, when dealing with filter systems, as IIR filters. IIR
systems have an impulse response function that is non-zero over an infinite length of time. This
is in contrast to FIR, which have fixed-duration impulse responses. The simplest analog IIR filter
is an RC filter made up of a single resistor (R) feeding into a node shared with a single capacitor
(C). This filter has an exponential impulse response characterized by an RC time constant.
IIR filters may be implemented as either analog or digital filters. In digital IIR filters, the
output feedback is immediately apparent in the equations defining the output. Note that unlike
with FIR filters, in designing IIR filters it is necessary to carefully consider "time zero" case in
which the outputs of the filter have not yet been clearly defined.
Design of digital IIR filters is heavily dependent on that of their analog counterparts
because there are plenty of resources, works and straightforward design methods concerning
analog feedback filter design while there are hardly any for digital IIR filters. As a result,
usually, when a digital IIR filter is going to be implemented, an analog filter (e.g. Chebyshev
filter, Butterworth filter, Elliptic filter) is first designed and then is converted to a digital filter by
applying discretization techniques such as Bilinear transform or Impulse invariance.
Digitals filters are often described and implemented in terms of the difference equation that
defines how the output signal is related to the input signal:
where:
P is the feed forward filter order
bi are the feed forward filter coefficients
Q is the feedback filter order
ai are the feedback filter coefficients
X[n] is the input signal
Y[n]Is the output signal.
A more condensed form of the difference equation is:
CHAPTER 3
DESIGN METHODOLOGY
3.1. INTRODUCTION:
A Finite Impulse Response (FIR) filter is a type of a digital filter. The direct
implementation of the FIR filter requires more number of resources, to reduce the number of
resources Distributed Arithmetic came into existence which replaces multiplications by additions
and siftings. To reduce ROM size the proposed DA algorithm came into existence which uses
multiplexers. The LUT-less algorithm uses multiplexers to remove the usage of ROM memory.
3.2. DIRECT IMPLEMENTATION OF FIR FILTER:
Generally FIR filter is designed using Multiply and Accumulate (MAC) principle where
the filter coefficients undergo multiplication and additions. The MAC principle is common in
Digital Signal Processing algorithms.
The following expression explains the MAC operation.
Note a few points:
h=[h0,h1, h2,…, hK-1] is a matrix of “constant” values
h=[h0,h1, h2,…, hK-1] is a matrix of “constant” values
Each hk is of M-bits
Each hk is of N-bits
y should be able large enough to accommodate the result
A numerical example:
Fig 3.1. Block diagram of 1-tap filter using direct implementation.
Fig 3.2. Block diagram of 4-tap FIR filter using direct implementation.
In direct implementation we follow Multiply and Accumulate (MAC) operation. In this
type of operation we directly multiply the coefficient of the filter with the variable and add them
to get final result. If we consider 1-tap filter, filter coefficient h0 is directly multiplied with
variable x0 and result is assigned to the output. In 4-tap filter filter-coefficient are multiplied
with corresponding variables, the result of four multipliers are added and assigned to the result.
CHAPTER 4
INTRODUCTION TO VLSI
Very-large-scale integration (VLSI) is the process of creating integrated circuits by
combining thousands of transistor-based circuits into a single chip. VLSI began in the 1970s
when complex semiconductor and communication technologies were being developed. The
microprocessor is a VLSI device. The term is no longer as common as it once was, as chips have
increased in complexity into the hundreds of millions of transistors.
Overview
The first semiconductor chips held one transistor each. Subsequent advances added more
and more transistors, and, as a consequence, more individual functions or systems were
integrated over time. The first integrated circuits held only a few devices, perhaps as many as ten
diodes, transistors, resistors and capacitors, making it possible to fabricate one or more logic
gates on a single device. Now known retrospectively as "small-scale integration" (SSI),
improvements in technique led to devices with hundreds of logic gates, known as large-scale
integration (LSI), i.e. systems with at least a thousand logic gates. Current technology has moved
far past this mark and today's microprocessors have many millions of gates and hundreds of
millions of individual transistors.
At one time, there was an effort to name and calibrate various levels of large-scale
integration above VLSI. Terms like Ultra-large-scale Integration (ULSI) were used. But the huge
number of gates and transistors available on common devices has rendered such fine distinctions
moot. Terms suggesting greater than VLSI levels of integration are no longer in widespread use.
Even VLSI is now somewhat quaint, given the common assumption that all microprocessors are
VLSI or better.
As of early 2008, billion-transistor processors are commercially available, an
example of which is Intel's Montecito Itanium chip. This is expected to become more
commonplace as semiconductor fabrication moves from the current generation of 65 nm
processes to the next 45 nm generations (while experiencing new challenges such as increased
variation across process corners). Another notable example is NVIDIA’s 280 series GPU.
This microprocessor is unique in the fact that its 1.4 Billion transistor count,
capable of a teraflop of performance, is almost entirely dedicated to logic (Itanium's transistor
count is largely due to the 24MB L3 cache). Current designs, as opposed to the earliest devices,
use extensive design automation and automated logic synthesis to lay out the transistors,
enabling higher levels of complexity in the resulting logic functionality. Certain high-
performance logic blocks like the SRAM cell, however, are still designed by hand to ensure the
highest efficiency (sometimes by bending or breaking established design rules to obtain the last
bit of performance by trading stability).
What is VLSI?
VLSI stands for "Very Large Scale Integration". This is the field
which involves packing more and more logic devices into smaller and smaller areas.
VLSI
1. Simply we say Integrated circuit is many transistors on one chip.
2. Design/manufacturing of extremely small, complex circuitry using modified
semiconductor material
3. Integrated circuit (IC) may contain millions of transistors, each a few mm in size
4. Applications wide ranging: most electronic logic devices
History of Scale Integration
late 40s Transistor invented at Bell Labs
late 50s First IC (JK-FF by Jack Kilby at TI)
early 60s Small Scale Integration (SSI)
10s of transistors on a chip
late 60s Medium Scale Integration (MSI)
100s of transistors on a chip
early 70s Large Scale Integration (LSI)
1000s of transistor on a chip
early 80s VLSI 10,000s of transistors on a
chip (later 100,000s & now 1,000,000s)
Ultra LSI is sometimes used for 1,000,000s
SSI - Small-Scale Integration (0-102)
MSI - Medium-Scale Integration (102-103)
LSI - Large-Scale Integration (103-105)
VLSI - Very Large-Scale Integration (105-107)
ULSI - Ultra Large-Scale Integration (>=107)
Advantages of ICs over discrete components
While we will concentrate on integrated circuits , the properties of
integrated circuits-what we can and cannot efficiently put in an integrated circuit-largely
determine the architecture of the entire system. Integrated circuits improve system characteristics
in several critical ways. ICs have three key advantages over digital circuits built from discrete
components:
Size. Integrated circuits are much smaller-both transistors and wires are shrunk to
micrometer sizes, compared to the millimeter or centimeter scales of discrete
components. Small size leads to advantages in speed and power consumption,
since smaller components have smaller parasitic resistances, capacitances, and
inductances.
Speed. Signals can be switched between logic 0 and logic 1 much quicker within
a chip than they can between chips. Communication within a chip can occur
hundreds of times faster than communication between chips on a printed circuit
board. The high speed of circuits on-chip is due to their small size-smaller
components and wires have smaller parasitic capacitances to slow down the
signal.
Power consumption. Logic operations within a chip also take much less power.
Once again, lower power consumption is largely due to the small size of circuits
on the chip-smaller parasitic capacitances and resistances require less power to
drive them.
VLSI and systems
These advantages of integrated circuits translate into advantages at the system level:
Smaller physical size. Smallness is often an advantage in itself-consider
portable televisions or handheld cellular telephones.
Lower power consumption. Replacing a handful of standard parts with a
single chip reduces total power consumption. Reducing power consumption
has a ripple effect on the rest of the system: a smaller, cheaper power supply
can be used; since less power consumption means less heat, a fan may no
longer be necessary; a simpler cabinet with less shielding for electromagnetic
shielding may be feasible, too.
Reduced cost. Reducing the number of components, the power supply
requirements, cabinet costs, and so on, will inevitably reduce system cost. The
ripple effect of integration is such that the cost of a system built from custom
ICs can be less, even though the individual ICs cost more than the standard
parts they replace.
Understanding why integrated circuit technology has such profound influence on the design of
digital systems requires understanding both the technology of IC manufacturing and the
economics of ICs and digital systems.
Applications
Electronic system in cars.
Digital electronics control VCRs
Transaction processing system, ATM
Personal computers and Workstations
Medical electronic systems.
Etc….
Applications of VLSI
Electronic systems now perform a wide variety of tasks in daily life. Electronic
systems in some cases have replaced mechanisms that operated mechanically, hydraulically, or
by other means; electronics are usually smaller, more flexible, and easier to service. In other
cases electronic systems have created totally new applications. Electronic systems perform a
variety of tasks, some of them visible, some more hidden:
Personal entertainment systems such as portable MP3 players and DVD
players perform sophisticated algorithms with remarkably little energy.
Electronic systems in cars operate stereo systems and displays; they also
control fuel injection systems, adjust suspensions to varying terrain, and
perform the control functions required for anti-lock braking (ABS) systems.
Digital electronics compress and decompress video, even at high-definition
data rates, on-the-fly in consumer electronics.
Low-cost terminals for Web browsing still require sophisticated electronics,
despite their dedicated function.
Personal computers and workstations provide word-processing, financial
analysis, and games. Computers include both central processing units (CPUs)
and special-purpose hardware for disk access, faster screen display, etc.
Medical electronic systems measure bodily functions and perform complex
processing algorithms to warn about unusual conditions. The availability of
these complex systems, far from overwhelming consumers, only creates
demand for even more complex systems.
The growing sophistication of applications continually pushes the design and manufacturing of
integrated circuits and electronic systems to new levels of complexity. And perhaps the most
amazing characteristic of this collection of systems is its variety-as systems become more
complex, we build not a few general-purpose computers but an ever wider range of special-
purpose systems. Our ability to do so is a testament to our growing mastery of both integrated
circuit manufacturing and design, but the increasing demands of customers continue to test the
limits of design and manufacturing
ASIC
An Application-Specific Integrated Circuit (ASIC) is an integrated circuit
(IC) customized for a particular use, rather than intended for general-purpose use. For example, a
chip designed solely to run a cell phone is an ASIC. Intermediate between ASICs and industry
standard integrated circuits, like the 7400 or the 4000 series, are application specific standard
products (ASSPs).
As feature sizes have shrunk and design tools improved over the years, the
maximum complexity (and hence functionality) possible in an ASIC has grown from 5,000 gates
to over 100 million. Modern ASICs often include entire 32-bit processors, memory blocks
including ROM, RAM, EEPROM, Flash and other large building blocks. Such an ASIC is often
termed a SoC (system-on-a-chip). Designers of digital ASICs use a hardware description
language (HDL), such as Verilog or VHDL, to describe the functionality of ASICs.
Field-programmable gate arrays (FPGA) are the modern-day technology for building a
breadboard or prototype from standard parts; programmable logic blocks and programmable
interconnects allow the same FPGA to be used in many different applications. For smaller
designs and/or lower production volumes, FPGAs may be more cost effective than an ASIC
design even in production.
1. An application-specific integrated circuit (ASIC) is an integrated circuit (IC)
customized for a particular use, rather than intended for general-purpose use.
2. A Structured ASIC falls between an FPGA and a Standard Cell-based ASIC
3. Structured ASIC’s are used mainly for mid-volume level designs
4. The design task for structured ASIC’s is to map the circuit into a fixed arrangement
of known cells
INTRODUCTION TO XILINX
Migrating Projects from Previous ISE Software Releases
When you open a project file from a previous release, the ISE® software prompts you to migrate
your project. If you click Backup and Migrate or Migrate Only, the software automatically
converts your project file to the current release. If you click Cancel, the software does not
convert your project and, instead, opens Project Navigator with no project loaded.
Note After you convert your project, you cannot open it in previous versions of the ISE
software, such as the ISE 11 software. However, you can optionally create a backup of the
original project as part of project migration, as described below.
To Migrate a Project
1. In the ISE 12 Project Navigator, select File > Open Project.
2. In the Open Project dialog box, select the .xise file to migrate.
Note You may need to change the extension in the Files of type field to display .npl
(ISE 5 and ISE 6 software) or .ise (ISE 7 through ISE 10 software) project files.
3. In the dialog box that appears, select Backup and Migrate or Migrate Only.
4. The ISE software automatically converts your project to an ISE 12 project.
Note If you chose to Backup and Migrate, a backup of the original project is created at
project_name_ise12migration.zip.
5. Implement the design using the new version of the software.
Note Implementation status is not maintained after migration.
Properties
For information on properties that have changed in the ISE 12 software, see ISE 11 to ISE 12
Properties Conversion.
IP Modules
If your design includes IP modules that were created using CORE Generator™ software or
Xilinx® Platform Studio (XPS) and you need to modify these modules, you may be required to
update the core. However, if the core netlist is present and you do not need to modify the core,
updates are not required and the existing netlist is used during implementation.
Obsolete Source File Types
The ISE 12 software supports all of the source types that were supported in the ISE 11
software.
If you are working with projects from previous releases, state diagram source files (.dia), ABEL
source files (.abl), and test bench waveform source files (.tbw) are no longer supported. For state
diagram and ABEL source files, the software finds an associated HDL file and adds it to the
project, if possible. For test bench waveform files, the software automatically converts the TBW
file to an HDL test bench and adds it to the project. To convert a TBW file after project
migration, see Converting a TBW File to an HDL Test Bench.
Migrating Projects from Previous ISE Software Releases
When you open a project file from a previous release, the ISE® software prompts you to migrate
your project. If you click Backup and Migrate or Migrate Only, the software automatically
converts your project file to the current release. If you click Cancel, the software does not
convert your project and, instead, opens Project Navigator with no project loaded.
Note After you convert your project, you cannot open it in previous versions of the ISE
software, such as the ISE 11 software. However, you can optionally create a backup of the
original project as part of project migration, as described below.
To Migrate a Project
1. In the ISE 12 Project Navigator, select File > Open Project.
2. In the Open Project dialog box, select the .xise file to migrate.
Note You may need to change the extension in the Files of type field to display .npl
(ISE 5 and ISE 6 software) or .ise (ISE 7 through ISE 10 software) project files.
3. In the dialog box that appears, select Backup and Migrate or Migrate Only.
4. The ISE software automatically converts your project to an ISE 12 project.
Note If you chose to Backup and Migrate, a backup of the original project is created at
project_name_ise12migration.zip.
5. Implement the design using the new version of the software.
Note Implementation status is not maintained after migration.
Properties
For information on properties that have changed in the ISE 12 software, see ISE 11 to ISE 12
Properties Conversion.
IP Modules
If your design includes IP modules that were created using CORE Generator™ software or
Xilinx® Platform Studio (XPS) and you need to modify these modules, you may be required to
update the core. However, if the core netlist is present and you do not need to modify the core,
updates are not required and the existing netlist is used during implementation.
Obsolete Source File Types
The ISE 12 software supports all of the source types that were supported in the ISE 11
software.
If you are working with projects from previous releases, state diagram source files (.dia), ABEL
source files (.abl), and test bench waveform source files (.tbw) are no longer supported. For state
diagram and ABEL source files, the software finds an associated HDL file and adds it to the
project, if possible. For test bench waveform files, the software automatically converts the TBW
file to an HDL test bench and adds it to the project. To convert a TBW file after project
migration, see Converting a TBW File to an HDL Test Bench.
Using ISE Example Projects
To help familiarize you with the ISE® software and with FPGA and CPLD designs, a set of
example designs is provided with Project Navigator. The examples show different design
techniques and source types, such as VHDL, Verilog, schematic, or EDIF, and include different
constraints and IP.
To Open an Example
1. Select File > Open Example.
2. In the Open Example dialog box, select the Sample Project Name.
Note 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. In the Destination Directory field, enter a directory name or browse to the
directory.
4. Click OK.
The example project is extracted to the directory you specified in the Destination Directory
field and is automatically opened in Project Navigator. You can then run processes on the
example project and save any changes.
Note If you modified an example project and want to overwrite it with the original example
project, select File > Open Example, select the Sample Project Name, and specify the same
Destination Directory you originally used. In the dialog box that appears, select Overwrite the
existing project and click OK.
Creating a Project
Project Navigator allows you to manage your FPGA and CPLD designs using an ISE® project,
which contains all the source files and settings specific to your design. First, you must create a
project and then, add source files, and set process properties. After you create a project, you can
run processes to implement, constrain, and analyze your design. Project Navigator provides a
wizard to help you create a project as follows.
Note If you prefer, you can create a project using the New Project dialog box instead of the
New Project Wizard. To use the New Project dialog box, deselect the Use New Project wizard
option in the ISE General page of the Preferences dialog box.
To Create a Project
1. Select File > New Project to launch the New Project Wizard.
2. In the Create New Project page, set the name, location, and project type, and
click Next.
3. For EDIF or NGC/NGO projects only: In the Import EDIF/NGC Project page,
select the input and constraint file for the project, and click Next.
4. In the Project Settings page, set the device and project properties, and click Next.
5. In the Project Summary page, review the information, and click Finish to create
the project.
Project Navigator creates the project file (project_name.xise) in the directory you specified.
After you add source files to the project, the files appear in the Hierarchy pane of the Design
panel. Project Navigator manages your project based on the design 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.
Note For information on changing design properties, see Changing Design Properties.
You can now perform any of the following:
Create new source files for your project.
Add existing source files to your project.
Run processes on your source files.
Modify process properties.
Creating a Copy of a Project
You can create a copy of a project to experiment with different source options and
implementations. Depending on your needs, the design source files for the copied project and
their location can vary as follows:
Design source files are left in their existing location, and the copied project
points to these files.
Design source files, including generated files, are copied and placed in a
specified directory.
Design source files, excluding generated files, are copied and placed in a
specified directory.
Copied projects are the same as other projects in both form and function. For example, you can
do the following with copied projects:
Open the copied project using the File > Open Project menu command.
View, modify, and implement the copied project.
Use the Project Browser to view key summary data for the copied project and
then, open the copied project for further analysis and implementation, as described in
Using the Project Browser.
Note Alternatively, you can create an archive of your project, which puts all of the project
contents into a ZIP file. Archived projects must be unzipped before being opened in Project
Navigator. For information on archiving, see Creating a Project Archive.
To Create a Copy of a Project
1. Select File > Copy Project.
2. In the Copy Project dialog box, enter the Name for the copy.
Note The name for the copy can be the same as the name for the project, as long as you
specify a different location.
3. Enter a directory Location to store the copied project.
4. Optionally, enter a Working directory.
By default, this is blank, and the working directory is the same as the project directory.
However, you can specify a working directory if you want to keep your ISE® project
file (.xise extension) separate from your working area.
5. Optionally, enter a Description for the copy.
The description can be useful in identifying key traits of the project for reference later.
6. In the Source options area, do the following:
o Select one of the following options:
o Keep sources in their current locations - to leave the design source files
in their existing location.
If you select this option, the copied project points to the files in their
existing location. If you edit the files in the copied project, the changes
also appear in the original project, because the source files are shared
between the two projects.
o Copy sources to the new location - to make a copy of all the design
source files and place them in the specified Location directory.
If you select this option, the copied project points to the files in the specified
directory. If you edit the files in the copied project, the changes do not appear in
the original project, because the source files are not shared between the two
projects.
o Optionally, select Copy files from Macro Search Path directories to copy files
from the directories you specify in the Macro Search Path property in the Translate Properties
dialog box. All files from the specified directories are copied, not just the files used by the
design.
Note If you added a netlist source file directly to the project as described in
Working with Netlist-Based IP, the file is automatically copied as part of Copy
Project because it is a project source file. Adding netlist source files to the project
is the preferred method for incorporating netlist modules into your design,
because the files are managed automatically by Project Navigator.
o Optionally, click Copy Additional Files to copy files that were not included in
the original project. In the Copy Additional Files dialog box, use the Add Files and Remove
Files buttons to update the list of additional files to copy. Additional files are copied to the
copied project location after all other files are copied.
7. To exclude generated files from the copy, such as implementation results and
reports, select Exclude generated files from the copy.
When you select this option, the copied project opens in a state in which processes have
not yet been run.
8. To automatically open the copy after creating it, select Open the copied project.
Note By default, this option is disabled. If you leave this option disabled, the original
project remains open after the copy is made.
Click OK.
Creating a Project Archive
A project archive is a single, compressed ZIP file with a .zip extension. By default, it contains all
project files, source files, and generated files, including the following:
User-added sources and associated files
Remote sources
Verilog `include files
Files in the macro search path
Generated files
Non-project files
To Archive a Project
1. Select Project > Archive.
2. In the Project Archive dialog box, specify a file name and directory for the ZIP
file.
3. Optionally, select Exclude generated files from the archive to exclude
generated files and non-project files from the archive.
4. Click OK.
A ZIP file is created in the specified directory. To open the archived project, you must first
unzip the ZIP file, and then, you can open the project.
Note Sources that reside outside of the project directory are copied into a remote_sources
subdirectory in the project archive. When the archive is unzipped and opened, you must either
specify the location of these files in the remote_sources subdirectory for the unzipped project, or
manually copy the sources into their original location.
INTRODUCTION TO VERILOG HDL
What is HDL
A typical Hardware Description Language (HDL) supports a mixed-level description in
which gate and netlist constructs are used with functional descriptions. This mixed-level
capability enables you to describe system architectures at a high level of abstraction, then
incrementally refine a design’s detailed gate-level implementation.
HDL descriptions offer the following advantages:
• We can verify design functionality early in the design process. A design written as an HDL
description can be simulated immediately. Design simulation at this high level — at the
gate-level before implementation — allows you to evaluate architectural and design decisions.
• An HDL description is more easily read and understood than a netlist or schematic description.
HDL descriptions provide technology-independent documentation of a design and its
functionality. Because the initial HDL design description is technology independent, you
can use it again to generate the design in a different technology, without having to
translate it from the original technology.
• Large designs are easier to handle with HDL tools than schematic tools.
Verilog Overview :
Introduction
Verilog is a HARDWARE DESCRIPTION LANGUAGE (HDL). A hardware description
Language is a language used to describe a digital system, for example, a microprocessor or
a memory or a simple flip-flop. This just means that, by using a HDL one can describe any
hardware (digital ) at any level.
Verilog provides both behavioral and structural language structures. These structures allow
expressing design objects at high and low levels of abstraction. Designing hardware with a
language such as Verilog allows using software concepts such as parallel processing and
object-oriented programming. Verilog has a syntax similar to C and Pascal.
Design Styles
Verilog like any other hardware description language permits the designers to create a design in
either Bottom-up or Top-down methodology.
Bottom-Up Design
The traditional method of electronic design is bottom-up. Each design is performed at the
gate-level using the standard gates. With increasing complexity of new designs this
approach is nearly impossible to maintain. New systems consist of ASIC or
microprocessors with a complexity of thousands of transistors. These traditional bottom-up
designs have to give way to new structural, hierarchical design methods. Without these new
design practices it would be impossible to handle the new complexity.
Top-Down Design
The desired design-style of all designers is the top-down design. A real top-down design
allows early testing, easy change of different technologies, a structured system design and
offers many other advantages. But it is very difficult to follow a pure top-down design. Due
to this fact most designs are mix of both the methods, implementing some key elements of
both design styles.
Complex circuits are commonly designed using the top down methodology. Various
specification levels are required at each stage of the design process.
Abstraction Levels of Verilog
Verilog supports a design at many different levels of abstraction. Three of them are very
important:
Behavioral level
Register-Transfer Level
Gate Level
Behavioral level
This level describes a system by concurrent algorithms (Behavioral). Each algorithm itself is
sequential, that means it consists of a set of instructions that are executed one after the other.
Functions, Tasks and Always blocks are the main elements. There is no regard to the structural
realization of the design.
Register-Transfer Level
Designs using the Register-Transfer Level specify the characteristics of a circuit by operations
and the transfer of data between the registers. An explicit clock is used. RTL design contains
exact timing possibility; operations are scheduled to occur at certain times. Modern definition
of a RTL code is "Any code that is synthesizable is called RTL code".
Gate Level
Within the logic level the characteristics of a system are described by logical links and
their timing properties. All signals are discrete signals. They can only have definite logical
values (`0', `1', `X', `Z`). The usable operations are predefined logic primitives (AND, OR,
NOT etc gates). Using gate level modeling might not be a good idea for any level of logic
design. Gate level code is generated by tools like synthesis tools and this Netlist is used for gate
level simulation and for backend.
vlsi design flow
Introduction
Design is the most significant human endeavor: It is the channel through which creativity is
realized. Design determines our every activity as well as the results of those activities; thus it
includes planning, problem solving, and producing. Typically, the term "design" is applied
to the planning and production of artifacts such as jewelry, houses, cars, and cities. Design is
also found in problem-solving tasks such as mathematical proofs and games. Finally,
design is found in pure planning activities such as making a law or throwing a party.
More specific to the matter at hand is the design of manufacturable artifacts. This
activity uses all facets of design because, in addition to the specification of a producible
object, it requires the planning of that object's manufacture, and much problem solving
along the way. Design of objects usually begins with a rough sketch that is refined by
adding precise dimensions. The final plan must not only specify exact sizes, but also include a
scheme for ordering the steps of production. Additional considerations depend on the
production environment; for example, whether one or ten million will be made, and how
precisely the manufacturing environment can be controlled.
A semiconductor process technology is a method by which working circuits can be
manufactured from designed specifications. There are many such technologies, each of
which creates a different environment or style of design.
SOURCE CODE
RESULTS