How does OpenROAD decide what routing metal layer to use when connecting to standard cell pins? #6628
Unanswered
ozarkstock
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
I've been using OpenROAD with a more restrictive process than is typical with only two metal layers and custom standard cells. I've been playing around with what helps routability and what hinders it. First observation: pins being present on M2 (and M2 only) produces the warning "[INFO DRT-1000] Pin not in any guide. Attempting to patch guides to cover (at least part of) the pin." Second observation: if a pin is solely on M1 in the same coordinate position, the only warning produced is: "[WARNING DRT-0225] 3 pin not visited, fall back to feedthrough mode."
The tracks and spacing rules are the same between layers, the only difference being that one is horizontal and one is vertical. When two pins are declared (one on M1, one on M2) in the same position, some of the routes produced have strange behavior seen below. The gate pin is seen in red, but the gate is hidden for better route visibility.
Obviously, from that image, it would make more sense to continue the M1 route into the pin and the M2 route wouldn't be necessary at all which is what prompts my question. OpenROAD doesn't use M1 to connect to any pins, rather it just uses a via on the M1 pin.
Using another process, I was able to reproduce the second warning by restricting the routing layers to be between Metal 1 and Metal 2. The pins in that process use both Metal 1 and Metal 2.
I'm curious about the internal logic that decides how it connects to pins and if OpenROAD, for efficiency's sake, only attempts connections with one layer. Also, if there is a way in the cell design that would mitigate these warnings at all with the limited metal stack in mind. Thanks!
Beta Was this translation helpful? Give feedback.
All reactions