Skip to content

mpl: update notch penalty#8078

Merged
maliberty merged 19 commits intoThe-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:mpl-notch-penalty
Aug 27, 2025
Merged

mpl: update notch penalty#8078
maliberty merged 19 commits intoThe-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:mpl-notch-penalty

Conversation

@openroad-ci
Copy link
Collaborator

In the current flow, the notch penalty is applied very sparsely during the annealing in MPL, while also being of a fixed small size (10 microns), having basically no effect in most designs.
This PR reworks how the notch penalty works, based on whats proposed in the original RTLMP paper. It works by creating a grid by extending each edge of a macro. The grid is then used to detect if a given cell is a notch (a grid cell is a notch if it is surrounded by 3 or more macros and/or outline edge).

Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
Copy link
Contributor

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

clang-tidy made some suggestions

Signed-off-by: João Mai <jmai@precisioninno.com>
@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

Signed-off-by: João Mai <jmai@precisioninno.com>
Signed-off-by: João Mai <jmai@precisioninno.com>
@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@joaomai joaomai requested a review from AcKoucher August 21, 2025 13:37
@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

Signed-off-by: João Mai <jmai@precisioninno.com>
@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

int& start_id,
int& end_id,
std::vector<float>& grid)
int SACoreSoftMacro::getSegmentIndex(float segment, std::vector<float>& coords)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The vector reference should be const

Comment on lines 755 to 758
if (step == max_num_step_ - macros_.size() * 2) {
notch_weight_ = original_notch_weight_;
packFloorplan();
calPenalty();
pre_cost = calNormCost();
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This entire condition can be removed now that the penalty is being considered throughout the annealing.

@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@joaomai joaomai requested a review from AcKoucher August 27, 2025 18:09
@joaomai
Copy link
Contributor

joaomai commented Aug 27, 2025

Secure CI is all green with changes. Public CI requires the merge of PR #3441 in ORFS.

@AcKoucher AcKoucher requested a review from maliberty August 27, 2025 18:32
@maliberty maliberty merged commit 3ed56dc into The-OpenROAD-Project:master Aug 27, 2025
11 checks passed
@maliberty maliberty deleted the mpl-notch-penalty branch August 27, 2025 20:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants