The-OpenROAD-Project / The-OpenROAD-Project/OpenROAD
Incremental global placement needs to be timing aware
@LucasYuki is already working on this.
Since Sep 8, 2026.
- Dominant language
- Verilog
- Stars
- 3.1k
- Forks
- 1k
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 136
Description
Describe the bug
In https://github.com/The-OpenROAD-Project/OpenROAD/pull/11357 I changed the operation of gpl. In asap7/cva6 this results is a slightly different result which has the effect of going from 0 swaps to 3 swaps in replace_arith_modules. This ultimately degrades final timing.
The problem appears to originate from global_placement -incremental. It is not timing aware and undoes some of the previous optimization. Presumably routability suffers from a similar potential issue. It needs to have some timing awareness:
┌──────┬───────────────┬───────────┬───────────────────┬─────────────────┐
│ │ DP input HPWL │ legalized │ legalization cost │ TNS effect │
├──────┼───────────────┼───────────┼───────────────────┼─────────────────┤
│ base │ 490,398 │ 523,270 │ +6.7% │ improved 1,551 │
├──────┼───────────────┼───────────┼───────────────────┼─────────────────┤
│ new │ 463,021 │ 499,186 │ +7.8% │ degraded 23,324 │
└──────┴───────────────┴───────────┴───────────────────┴─────────────────┘
Additionally there is no ability to revert such a degradation so it is sticky.
Expected Behavior
No timing degradation from incremental placement.
Environment
https://content.jenkins.openroad.tools/static-files/MAnyA5HOjJbaxuGn-zvFklzYWemco1jWbAcG50yazfUxNzg4ODc4NTI2MzYxOjQ6bWF0dDpqb2IvT3BlblJPQUQtZmxvdy1zY3JpcHRzLVByaXZhdGUvam9iL3NlY3VyZS1ncGwtY29udmVyZ2VuY2UtZml4ZXMvMS9hcnRpZmFjdA==/final_report_cva6_asap7_base_2026-09-08_05-33.tar.gz
https://content.jenkins.openroad.tools/static-files/h9-GN95LeEJlKVQLwHHqasufJ39-arLOLq6u8h3hXmYxNzg4ODc4NTUzNDAxOjQ6bWF0dDp1c2VyL21hdHQvbXktdmlld3Mvdmlldy9NYXN0ZXIvam9iL09wZW5ST0FELWZsb3ctc2NyaXB0cy1OaWdodGx5LVB1YmxpYy83NDgxL2FydGlmYWN0/final_report_cva6_asap7_base_2026-09-08_08-24.tar.gz
To Reproduce
See above
Relevant log output
Screenshots
No response
Additional Context
No response
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.