drt: restore full routing-layer grid#10875
Conversation
Limiting the maze grid to TOP_ROUTING_LAYER changes its track and via topology and can leave otherwise routable nets without a path. Restore the full layer grid until the memory optimization can preserve routing behavior. Signed-off-by: Naveen Venkat <archgen.guest@nyayanidhi.in>
|
Welcome to OpenROAD! Thanks for opening your first PR.
Please ensure:
|
There was a problem hiding this comment.
Code Review
This pull request removes the logic that limits grid graph layers and fixed-shape costing to the TOP_ROUTING_LAYER threshold. Specifically, it removes the layer-skipping checks based on the grid graph's minimum/maximum layer numbers and the top routing layer configuration in both FlexDR_init.cpp and FlexGridGraph.cpp. There are no review comments, so I have no feedback to provide.
|
@mguthaus FYI |
|
Sounds like it's best to keep it removed. I'm not an expert in the DRT module and was just going for an easy reduction but obviously this isn't that. |
|
The regression is narrower than the grid needing the full stack. The top routing layer gets its wrong-way edges from the tracks of the layer above it, and those track coords also feed the maze x/y coordinate union. So trimming the upper layers out of initTracks deleted all wrong-way edges on the top routing layer plus some nodes below, which is what breaks the maze search here. None of that needs grid z-planes above the top routing layer, and that's where the memory win comes from. So we can keep collecting tracks one layer above TOP_ROUTING_LAYER while still trimming the z dimension. |
Fixes #10873.
The failure bisects to 0fe62b1, which stopped adding routing layers above TOP_ROUTING_LAYER to FlexGridGraph. That loop builds the track maps used for maze coordinates and adjacent-layer via decisions as well as the z dimension, so trimming it changes routing topology rather than only removing unused storage.
Restore the previous full routing-layer grid and remove the fixed-object guards that were only needed by the trimmed z range. This gives DRT the same topology as before the regression; the memory optimization can be revisited once it preserves those routing invariants.
I ran the issue's supplied tiny_rocket/IHP130 replay on the GCP VM:
Repository checks: