The-OpenROAD-Project / OpenROAD

OpenROAD's unified application implementing an RTL-to-GDS Flow. Documentation at https://openroad.readthedocs.io/en/latest/
https://theopenroadproject.org/
BSD 3-Clause "New" or "Revised" License
1.5k stars 525 forks source link

GRT: Routing resources should have a better internal management #5423

Open eder-matheus opened 1 month ago

eder-matheus commented 1 month ago

Description

Today, our global router relies on user-defined resource adjustments to produce good routing guides for the detailed router. The adjustments help to avoid having too many wires assigned to a gcell, making it hard to fix DRCs in these regions during droute.

Instead of relying only on these user-defined adjustments, the global router should have a more dynamic handling of the routing resources.

Suggested Solution

GRT could have a dynamic management of the routing resources. Instead of considering a fixed amount of resources for each GCell, the tool can initially set small resource values for the GCells and progressively increase the resources only in the necessary regions where routing congestion can't be solved.

This idea requires more discussion, so any input on how it may work is welcome.

Additional Context

This is a good test case where setting higher resource adjustments helps DRT to finish with no DRCs, while small adjustments make it end with violations: https://drive.google.com/file/d/1c7lxyFGMgj7dW62qUXk2nnEbXUs1-IAF/view?usp=sharing

maliberty commented 1 month ago

I think we should do a bottom up analysis of a case where grt views the design as routable and drt struggles or fails. Possible areas to model

We need some insight to drive this process. There is no right grt answer independent of drt. A different router might succeed where TR doesn't with the same guides.