8 Ways to Optimize Power Using Encounter Digital Implementation (EDI) System Quick Reference
Everyone
knows that the increasing speed and complexity of today's designs
implies a significant increase in power consumption,
which demands better optimization of your design for power. I am sure
lot of us must be scratching our heads over how to achieve this, knowing
that manual power optimization would be hopelessly slow and all too
likely to contain errors.
Here are 8 Top Things you need to know to optimize your design for power using the Encounter Digital Implementation (EDI) System.
Given
the importance of power usage of ICs at lower and lower technology
nodes, it is necessary to optimize power at various stages in the
flow. This blog post will focus on methods that can be used to reach an
optimal solution using the EDI System in an automated and clearly
defined fashion. It will give clear and concise details on what features
are available within optimization, and how to use them to best reach
the power goals of the design.
Please read through all of the
information below before making a decision on the right approach or
strategy to take. It is highly dependent on the priority of low power
and what timing, runtime, area and signoff criteria were decided upon in
your design. With the aid of some or all of the techniques described in
this blog it is possible to, depending on the design, vastly reduce
both the leakage and dynamic power consumed by the design.
This is a one stop quick reference and not a substitute for reading the full document.
1)
VT partition uses various heuristics to gather the cells into a
particular partition. Depending on how the cells get placed in a
particular bucket, the design leakage can vary a lot. The first thing is
to ensure that the leakage power view is correctly specified using the "set_power_analysis_mode -view" command. The "reportVtInstCount -leakage" command is a useful check to see how the cells and libraries are partitioned. Always ensure correct partitioning of cells.
2)
In several designs, manually controlling certain leakage libraries in
the flow might give much better results than the automated partitioning
of cells. If the VT partitioning is not satisfactory, or the
optimization flow is found to use more LVT cells than targeted,
selectively turn off cells of certain libraries particularly in initial
part of the flow i.e. preRoute flow. The user should selectively set the
LVT libraries to "don't use" and run preCts/postCts optimization.
Depending on final timing QOR, another incremental optimization with LVT
cells enabled may be needed.
3) Depending on the importance of
leakage/dynamic power in the flow, the leakage/dynamic power flow effort
can be set to high or low.
setOptMode -leakagePowerEffort {low|high}
setOptMode -dynamicPowerEffort {low|high}
If
timing is the first concern, but having somewhat better leakage/dynamic
power is desired, then select low. If leakage/dynamic power is of
utmost importance, use high.
4) PostRoute Optimization typically
works with all LVT cells enabled. In case of large discrepancy between
preRoute and postRoute timings or if SI timing is much worse than base
timing, postRoute optimization may overuse LVT cells. So it may be
worthwhile experimenting with a two pass optimization, once with LVT
cells disabled, and then with LVT cells enabled.
5) In order to
do quick PostRoute timing optimization to clean up final violations
without doing physical updates, use the following:
setOptMode -allowOnlyCellSwapping true
optDesign -postRoute
This
will only do cell swapping to improve timing, without doing physical
updates. This is specifically for timing optimization and will worsen
leakage.
6) Leakage flows typically have a larger area footprint
than non-leakage flows. This is because EDI trades area with power, as
it uses more HVT cells to fix timing to reduce leakage. This sometimes
necessitates reclaiming any extra area during postRoute Opt to get
better convergence in timing. EDI has an option to turn on area reclaim
postRoute which is hold aware also and will not degrade hold timing.
setOptMode -postRouteAreaReclaim holdAndSetupAware
7) Running standalone Leakage Optimization to do extra leakage reclamation:
optLeakagePower
This may be needed if some of the settings have changed or if leakage flows are not being used.
8)
PreRoute Optimization works with an extra DRC Margin of 0.2 in the
flow. On some designs it is known to result in extra optimization
causing more runtime and worse leakage. The option below is used to
reset this extra margin in DRV fixing:
setOptMode -drcMargin -0.2
Remember
to reset this margin for postRoute optimization to 0, as postRoute
doesn't work with this extra margin of 0.2. Note that the extra
drcMargin is sometimes useful in reducing the SI effects, so by removing
the extra margin, more effort may be needed to fix SI later in the
flow.
I hope these tips help you achieve your power goals of your designs!
Useful information. Kindly do the same for issues faced from floorplan to GDSII
ReplyDelete