Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drt gc eol fixed #1423

Conversation

openroad-robot
Copy link
Contributor

No description provided.

One of the EOL checks was missing the filter on fixed objects.

Signed-off-by: Matt Liberty <mliberty@eng.ucsd.edu>
Signed-off-by: Matt Liberty <mliberty@eng.ucsd.edu>
@maliberty maliberty marked this pull request as ready for review December 14, 2021 01:02
Copy link
Member

@osamahammad21 osamahammad21 left a comment

Choose a reason for hiding this comment

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

Checking for same pin is ok for me.
Regarding checking fixed shapes, this was supposed to be handled by hasRoute, when hasRoute is false, it indicates that neither the edge or ptr are route shapes. However, the implementation has a silly logical bug. hasRoute is the same for all edges queried in checkMetalEndOfLine_eol_hasEol. So when it turns true for one edge in an iteration in the for loop, it's true for all next edges in the for loop even if the edges are fixed.
Anyways I find the hasRoute technique complicated and I don't really understand why not just check if edges are fixed.

@maliberty
Copy link
Member

@osamahammad21 what is the "silly logical bug"?

@osamahammad21
Copy link
Member

@maliberty
In checkMetalEndOfLine_eol_hasEol, assume hasRoute=false passed to the function. Then we query the surrounding edges. Assume they are 2 edges. The first edge is routed and the second is fixed. in the first iteration in the for loop, hasRoute will change to true because the edge is routed. In the second iteration, where the edge is fixed, hasRoute is still true although both edges are fixed. That's why you got the weird violation between two blockages I guess.
I am not sure if that explains my idea.
I think we should either remove hasRoute and keep your changes, or we fix the hasRoute part. both would be redundant.

@maliberty
Copy link
Member

@osamahammad21 I see your point. I'm going to merge this PR so it unblocks my other work and I'll start a new PR to resolve your point. This passes secure-CI.

@maliberty maliberty merged commit d007015 into The-OpenROAD-Project:master Dec 14, 2021
@maliberty maliberty deleted the drt-gc-eol-fixed branch December 14, 2021 15:08
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