Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
CHAPTER-1
INTRODUCTION
Finite Impulse response (FIR) digital filters are widely used as a basic tool in many
digital signal processing (DSP) and communication applications. The complexity of a FIR filter
is largely dominated by the multiplication of input samples with filter coefficients. But
fortunately, the filter coefficients are constants for a given filter, so that multiplications are
implemented by a network of adders, subtractors, and hardwired shifts, where the number of
adders and subtractors are minimized by a constant multiplication scheme. In case of a
transposed direct-form FIR filter, the recent most input sample at any given clock period is
multiplied with all the filter coefficients. A set of intermediate results are generated in this case,
and shared across all the multiplications in order to minimize the total number of
additions/subtractions using multiple constant multiplication (MCM) techniques. Each such
intermediate result in an MCM process corresponds to one of the common sub-expressions (CS)
of the set of constants to be multiplied.
A great deal of research has been done to develop effective algorithms to identify the
optimal set of non-redundant sub expressions to achieve the minimum number of logic operators
and the minimum logic depth of the MCM. Irrespective of differences in methodology and the
level of optimality, in all these works, after the common sub expression terms are determined
and the ADD/SUB network of non-redundant sub expressions (or terms) is formed, the product
value corresponding to each of the coefficients is computed by an adder-tree that sums up its
relevant terms. Two adder-trees are formed, for computing the product of a pair of coefficients
using shifted versions of unique CS terms ‘1’, ‘10-1’ and ‘1001’ from the term-networks or sub
expression-networks.
VITS Page 1
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
few times more, compared to that in the term networks. While the main research focus of MCM
is on more effective common sub expression sharing techniques, optimizations on adder-trees are
largely omitted. Irrespective of which common sub expression identification algorithm is used,
the formation of an adder-tree is commonly handled by the same tree-height minimization
algorithm that guarantees the height of generated adder-tree is the minimum at the operator level.
In this paper, we present a method of derivation of equivalent adder-trees to minimize the adder
tree resource. We have developed the cost model of the shift ADD/SUB network by bit-level
analysis, which could be reduced by suitable scheduling of operations on the adder-tree. We find
that significant area and power reduction (up to 15% and 11.6% respectively with an average of
8.46% and 5.96%) can be achieved on top of already optimized MCM blocks.
FIR filters are digital filters with finite impulse response. They are also known as non-
recursive digital filters as they do not have the feedback (a recursive part of a filter), even though
recursive algorithms can be used for FIR filter realization.
FIR filters can be designed using different methods, but most of them are based on ideal
filter approximation. The objective is not to achieve ideal characteristics, as it is impossible
anyway, but to achieve sufficiently good characteristics of a filter. The transfer function of FIR
filter approaches the ideal as the filter order increases, thus increasing the complexity and
amount of time needed for processing input samples of a signal being filtered.
This book describes the most popular method for FIR filter design that uses window
functions. The characteristics of the transfer function as well as its deviation from the ideal
frequency response depend on the filter order and window function in use.
Each filter category has both advantages and disadvantages. This is the reason why it is
so important to carefully choose category and type of a filter during design process. Obviously,
in such cases when it is necessary to have a linear phase characteristic, FIR filters are the only
VITS Page 2
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
option available. If the linear phase characteristic is not necessary, as is the case with processing
speech signals, FIR filters are not good solution at all.
1.2.1 Overview:
The principal semiconductor chips held one transistor each. Ensuing advances included
more transistors, and, as a result, more individual capacities or frameworks were incorporated
after some time. The initially incorporated circuits held just a couple of gadgets, maybe upwards
of ten diodes, transistors, resistors and capacitors, making it conceivable to manufacture one or
more rationale doors on a solitary gadget. Presently referred to reflectively as "little scale
joining" (SSI), upgrades in procedure prompted gadgets with several rationale entryways, known
as huge scale incorporation (LSI), i.e. frameworks with no less than a thousand rationale doors.
Current technology has moved far past this imprint and today's chip have numerous a large
number of entryways and countless individual transistors.
At one time, there was a push to name and adjust different levels of huge scale joining
above VLSI. Terms like Ultra-substantial scale Integration (ULSI) were utilized. In any case, the
gigantic number of entryways and transistors accessible on regular gadgets has rendered such
fine refinements debatable.
Terms recommending more prominent than VLSI levels of combination are no more in
boundless use. Indeed, even VLSI is presently to some degree interesting, given the regular
suspicion that all chip are VLSI or better.
following 45 nm eras (while encountering new difficulties, for example, expanded variety
crosswise over procedure corners). Another outstanding case is NVIDIA's 280 arrangement
GPU.
This microchip is one of a kind in the way that its 1.4 Billion transistor check, equipped
for a teraflop of execution, is totally devoted to rationale (Itanium's transistor tally is to a great
extent because of the 24MB L3 store). Current plans, rather than the most punctual gadgets, use
broad outline mechanization and computerized rationale combination to lay out the transistors,
empowering more elevated amounts of unpredictability in the subsequent rationale usefulness.
Certain elite rationale pieces like the SRAM cell, on the other hand, are still composed by hand
to guarantee the most noteworthy proficiency (some of the time by bowing or breaking set up
outline standards to acquire the last piece of execution by exchanging security).
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
Integrated circuit (IC) may contain millions of transistors, each a few mm in size
VITS Page 4
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
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.
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….
VITS Page 6
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
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.
1.2.7 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
VITS Page 7
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
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.
Structured ASIC’s are used mainly for mid-volume level design. The design task for
structured ASIC’s is to map the circuit into a fixed arrangement of known cells.
VITS Page 8
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
CHAPTER 2
LITERATURE REVIEW
D. R. Bull and D. H. Horrocks: The authors outline a design methodology for the
realization of digital filtering structures with significantly reduced numbers of elementary
arithmetic operations. The directed acyclic graphs which result from the design algorithm
completely describe the filter arithmetically and may be mapped directly onto hardware or
software realizations. Vertex rearrangement, retiming and edge elimination techniques are
presented which facilitate the generation of a logical graph with an efficient allocation of
pipeline registers. An example of the technique is given for a bit-serial realization employing a
bit-level pipeline
A Boolean function : {0, 1}n→ {0, 1} can be denoted by a propositional formula. The
conjunctive normal form (CNF) is a representation of a propositional formula consisting of a
conjunction of propositional clauses where each clause is a disjunction of literals and a literal l j
is either a variable Xj or its complement ~Xj . Note that, if a literal of a clause assumes value 1,
then the clause is satisfied. If all literals of a clause assume the value 0, then the clause is
unsatisfied. The Satisfiability (SAT) problem is to find an assignment on n variables of the
Boolean formula in CNF that evaluates the formula to 1, or to prove that the formula is equal to
the constant 0.
The CNF formula of a combinational circuit is the conjunction of the CNF formulas of
each gate, where the CNF formula of each gate denotes the valid input–output assignments to the
gate. The derivation of CNF formulas of basic logic gates can be found. In this Boolean formula,
VITS Page 9
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
the first three clauses represent the CNF formula of a two-input AND gate, and the last three
clauses denote the CNF formula of a two input OR gate. Observe that the assignment x1 = x3 =
x4 = x5 = 0 and x2 = 1 makes the formula ϕ equal to 1, indicating a valid assignment. However,
the assignment x1= x3 = x4 = 0 and x2 = x5 = 1 makes the last clause of the formula equal to 0
and, consequently, the formula ϕ, indicating a conflict between the values of the inputs and
output of the OR gate.
A.G. Dempster and M.D. Macleod: The computational complexity of VLSI digital filters
using fixed point binary multiplier coefficients is normally dominated by the number of adders
used in the implementation of the multipliers. It has been shown that using multiplier blocks to
exploit redundancy across the coefficients results in significant reductions in complexity over
methods using canonic signed digit (CSD) representation, which in turn are less complex than
standard binary representation. Three new algorithms for the design of multiplier blocks are
described: an efficient modification to an existing algorithm, a new algorithm giving better
results, and a hybrid of these two which trades off performance against computation time.
Significant savings in filter implementation cost over existing techniques result in all three cases.
For a given word length, it was found that a threshold set size exists above which the multiplier
block is extremely likely to be optimal. In this region, design computation time is substantially
reduced.
VITS Page 10
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
CHAPTER 3
PROJECT DESCRIPTION
Given input terms and their earliest arrival time/delay, the objective of an adder-tree
scheduling algorithm is to define an assignment of binary addition and subtraction operations to
sum up the input terms such that the total delay to produce the final output is minimized.
The common practice of handling the summation of CS terms of each coefficient is to use
the tree-height minimization algorithm to produce a height optimum adder-tree. The tree-height
minimization algorithm iteratively collapses the pair with smallest delays using an ADD/SUB to
form a new term with delay, until a single term is reduced to. Fig. 2 gives an example of the
schedule for an adder-tree on the left with minimum delay.
Note that either a positive or negative sign is associated with each input term which
denotes whether the corresponding term should be added to or subtracted from the summation.
These signs also determine whether an addition operation or a subtraction operation should be
used when the algorithm collapses a pair of terms in the adder-tree based on the following rules.
(1) If two input edges are of the same sign, an ADD will be used; otherwise, it will be a SUB. (2)
The sign of the output edge is always the same as that of the “left” input edge (i.e., the minuend
edge in the subtraction case). Using these two rules, it is possible that the final term producing
the summation result may carry a negative sign, such that a negation is needed after the adder-
tree to correct the value. For an FIR filter, results from multiple adder-trees are accumulated by a
structural adder-register line. So the negation can be eliminated by replacing the structural adder
with a subtractor (see coefficient in Fig. 1 for an example).
Cost Model:
In order to quantify and minimize the hardware cost of the adder-tree, we model the cost
of ADD/SUB operations in this section based on the ripple carry implementation, which is most
area efficient and will be picked up by the hardware compiler whenever the timing allows.
VITS Page 11
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
Without loss of generality, for a single ADD/SUB operation, the pair of its input operands may
be of different bit-widths, and one of them is to be left shifted by certain bit positions. We
enumerate all the scenarios of shift-add/sub operations.
The cost calculation is done separately in three bit-segments. Starting from the least
significant bit (LSB), the 1st segment covers the bit positions up to but not including the first bit
of the shifted operand; the 3rd segment covers the bits corresponding to the sign extension bits of
the sign extended operand; the 2nd segment takes the rest of the bit positions.
Fig3.2. (a) An example adder-tree with delays and signs on each input term,
VITS Page 12
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
Fig3.3. Cost of ADD/SUB operation under various input scenarios. Notations: FA—Full Adder,
above line—invertor (INV). (a)(b) Cases for ADD. (c)(d)(e)(f) Cases for SUB.
Two cases of ADD operation are shown in Fig. 3(a) and (b). In both cases, the 2nd and
3rd segments are implemented by one Full Adder (FA) per bit, while the 1st segment cost
nothing than wiring.
Four cases of SUB operation are shown in Fig. 3.3(c)–(f). In the first two cases where the
shift is with the minuend, the 1st segment is implemented by FAs with invertors on the minuend
bits, except for a single special case at the LSB using direct wire connection1 to save a pair of
FA and invertor. The 1st segments for the last two cases are wires. The 2nd segment for all cases
is implemented in pairs of FAs and invertors. For the 3rd segment, when the sign extension bits
are from the subtrahend, inverters are not needed since these bits simply take the value of the
inverted sign of the subtrahend. This cost model is verified experimentally from synthesis results
of Synopsis Design Compiler for ASICs, and is applicable to cases where either or both of input
operands are unsigned signals.
VITS Page 13
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
Motivational Example:
The number of operators on an adder-tree is determined by the number of input terms the
coefficient uses from the term network. For a input adder-tree, operators are required. A
motivational example in Fig. 3.4 shows the key differences between a greedily scheduled adder-
tree based on the height minimization algorithm and the resource optimized adder-tree of the
same height. First, the bit widths2 of intermediate nodes are significantly smaller. For example,
while other adder-tree nodes are of similar bit widths, the one in the second layer is only of 7-bits
in the optimal adder-tree (Fig. 3.4(b)) compared to 14-bits of the non-optimal adder-tree. Note
that wider bit width signal may contribute further to higher hardware cost when input to the next
layer of operators. Second, subtractions with shift on the subtrahend also reduces operators’ cost.
For example, for base bit width of 8-bits, the operator performing “ ” on Fig. 3.4(a) costs 11 FAs
and 7 INVs according to the cost model, while the operator performing “ ” on Fig. 3.4(b) costs 8
FAs and 8 INVs. In total, the optimal adder-tree sums up to 30 FAs and 20 INVs, while the non-
optimal one is of 40 FAs and 7 INVs. Assuming the ratio of resource consumption of an FA to
that of an INV is around 8 to 1, nearly 18% resource is reduced by using the optimal adder-tree
in this example. Note that the adder-tree also determines the type of operators used for its
structural accumulation. An output edge carrying a “-” sign requires a SUB on the accumulation
VITS Page 14
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
line, which usually consumes more hardware than an ADD. For linear phase FIR filters where
coefficients are symmetric, each adder-tree corresponds to 2 structural operators.
The clock performance of the entire FIR filter is decided by the largest of the delays of all
coefficients. Assuming the delay of an ADD/SUB operator to be 1 unit, the delay of the constant
multiplication by a coefficient can be simply measured by the number of ADD/SUB steps on a
maximal path in the part of the network corresponding to the coefficient. We generally use logic
depth to describe the required ADD/SUB steps. For a coefficient whose logic depth is less than
the filter’s logic depth, incrementing (relaxing) its logic depth may reduce the resource
consumption.
Given an algorithm which computes the adder-tree of the minimum resource on a given
depth for a coefficient, if is less than the filter’s logic depth, one can always try increasing by 1
and rescheduling onto a depth adder-tree for possible reduction of resource without degrading
the filter’s clock performance.
Given a set of input terms and their earliest arrival time or delay, we try to form an adder-
tree of maximum depth to sum up the input terms and at the same time minimize the hardware
resource used. In order to model the above problem, we construct a complete binary tree of
depth. Each node on the tree is a position to hold a binary operator potential operand position to
accommodate an input term, Fig. 3.5 shows an example of the decision tree when . An input term
of delay is schedulable on all edge positions of layer and downwards. For each input term, we
create a set of binary variables is said to be scheduled on if is assigned 1. The adder-tree
scheduling problem is equivalent to finding an assignment of input terms to the edge positions on
VITS Page 15
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
the binary tree such that the resource of the adder-tree is minimized. Constraints are formulated
to ensure that the adder-tree summing up these input terms is correctly formed.
Fig3.6. Relationship of operator type and the output sign with the signs of input operands.
The area and power consumption of the filters’ MCM blocks (inclusive of structural
operators) are shown and compared in Table I against the conventional adder-tree scheduling
algorithm. The average area improvement is 8.46%, and power saving is 5.96%. With increasing
filter order, the reductions tend to be lower. This is because the ratio of small valued coefficients
is higher. These coefficients use small adder-trees that can hardly be improved. Among a total of
140 adder-trees optimized in the table, 19 are further improved by logic depth relaxation of 1
more step. The run time of solving the MIP problem for each coefficient is generally within a
few seconds. There are a small number of cases for a few adder-trees of depths 4 taking more
than 1 minute to solve. In these cases, due to the auxiliary variables introduced to linearize the
and functions in the MIP formulation, the total number of binary/integer variables may approach
a thousand.
VITS Page 16
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
VITS Page 17
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
CHAPTER 4
TOOLS XILINX
To Migrate a Project
4.2 Properties:
For information on properties that have changed in the ISE 12 software, see ISE 11 to
ISE 12 Properties Conversion.
VITS Page 18
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
4.3 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.
The ISE 12 programming backings the greater part of the source sorts that were upheld in
the ISE 11 programming.
On the off chance that you are working with undertakings from past discharges, state
graph source documents (.dia), ABEL source records (.abl), and test seat waveform source
documents (.tbw) are no more upheld. For state outline and ABEL source records, the product
discovers a related HDL document and adds it to the task, if conceivable. For test seat waveform
documents, the product consequently changes over the TBW record to a HDL test seat and adds
it to the venture. To change over a TBW record after task relocation, see Converting a TBW File
to a HDL Test Bench.
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
VITS Page 19
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
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.
Venture Navigator permits you to deal with your FPGA and CPLD plans utilizing an
ISE® venture, which contains all the source records and settings particular to your outline. To
begin with, you must make a task and after that, include source documents, and set procedure
properties. After you make an undertaking, you can run procedures to execute, compel, and
break down your configuration. Venture Navigator gives a wizard to offer you some assistance
with creating an undertaking as takes after.
Note If you incline toward, you can make an undertaking utilizing the New Project dialog box
rather than the New Project Wizard. To utilize the New Project dialog box, deselect the Use
New Project wizard alternative 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.
VITS Page 20
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
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 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.
VITS Page 21
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
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
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.
VITS Page 22
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
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.
Copy sources to the new location - to make a copy of all the design source files and
place them in the specified Location directory.
On the off chance that you select this choice, the replicated task focuses to the records in
the predefined registry. In the event that you alter the documents in the replicated venture, the
progressions don't show up in the first venture, in light of the fact that the source records are not
shared between the two undertakings.
Alternatively, select Copy documents from Macro Search Path indexes to duplicate
records from the registries you indicate in the Macro Search Path property in the Translate
Properties dialog box. All records from the predetermined registries are replicated, not only the
documents utilized by the configuration.
Note: If you included a net rundown source document specifically to the undertaking as
depicted in Working with Net rundown Based IP, the record is consequently replicated as a
component of Copy Project in light of the fact that it is a task source document. Adding net
rundown source documents to the venture is the favored system for consolidating net rundown
modules into your outline, in light of the fact that the records are overseen naturally by Project
Navigator.
Alternatively, snap Copy Additional Files to duplicate records that were excluded in the
first venture. In the Copy Additional Files dialog box, utilize the Add Files and Remove Files
catches to upgrade the rundown of extra documents to duplicate. Extra documents are replicated
to the duplicated venture area after every single other record are copied.To reject produced
documents from the duplicate, for example, execution results and reports, select
4.10 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.
7. 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.
VITS Page 23
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
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.
VITS Page 24
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
CHAPTER 5
5.1 Overview:
Equipment portrayal dialects, for example, Verilog contrast from programming dialects on
the grounds that they incorporate methods for depicting the proliferation of time and flag
conditions (affectability). There are two task administrators, a blocking task (=), and a non-
blocking (<=) task. The non-blocking task permits planners to portray a state-machine upgrade
without expecting to pronounce and utilize transitory capacity variables (in any broad
programming dialect we have to characterize some provisional storage rooms for the operands to
be worked on along these lines; those are impermanent capacity variables). Since these ideas are
a piece of Verilog's dialect semantics, architects could rapidly compose portrayals of expansive
circuits in a generally minimal and succinct structure. At the season of Verilog's presentation
(1984), Verilog spoke to a huge efficiency change for circuit originators who were at that point
utilizing graphical schematic capture software and uniquely composed programming projects to
report and mimic electronic circuits.
The originators of Verilog needed a dialect with grammar like the C programming
dialect, which was at that point generally utilized as a part of designing programming
advancement. Verilog is case-delicate, has a fundamental preprocessor (however less advanced
than that of ANSI C/C++), and proportional control stream watchwords (if/else, for, while, case,
and so on.), and perfect administrator priority. Syntactic contrasts incorporate variable
affirmation (Verilog requires bit-widths on net/reg types[clarification needed]), boundary of
procedural squares (start/end rather than wavy props {}), and numerous other minor contrasts.
VITS Page 25
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
Verilog's idea of "wire" comprises of both sign qualities (4-state: "1, 0, coasting,
indistinct") and qualities (solid, feeble, and so on.). This framework permits conceptual
demonstrating of shared sign lines, where numerous sources drive a typical net. At the point
when a wire has various drivers, the wire's (lucid) worth is determined by a component of the
source drivers and their qualities.
A subset of articulations in the Verilog dialect is synthesizable. Verilog modules that fit
in with a synthesizable coding style, known as RTL (register-exchange level), can be physically
acknowledged by combination programming. Combination programming algorithmically
changes the (unique) Verilog source into a net rundown, a consistently proportionate depiction
comprising just of rudimentary rationale primitives (AND, OR, NOT, flip-flops, and so on.) that
are accessible in a particular FPGA or VLSI innovation. Further controls to the net rundown at
last prompt a circuit manufacture plan, (for example, a photograph cover set for an ASIC or a bit
stream record for a FPGA).
5.2 History:
Beginning:
Verilog was the first cutting edge equipment portrayal dialect to be developed. It was
made by Phil Moorby and Prabhu Goel amid the winter of 1983/1984. The wording for this
procedure was "Robotized Integrated Design Systems" (later renamed to Gateway Design
Automation in 1985) as an equipment demonstrating dialect. Passage Design Automation was
bought by Cadence Design Systems in 1990. Rhythm now has full restrictive rights to Gateway's
VITS Page 26
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
Verilog and the Verilog-XL, the HDL-test system that would turn into the accepted standard (of
Verilog rationale test systems) for the following decade. Initially, Verilog was proposed to
portray and permit reenactment; just a short time later was backing for blend included.
Verilog-95
With the increasing success of VHDL at the time, Cadence decided to make the language
available for open standardization. Cadence transferred Verilog into the public domain under
the Open Verilog International (OVI) (now known as Accellera) organization. Verilog was later
submitted to IEEE and became IEEE Standard 1364-1995, commonly referred to as Verilog-95.
In the same time frame Cadence initiated the creation of Verilog-A to put standards
support behind its analog simulator Spectre. Verilog-A was never intended to be a standalone
language and is a subset of Verilog-AMS which encompassed Verilog-95.
Verilog 2001
Extensions to Verilog-95 were submitted back to IEEE to cover the deficiencies that
users had found in the original Verilog standard. These extensions became IEEE Standard 1364-
2001 known as Verilog-2001.
Verilog-2001 is a significant upgrade from Verilog-95. First, it adds explicit support for
(2's complement) signed nets and variables. Previously, code authors had to perform signed
operations using awkward bit-level manipulations (for example, the carry-out bit of a simple 8-
bit addition required an explicit description of the Boolean algebra to determine its correct
value). The same function under Verilog-2001 can be more succinctly described by one of the
built-in operators: +, -, /, *, >>>. A generate/endgenerate construct (similar to VHDL's
generate/endgenerate) allows Verilog-2001 to control instance and statement instantiation
through normal decision operators (case/if/else). Using generate/endgenerate, Verilog-2001 can
instantiate an array of instances, with control over the connectivity of the individual instances.
File I/O has been improved by several new system tasks. And finally, a few syntax additions
were introduced to improve code readability (e.g. always @*, named parameter override, C-style
function/task/module header declaration).
VITS Page 27
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
Verilog 2005
VITS Page 28
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
The most profitable advantage of SystemVerilog is that it permits the client to build
dependable, repeatable check situations, in a predictable linguistic structure, that can be utilized
over various undertakings
A percentage of the run of the mill components of a HVL that recognize it from a
Hardware Description Language, for example, Verilog or VHDL are
Constrained-random stimulus generation
Functional coverage
Higher-level structures, especially Object Oriented Programming
Multi-threading and interprocess communication
Support for HDL types such as Verilog’s 4-state values
Tight integration with event-simulator for control of the design
There are many other useful features, but these allow you to create test benches at a
higher level of abstraction than you are able to achieve with an HDL or a programming language
such as C.
System Verilog provides the best framework to achieve coverage-driven verification
(CDV). CDV combines automatic test generation, self-checking testbenches, and coverage
metrics to significantly reduce the time spent verifying a design. The purpose of CDV is to:
Receive early error notifications and deploy run-time checking and error analysis to
simplify debugging.
Examples
module main;
initial
begin
$display("Hello world!");
$finish;
VITS Page 29
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
end
endmodule
module toplevel(clock,reset);
input clock;
input reset;
reg flop1;
reg flop2;
The "<=" administrator in Verilog is another part of its being an equipment depiction
dialect rather than a typical procedural dialect. This is known as a "non-blocking" task. Its
activity doesn't enlist until the following clock cycle. This implies the request of the assignments
are immaterial and will deliver the same result: flop1 and flop2 will swap values each clock.
VITS Page 30
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
The other task administrator, "=", is alluded to as a blocking task. Whenever "=" task is
utilized, for the reasons of rationale, the objective variable is upgraded promptly. In the above
illustration, had the announcements utilized the "=" blocking administrator rather than "<=",
flop1 and flop2 would not have been swapped. Rather, as in customary programming, the
compiler would comprehend to just set flop1 equivalent to flop2 (and along these lines overlook
the repetitive rationale to set flop2 equivalent to flop1.)
parameter size = 5;
parameter length = 20;
VITS Page 31
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
...
reg a, b, c, d;
wire e;
...
always @(b or e)
begin
VITS Page 32
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
a = b & e;
b = a | b;
#5 c = b;
d = #6 c ^ e;
end
The dependably statement above represents the other sort of system for use, i.e. the
dependably statement executes at whatever time any of the substances in the rundown change,
i.e. the b or e change. At the point when one of these progressions, promptly an is doled out
another quality, and because of the blocking task b is alloted another esteem a while later
(considering the new estimation of an.) After a deferral of 5 time units, c is relegated the
estimation of b and the estimation of c ^ e is concealed in an undetectable store. At that point
after 6 additional time units, d is appointed the worth that was concealed.
Signals that are driven from inside of a procedure (a beginning or dependably square)
must be of sort reg. Signals that are driven from outside a procedure must be of sort wire. The
catchphrase reg does not as a matter of course suggest an equipment register.
Constants
The definition of constants in Verilog supports the addition of a width parameter. The
basic syntax is:
Examples:
VITS Page 33
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
The next interesting structure is a transparent latch; it will pass the input to the output
when the gate signal is set for "pass-through", and captures the input and stores it upon transition
of the gate signal to "hold". The output will remain stable regardless of the input signal while the
VITS Page 34
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
gate is set to "hold". In the example below the "pass-through" level of the gate would be when
the value of the if clause is true, i.e. gate = 1. This is read "if gate is true, the din is fed to
latch_out continuously." Once the if clause is false, the last value at latch_out will remain and is
independent of the value of din.
The flip-flop is the next significant template; in Verilog, the D-flop is the simplest, and it can be
modeled as:
reg q;
always @(posedge clk)
q <= d;
The significant thing to notice in the example is the use of the non-blocking assignment.
A basic rule of thumb is to use <= when there is a posedge or negedge statement within the
always clause.
A variant of the D-flop is one with an asynchronous reset; there is a convention that the
reset state will be the first if clause within the statement.
reg q;
always @(posedge clk or posedge reset)
if(reset)
q <= 0;
else
q <= d;
VITS Page 35
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
The next variant is including both an asynchronous reset and asynchronous set condition;
again the convention comes into play, i.e. the reset term is followed by the set term.
reg q;
always @(posedge clk or posedge reset or posedge set)
if(reset)
q <= 0;
else
if(set)
q <= 1;
else
q <= d;
Note: If this model is utilized to display a Set/Reset flip tumble then recreation blunders
can come about. Consider the accompanying test grouping of occasions. 1) reset goes high 2) clk
goes high 3) set goes high 4) clk goes high again 5) reset goes low took after by 6) set going low.
Expect no setup and hold infringement.
In this sample the dependably @ explanation would first execute when the rising edge of
reset happens which would put q to an estimation of 0. Whenever the dependably piece executes
would be the rising edge of clk which again would keep q at an estimation of 0. The dependably
piece then executes when set goes high which in light of the fact that reset is high powers q to
stay at 0. This condition could possibly be right contingent upon the real flip lemon. Be that as it
may, this is not the fundamental issue with this model. Notice that when reset goes low, that set
is still high. In a genuine flip tumble this will make the yield go to a 1. Nonetheless, in this
model it won't happen on the grounds that the dependably piece is activated by rising edges of
set and reset - not levels. An alternate methodology may be vital for set/reset flip lemon.
Note that there are no "beginning" pieces said in this portrayal. There is a split in the
middle of FPGA and ASIC union apparatuses on this structure. FPGA devices permit
introductory pieces where reg qualities are built up as opposed to utilizing a "reset" signal. ASIC
combination devices don't backing such an announcement. The reason is that a FPGA's starting
VITS Page 36
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
state is something that is downloaded into the memory tables of the FPGA. An ASIC is a
genuine equipment usage.
//Examples:
initial
begin
a = 1; // Assign a value to reg a at time 0
#1; // Wait 1 time unit
b = a; // Assign the value of reg a to reg b
end
always @(posedge a)// Run whenever reg a has a low to high change
a <= b;
VITS Page 37
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
These are the classic uses for these two keywords, but there are two significant additional
uses. The most common of these is an alwayskeyword without the @(...) sensitivity list. It is
possible to use always as shown below:
always
begin // Always begins executing at time 0 and NEVER stops
clk = 0; // Set clk to 0
#1; // Wait for 1 time unit
clk = 1; // Set clk to 1
#1; // Wait 1 time unit
end // Keeps executing - so continue back at the top of the begin
The always keyword acts similar to the "C" construct while(1) {..} in the sense that it will
execute forever.
The other interesting exception is the use of the initial keyword with the addition of
the forever keyword.
The order of execution isn't always guaranteed within Verilog. This can best be
illustrated by a classic example. Consider the code snippet below:
initial
a = 0;
initial
b = a;
initial
begin
#1;
$display("Value a=%b Value of b=%b",a,b);
end
What will be printed out for the values of a and b? Depending on the order of execution of the
initial blocks, it could be zero and zero, or alternately zero and some other arbitrary uninitialized
VITS Page 38
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
value. The $display statement will always execute after both assignment blocks have completed,
due to the #1 delay.
7.7 Operators
Bitwise
| Bitwise OR
^ Bitwise XOR
~^ or ^~ Bitwise XNOR
! NOT
Logical
&& AND
|| OR
| Reduction OR
Reduction
~| Reduction NOR
^ Reduction XOR
~^ or ^~ Reduction XNOR
Arithmetic + Addition
VITS Page 39
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
- Subtraction
- 2's complement
* Multiplication
/ Division
** Exponentiation (*Verilog-2001)
Concatenation { , } Concatenation
Conditional ?: Conditional
VITS Page 40
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
VITS Page 41
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
CHAPTER 6
SIMULATION RESULTS
Fig 6.1 Simulation result for the proposed MIP modeling adder tree
Input a0 = 0010
Input a1 = 0101
Input a2 = 0111
Input a3 = 1001
Input a4 = 0001
Input a5 = 1011
Input a6 = 1110
Input a7 = 0000
Output y = 1011
VITS Page 42
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
VITS Page 43
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
VITS Page 44
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
CHAPTER 7
ADVANTAGES
VITS Page 45
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
CHAPTER 8
APPLICATIONS
VITS Page 46
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
CHAPTER 9
CONCLUSION
In this paper, we have identified the resource minimization problem in the scheduling of
adder-tree operations for the MCM block of transposed direct-form FIR filter, and presented an
MIP-based algorithm for exact bit-level resource optimization. Experimental result shows that up
to 15% reduction of area and 11.6% reduction of power can be achieved on top of already
optimized ADD/SUB networks of MCM blocks. Further exploration of efficient heuristic
algorithms for resource minimization of adder-trees of FIR filters could be done in the future.
VITS Page 47
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
REFERRENCES
[1] D. R. Bull and D. H. Horrocks, “Primitive operator digital filter,” IEE Proceedings-G, vol.
138, no. 3, pp. 401–412, Jun. 1991.
[2] A. G. Dempster and M. D. Macleod, “Use of minimum-adder multiplier blocks in FIR digital
filters,” IEEE Trans. Circuits Syst. II, Analod Digit. Signal Process., vol. 42, no. 9, pp. 569–577,
1995.
[4] I. C. Park and H. J. Kang, “Digital filter synthesis based on minimal signed digit
representation,” in Proc. Design Autom. Conf. (DAC), 2001.
[6] P. K. Meher and Y. Pan, “Mcm-based implementation of block fir filters for high-speed and
low-power applications,” in Proc. VLSI and System-on-Chip (VLSI-SoC), 2011 IEEE/IFIP 19th
Int. Conf., Oct. 2011, pp. 118–121.
[7] L. Aksoy, C. Lazzari, E. Costa, P. Flores, and J. Monteiro, “Design of digit-serial FIR filters:
Algorithms, architectures, and a CAD tool,” IEEE Trans. Very Large Scale Integration (VLSI)
Syst., vol. 21, no. 3, pp. 498–511, Mar. 2013.
[9] M. Kumm, P. Zipf, M. Faust, and C.-H. Chang, “Pipelined adder graph optimization for high
speed multiple constant multiplication,” in Proc. IEEE ISCAS, May 2012, pp. 49–52.
VITS Page 48
DESIGN AND IMPLEMENTATION OF BIT LEVEL OPTIMIZATION OF ADDER SW-
TREE FOR MCM FOR FIR FILTER
[11] R. Mahesh and A. Vinod, “A new common subexpression elimination algorithm for
realizing low-complexity higher order digital filters,” IEEE Trans. Computer-Aided Des. Integr.
Circuits Syst., vol. 27, no. 2, pp. 217–229, 2008.
[12] E. L. University, LEMON (Library for Efficient Modeling and Optimization in Networks)
[Online]. Available: http://lemon.cs.elte.hu/
VITS Page 49