Using Synthesis Techniques for Power Reduction
Using Synthesis Techniques for Power Reduction
ABSTRACT
This paper presents the use of synthesis based techniques for reducing power in
designs. The Power Compiler (v1997.08) from Synopsys was used to reduce
power consumption of a graphics chip. Often synthesis-based techniques
provide significant power reduction but at high area penalty. This paper presents
methods that can minimize the area penalty from 15% to less than 2%.
1.0 Introduction
A simple approach is to consider the toggle rates, also called activity factors, of
various nodes in the netlist and try to reduce the capacitance of nodes that
toggle most often. This approach is supported by a synthesis based
methodology where the synthesis tool is directed to use power consumption as
one of the goals of circuit optimization.
In this paper we present the results of our work using Synopsys’ Power
Compiler (v1997.08). This tool attempts to reduce the amount of capacitance
that is most frequently switched (i.e. charged and discharged) during each clock
period. Power Compiler uses activity factor data from gate level simulations to
determine the frequency of switching of various capacitance values.
In any power optimization work the first requirement is to provide the means of
estimating the power of a design. This power estimate can then be used for
setting targets for power reduction work. In following sections we first present the
requirements for power estimation. Then we describe how power reduction tool
can reduce power.
Synopsys’Design Power is a power estimation tool that uses activity factors and
capacitance information to compute power consumption [1]. It has two basic
modes of operation; probabilistic and simulation. In probabilistic mode the tool
uses user defined activity factors at the inputs of a design and propagates them
through the design. In simulation mode, the actual toggle rates are annotated for
every net in the design. Design Power estimates all three components of power;
switching power, cell internal power and leakage power.
The activity factors, also known as toggle rates, are obtained either from gate
level netlist simulations or from probabilistic estimations. The simulation method
is more accurate than the probabilistic method but has longer run time. The
capacitance information is obtained from the cell library (Synopsys synthesis
library) and parasitics from back annotation files.
Once power consumed by a design has been determined, the next step is to find
ways to minimize it. Power Compiler is a logic optimization tool and attempts to
reduce power by using power as one of the cost functions, in addition to timing
and area, to optimize the design [1]. The tool operates at gate level and it can do
one or more of the following transformations to achieve power goals:
Design Compiler uses the following priority order to meet design objectives: (1)
design rules, max_transition, max_capacitance, etc. (2) timing targets, and (3)
area goals. Because power is an important criteria, Power Compiler changes the
priority order as follows: (1) design rules, (2) timing goals, (3) power targets, and
(4) area goals. Hence, the tool first fixes all design rule violations. Then it
attempts to meet timing goals of the design. After meeting timing goals the tool
attempts to trade positive slack in design to meet power goals. Finally it
attempts to meet area goals.
The feasibility and effectiveness of using Power Compiler for reducing the power
of a design was evaluated. A set of experiments were designed to achieve the
following goals:
• design should already have been optimized and meet timing goals.
• design should not have any finite state machines.
• design should be small enough that many experiments can be run but not too
small that the data is not representative.
The first set of experiments were designed to determine the maximum power
saving that can be achieved by Power Compiler. To measure the quality of
results we defined a number of criteria; cell area, power, cell count and slack.
The cell area is the area of cell in square microns and is obtained from the cell
library. Power Compiler computes the power consumed by a design based on
specific toggle information. It is reported in mW. Cell count refers to the number
cell instances in a netlist. It helps determined the “size” of the netlist. Slack is the
amount of positive margin in the design and is measured in pico seconds.
All designs were synthesized using a 0.35 micron process library at 3.3 V and
125 degree C operating conditions. This library had been characterized for
power. The designs were first optimized for timing and area to achieve smallest
Design Version Power goal Area Area% Power Power% #cells Cells% Slack
design_1 rev_1 None 293386 100% 60.78 100% 1585 100% 571
rev_2 0 347016 118% 40.01 66% 2224 140% 2.2
Design Version Power goal Area Area% Power Power% #cells Cells% Slack
design_2 rev_1 None 86846 100% 20.92 100% 377 100% 556
rev_2 0 112212 129% 17.47 84% 621 165% 556
Design Version Power goal Area Area% Power Power% #cells Cells% Slack
design_3 rev_1 None 313014 100% 70.28 100% 1749 100% 1
rev_2 0 363218 116% 50.89 72% 2267 130% 1
This data shows that even though very significant power savings (~16-34%) are
possible, it comes at a very high area cost (16-29%). The area reported in these
tables is the cell area and does not include routing area. It is often more
instructive to consider increase in cell count as an indicator of area growth. The
cell count increases are very significant (30-65%).
These results, although excellent for power savings, were not very encouraging
due to high area cost. By default the priority order is design rules, timing, power
and area. To find a way to reduce power without incurring a high area penalty
we looked into feasibility of changing the priority order of the tool so that area
reduction has higher priority than power optimization. We asked the vendor if it
is possible to change the priority order of the tool so that area reduction has
higher priority than power reduction. We were informed that this priority order is
fixed (hard coded in the tool) and can not be changed.
Looking for alternative solutions to help reduce the area penalty we thought
about changing the power goals to see if that might help change the cost
function. We started with an area optimized design and computed it’s power
(before any power optimizations were done). This was defined as the base line
power value (= 100%). Then we ran several power optimization experiments and
adjusted power targets to 90%, 80%, etc. The results of these experiments as
shown in Table 2:
Design Version Power goal Area Area% Power Power% #cells Cells% Slack
design_1 rev_1 None 297131 100% 60.35 100% 1622 100% 571
rev_2 100% 329889 111% 40.64 67% 2029 125% 1
rev_3 90% 334695 113% 40.24 67% 2092 129% 0
rev_4 80% 351025 118% 39.91 66% 2269 140% 2
rev_5 70% 351044 118% 39.62 66% 2272 140% 5
Design Version Power goal Area Area% Power Power% #cells Cells% Slack
design_2 rev_1 None 97797 100% 20.17 100% 443 100% 556
rev_2 100% 112607 115% 17.50 87% 627 142% 23
rev_3 90% 112607 115% 17.50 87% 627 142% 23
rev_4 80% 112518 115% 17.50 87% 623 141% 23
rev_5 70% 112679 115% 17.51 87% 625 141% 30
Design Version Power goal Area Area% Power Power% #cells Cells% Slack
design_3 rev_1 None 315187 100% 71.15 100% 1761 100% 15
rev_2 100% 353772 112% 50.16 70% 2149 122% 0
rev_3 90% 367640 117% 50.48 71% 2307 131% 1
rev_4 80% 368065 117% 50.39 71% 2320 132% 0
rev_5 70% 368190 117% 50.43 71% 2319 132% 1
This data shows that area penalty for power reduction was less if the power
target was set at 100% or 90%. The tool still did significant power reduction at
considerably less area penalty (~18%). However, this area penalty was still
unacceptably high making this tool unsuitable for our needs. Our goal was to
limit area penalty to no more 2-3%.
Design Version Power goal Area Area% Power Power% #cells Cells% Slack
design_1 rev_1 None 293386 100% 60.78 100% 1585 100% 571
rev_2 100% 326445 111% 41.67 69% 1937 122% 7
rev_3 125% 311121 106% 43.06 71% 1779 112% 3
rev_4 150% 298392 102% 44.17 73% 1628 103% 8
rev_5 175% 297934 102% 45.93 76% 1613 102% 6
rev_6 200% 297934 102% 45.93 76% 1613 102% 6
Design Version Power goal Area Area% Power Power% #cells Cells% Slack
design_2 rev_1 None 86846 100% 20.92 100% 377 100% 556
rev_2 100% 93372 108% 15.89 76% 510 135% 431
rev_3 125% 86610 100% 17.48 84% 448 119% 556
rev_4 150% 86596 100% 17.43 83% 446 118% 556
rev_5 175% 87007 100% 18.71 89% 431 114% 556
rev_6 200% 84255 97% 18.49 88% 382 101% 556
Design Version Power goal Area Area% Power Power% #cells Cells% Slack
design_3 rev_1 None 313014 100% 70.28 100% 1749 100% 1
rev_2 100% 373415 119% 49.59 71% 2325 133% 0
rev_3 125% 357305 114% 51.55 73% 2151 123% 0
rev_4 150% 357305 114% 51.56 73% 2151 123% 0
rev_5 175% 314120 100% 55.92 80% 1752 100% 3
rev_6 200% 317748 102% 55.41 79% 1778 102% 1
This data shows that best results, i.e. least area penalty for most power
reduction, are obtained when power target is set at 175% or 200% of the original
design. The final results for three designs are shown below.
Thus, the area penalty is less than 2% which is acceptable for our design
needs.
Significant power reduction can be achieved by using synthesis tools that aim to
reduce capacitance of frequently switching nodes in a design. The area penalty
due to power saving can be minimized by appropriately adjusting the cost
function of the tool. The work reported here shows Power Compiler is capable
of reducing power consumption of design by 15-20% with area penalty of no
more than 2%. Synthesis for power can be an additional step in synthesis flow
after a netlist has been optimized for timing and area goals.
• The tool should allow the user to change the priority order so that area goals
could be prioritized over power targets. Better yet, the user should be able to
specify the acceptable area overhead that can be traded off to achieve power
target.
• The tool should have an exit criteria so that it quits optimization once the
power target has been achieved. In our experiments we noticed that even the
power target was set at 100% the tool did further optimizations.
• The tool should have a downsize only option that allows the user to restrict
the tool to use only cell downsizing for power optimization.
10.0 Acknowledgment
The author would like to thank Omar Malik for his help in setting direction and
scope of this effort.
11.0 References