Skip to content

DPL padding fixed#7844

Merged
maliberty merged 12 commits intoThe-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:dpl-padding-fixed
Jul 20, 2025
Merged

DPL padding fixed#7844
maliberty merged 12 commits intoThe-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:dpl-padding-fixed

Conversation

@openroad-ci
Copy link
Copy Markdown
Collaborator

Previously, we used to consider the padding area as part of the cell area in marking the grid pixels. This led to a failure in a corner case of having 1-site padding and disallowing one site gaps at the same time. 2 cells with one site gap in between would be considered valid because dpl sees that one site as part of the cell. Thus it considers both cells abutted.

In this PR, I separate padding from cell actual area marked in the grid. I introduce a new variable for each grid pixel, called padding_reserved_by, that represents the cell that claims that pixel for its padding.

Signed-off-by: osamahammad21 <osama21@aucegypt.edu>
Signed-off-by: osamahammad21 <osama21@aucegypt.edu>
Signed-off-by: osamahammad21 <osama21@aucegypt.edu>
Signed-off-by: osamahammad21 <osama21@aucegypt.edu>
Signed-off-by: osamahammad21 <osama21@aucegypt.edu>
Signed-off-by: osamahammad21 <osama21@aucegypt.edu>
Signed-off-by: osamahammad21 <osama21@aucegypt.edu>
Signed-off-by: osamahammad21 <osama21@aucegypt.edu>
Signed-off-by: osamahammad21 <osama21@aucegypt.edu>
Signed-off-by: osamahammad21 <osama21@aucegypt.edu>
Signed-off-by: osamahammad21 <osama21@aucegypt.edu>
@github-actions
Copy link
Copy Markdown
Contributor

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

#include "placerBase.h"
#include "point.h"
#include "routeBase.h"

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

not sure why this changed but not crucial

bool is_hopeless = false; // too far from sites for diamond search
std::map<dbSite*, dbOrientType> sites;
uint8_t blocked_layers = 0;
std::unordered_set<Node*>
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can there ever be more than two nodes?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Currently no. This set should have one node only. However, if we opt to shared padding area, this would be helpful. Because this set would hold 2 nodes; the left node and the right node.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I would just have a left & right field rather than an unordered_set (smaller and faster). We can do that in a follow up.

Comment thread src/dpl/src/infrastructure/Padding.cpp
@osamahammad21 osamahammad21 requested a review from maliberty July 20, 2025 11:52
@maliberty maliberty merged commit 35e48b6 into The-OpenROAD-Project:master Jul 20, 2025
10 of 11 checks passed
@maliberty maliberty deleted the dpl-padding-fixed branch July 20, 2025 15:38
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.

3 participants