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

GRT: Bad GRT guides results in DRT break #5696

Closed
osamahammad21 opened this issue Sep 5, 2024 · 6 comments · Fixed by #5703
Closed

GRT: Bad GRT guides results in DRT break #5696

osamahammad21 opened this issue Sep 5, 2024 · 6 comments · Fixed by #5703
Assignees
Labels
grt Global Routing

Comments

@osamahammad21
Copy link
Member

osamahammad21 commented Sep 5, 2024

Describe the bug

#5637 triggered an issue in DRT that originates in GRT guides. GRT chooses to create a 2-gcells route segment on Metal1 for net clknet_4_6_0_clk to access pin clkbuf_4_6_0_clk/Z. It makes more sense if GRT chooses one gcell to access the pin. The available tracks on Metal1 should be 0 in that area.
Screenshot from 2024-09-05 19-55-03

Expected Behavior

GRT accesses the pin using 1 gcell only on Metal1

Environment

refer to https://github.com/The-OpenROAD-Project/OpenROAD/issues/5637

To Reproduce

refer to #5637

Relevant log output

No response

Screenshots

No response

Additional Context

No response

@eder-matheus
Copy link
Contributor

You are right. Even if we allow Metal1 routing (as in this design), all tracks are completely obstructed by the instance pins and obstructions. I will see what's wrong in GRT. Probably I'm not iterating over a list of obstructions.
image

@maliberty
Copy link
Member

My guess is that since the AP is on the border that confuses grt as well about which gcell the ap is in.

@eder-matheus
Copy link
Contributor

My guess is that since the AP is on the border that confuses grt as well about which gcell the ap is in.

I think the problem is simpler than that. GRT understands that the pin is on the gcell shown in the picture. However, when I look at the resources available at Metal1 in this gcell, it shows much more than I would expect (9 tracks of 15, while I would expect at most 3 tracks available). Since ew allow Metal1 routing in this design, it decided to create the segment in Metal1.

I need to understand why it is not computing the resources properly.

@maliberty
Copy link
Member

I would expect 0 - why 3?

@osamahammad21
Copy link
Member Author

@eder-matheus Any update on this?

@eder-matheus
Copy link
Contributor

@eder-matheus Any update on this?

I'm trying to solve congestion issues in 3 designs of the public CI. I believe we are having problem with pin access in GRT that is causing the congestion, because the values are large.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
grt Global Routing
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants