psm: report the average IR drop under the drop__average metric - #11097
Merged
gadfort merged 1 commit intoAug 7, 2026
Merged
Conversation
design_powergrid__drop__average carried results.avg_voltage, so on a power net it reported the supply voltage rather than the drop. avg_ir_drop was already computed and used in the text report, but never reached the metric. The mistake was invisible on a ground net, where net_voltage is 0 and getSolution() sets avg_ir_drop = avg_voltage, so half of every run looked correct. On a 1.8 V power net the metric read 1.79999 where the average drop was 6.41e-06. Also adds design_powergrid__voltage__average, so the value that metric used to carry is still available and is named for what it is, alongside the existing design_powergrid__voltage__worst. Fixes The-OpenROAD-Project#11096 Signed-off-by: Shivaram Mysore <shivaram.mysore@gmail.com>
Contributor
There was a problem hiding this comment.
Code Review
This pull request updates the metric logging in IRSolver::report by correcting the metric key for average voltage to design_powergrid__voltage__average and adding a new metric log for average IR drop with the key design_powergrid__drop__average. There are no review comments, so I have no feedback to provide.
Contributor
There was a problem hiding this comment.
Welcome to OpenROAD! Thanks for opening your first PR.
Before we review:
- Contribution Guide: https://openroad.readthedocs.io/en/latest/contrib/contributing.html
- Build Instructions: https://openroad.readthedocs.io/en/latest/contrib/BuildWithCMake.html
Please ensure:
- CI passes
- Code is properly formatted
- Tests are included where applicable
A maintainer will review shortly!
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #11096, with both changes @gadfort asked for.
design_powergrid__drop__averagepassedresults.avg_voltage, so on a power net it reported the supply voltage instead of the drop.avg_ir_dropwas already computed ingetSolution()and used correctly in the text report two lines earlier — it just never reached the metric.It stayed hidden because on a ground net
net_voltage == 0, sogetSolution()setsavg_ir_drop = avg_voltageand the metric is accidentally right. Every run reports both a power and a ground net, so half the numbers always looked correct. On a 1.8 V power net the metric read1.79999where the average drop was6.41e-06.Changes
design_powergrid__drop__averagenow carriesresults.avg_ir_drop.design_powergrid__voltage__averagecarryingresults.avg_voltage, so the value the old metric held is still published and named for what it is — and sits alongside the existingdesign_powergrid__voltage__worst.Notes
drop__averagefor power nets will see the value change (to the drop it was always named for); ground-net values are unaffected.