mpl: fix orientation improvement and add tests #6815
Merged
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.
Another bug found when implementing the second version of the IO constraints.
During orientation improvement, when computing WL, while iterating the bterms of a macro iterm's net, if the bterm is unconstrained, we should compute the HPWL using the closest available boundary to that macro iterm. We're currently searching for the closest boundary using the location of the bterm, which doesn't make sense.
I.e., the first argument of
HierRTLMP::getClosestBoundary
should anodb::Point
representing the location of the macro iterm.Obs: orientation_improvement.lef is the same as macro_only.lef but with more reasonable iterm positions in the macros (it's very easier to see the result of the tests).