Skip to content

Commit ae5c013

Browse files
committed
[gpl] Include Liberty internal power in MBFF clustering cost
The MBFF algorithm previously used only leakage power to decide whether to replace single-bit flip-flops with multi-bit cells. For flip-flops, internal power dominates total power, and MBFF cells share scan (SE/SI) and clock structures across bits, giving 40-90% savings on those pins. Ignoring internal power caused clustering to increase total power on some PDKs. Add getInternalEnergy() which sums average internal energy across all pins (CK, D, Q, SE, SI) from Liberty internal_power tables. Use this alongside leakage in three places: - SetRatios: norm_power_ uses total estimated power (leakage + internal_energy * clock_activity) so the ILP cost function reflects total power, not just leakage. - ReadLibs: select best tray per size by minimum total estimated power instead of minimum leakage, so cells with lower total power (e.g. SVT over LVT) are preferred even when their leakage is higher. - SetVars: select the single-bit baseline cell by lowest total estimated power, with both leakage and internal energy paired from the same cell. Clock period is obtained from SDC before ReadLibs runs so tray selection can account for internal power. Falls back to leakage-only when no clock is defined or no internal_power tables exist. Signed-off-by: Matt Liberty <mliberty@precisioninno.com>
1 parent 66c2b5e commit ae5c013

4 files changed

Lines changed: 290 additions & 96 deletions

File tree

0 commit comments

Comments
 (0)