Skip to content

[DO NOT MERGE] Coarse/fine setup-repair phases — CI QoR evaluation#4300

Draft
mguthaus wants to merge 1 commit into
The-OpenROAD-Project:masterfrom
VLSIDA:coarse-fine-eval
Draft

[DO NOT MERGE] Coarse/fine setup-repair phases — CI QoR evaluation#4300
mguthaus wants to merge 1 commit into
The-OpenROAD-Project:masterfrom
VLSIDA:coarse-fine-eval

Conversation

@mguthaus

Copy link
Copy Markdown
Contributor

⚠️ DO NOT MERGE — evaluation-only PR for an experimental coarse→fine repair_timing setup-repair flow. It depends on an out-of-tree OpenROAD branch, so it is not mergeable.

Flow change: sequences setup repair coarse→fine via new COARSE/FINE repair_timing -phases tokens:

  • floorplan: COARSE (+ skip last gasp)
  • resize (3_4): COARSE FINE (opt-in via ENABLE_PLACE_REPAIR_TIMING)
  • post-dpl (new 3_6 target): COARSE FINE
  • CTS / global route: COARSE FINE

COARSE = sizeup/clone/buffer/split; FINE = vt_swap/pin-swap/size_down/unbuffer/reroute.

OpenROAD dependency: submodule bumped to VLSIDA/OpenROAD@coarse-fine (9ddd6967fe) — https://github.com/VLSIDA/OpenROAD/tree/coarse-fine — which adds the COARSE/FINE phase tokens and two move-generator crash fixes (RerouteGenerator hierarchical-net; SizeDownFanoutGenerator dangling-path).

Verified locally: gcd/aes/ibex on nangate45 + asap7 complete (rc=0, no crashes).

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

Copy link
Copy Markdown
Contributor

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 a new post-detailed-placement timing repair step (3_6_place_repair_timing) to the flow, adding a new script repair_timing_post_place.tcl and updating the Makefile. It also enhances repair_timing_helper to support a -phases argument and configures explicit phases across various stages (cts.tcl, floorplan.tcl, global_route.tcl, and resize.tcl). Feedback suggests wrapping the detailed_placement call in repair_timing_post_place.tcl with log_cmd and passing dpl_args for consistency, as well as correcting a comment in the Makefile that inaccurately describes the timing repair phases.

Comment on lines +20 to +21
# Re-legalize after timing repair.
detailed_placement

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

medium

The detailed_placement command is called directly without logging via log_cmd and without passing dpl_args (such as -use_negotiation when USE_NEGOTIATION is set). To maintain consistency with other flow scripts and respect user configuration, please define dpl_args and wrap the call in log_cmd.

# Re-legalize after timing repair.
set dpl_args {}
append_env_var dpl_args USE_NEGOTIATION -use_negotiation 0
log_cmd detailed_placement {*}$dpl_args

Comment thread flow/Makefile Outdated
@mguthaus mguthaus force-pushed the coarse-fine-eval branch 3 times, most recently from 576e5da to bb00622 Compare June 20, 2026 15:18
Sequence repair_timing setup repair coarse->fine across the flow using the
COARSE/FINE -phases tokens from the OpenROAD submodule:
  - floorplan: COARSE (+ skip last gasp)
  - resize (3_4): COARSE FINE (opt-in via ENABLE_PLACE_REPAIR_TIMING)
  - post-dpl (new 3_6 target): COARSE FINE
  - CTS: COARSE FINE
  - global route: COARSE FINE

Bumps tools/OpenROAD to VLSIDA/OpenROAD @ 9ddd6967fe (branch coarse-fine),
which adds the COARSE/FINE phase tokens and two move-generator crash fixes.

Evaluation only; depends on an out-of-tree OpenROAD branch -> not for merge.

Signed-off-by: Matthew Guthaus <mrg@ucsc.edu>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant