OpenROAD icon indicating copy to clipboard operation
OpenROAD copied to clipboard

DRT: Wrong via2via Forbidden spacing penalty calculation

Open osamahammad21 opened this issue 1 year ago • 0 comments

Description

Consider the following case: image When we check for penalty of forbidden via2via spacing in FlexGridGraph::getNextPathCost we do the following:

  • Extract the horizontal/vertical distance from the last via https://github.com/The-OpenROAD-Project/OpenROAD/blob/27c2eb93b38a81bb9f069b71dda7ff7a5b31e64f/src/drt/src/dr/FlexGridGraph_maze.cpp#L346
  • In that case we have non-zero currVLengthX and currVLengthY so we decide if there is a penalty as following: https://github.com/The-OpenROAD-Project/OpenROAD/blob/27c2eb93b38a81bb9f069b71dda7ff7a5b31e64f/src/drt/src/dr/FlexGridGraph_maze.cpp#L393-L405
    • The currVLengthX is not in the forbidden horizontal spacing range while currVLengthY is in the forbidden vertical spacing range. So isForbiddenVia2Via evaluates to true. This is obviously wrong because the second via is very far away from the first via horizontally that the vertical distance is not relevant anymore.

Suggested Solution

The problem is that we separate horizontal and vertical spacing check which is not correct. Instead we should evaluate using forbidden areas/boxes instead of forbidden spacing ranges. Some work is done on that solution but it is incomplete: https://github.com/The-OpenROAD-Project-private/OpenROAD/tree/TR-fix-rp-ranges

Additional Context

No response

osamahammad21 avatar Jul 22 '24 17:07 osamahammad21