Skip to content

Improve timing and placement tuning in flow scripts (specifically in Nangate45)#9824

Open
Waleed99i wants to merge 3 commits intoThe-OpenROAD-Project:masterfrom
Waleed99i:fix/gcd-timing-improvement
Open

Improve timing and placement tuning in flow scripts (specifically in Nangate45)#9824
Waleed99i wants to merge 3 commits intoThe-OpenROAD-Project:masterfrom
Waleed99i:fix/gcd-timing-improvement

Conversation

@Waleed99i
Copy link

This pull request introduces improvements to the OpenROAD flow for the gcd_nangate45 design. The changes focus on enhancing timing behavior, placement flexibility, and overall flow robustness through parameter tuning and iterative refinement.

What Changes Were Made ?

The following key modifications were made:

  • Improved timing optimization by enabling more accurate parasitic consideration in the flow
  • Adjusted timing repair strategy to allow better buffering and utilization control
  • Introduced changes in placement density to improve design space for routing and timing
  • Iteratively refined the flow based on observed results to better handle timing constraints

Why These Changes Were Made?

The motivation behind these changes was to:

  • Improve timing closure and reduce violations
  • Provide better alignment with realistic routing and parasitic conditions
  • Increase flexibility in placement to support routing and optimization
  • Demonstrate practical understanding of OpenROAD flow tuning and trade-offs

These modifications reflect an exploration of how parameter tuning impacts timing, placement, and routing in a real ASIC flow.

Results & Observations

  • The initial run showed timing violations and suboptimal slack values
  • After applying the changes, improvements were observed in timing behavior and design feasibility
  • Routing and placement quality improved due to better utilization and spacing control
  • The flow demonstrates more stable and realistic optimization behavior

References / Supporting Material

Additional Notes
This work is part of my preparation for GSoC 2026 with OpenROAD. It demonstrates hands-on experience with:

  • OpenROAD flow execution
  • Timing-driven design optimization
  • Practical flow tuning and analysis
  • Understanding of real-world ASIC design trade-offs
Signed-off-by: Waleed <waleedakram059@gmail.com>
@Waleed99i Waleed99i changed the title Improve UPF flow: timing and placement tuning in flow scripts (specifically in Nangate45) Improve timing and placement tuning in flow scripts (specifically in Nangate45) Mar 19, 2026
Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces several tuning parameters to the OpenROAD flow for the gcd_nangate45 design, aiming to improve timing and placement. The changes include enabling global-routing-based parasitics for more accurate timing repair, and adjusting the repair_timing command to allow for more aggressive buffering and utilization control. While these changes are reasonable for exploring design closure, I've noted one redundancy in the configuration script that should be addressed for better maintainability.

set die_area {0 0 100.13 100.8}
set core_area {10.07 11.2 90.25 91}

set global_place_density 0.3
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

This line appears to be redundant. The variable global_place_density is already set to 0.3 in test/Nangate45/Nangate45.vars, which is sourced on line 4 of this file. To avoid redundancy and improve maintainability, you can remove this line.

…he report and added in Blog Signed-off-by: Waleed <waleedakram059@gmail.com>
…esult by including this so modified flow.tcl now Signed-off-by: Waleed <waleedakram059@gmail.com>
@Waleed99i Waleed99i marked this pull request as ready for review March 19, 2026 09:12
@github-actions
Copy link
Contributor

clang-tidy review says "All clean, LGTM! 👍"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

1 participant