Skip to content

feat: synchronize OpenROAD timing and parasitics - #5

Merged
zhaoxueyan1 merged 10 commits into
mainfrom
merge-upstream-openroad-opensta
Aug 6, 2026
Merged

feat: synchronize OpenROAD timing and parasitics#5
zhaoxueyan1 merged 10 commits into
mainfrom
merge-upstream-openroad-opensta

Conversation

@zhaoxueyan1

Copy link
Copy Markdown
Member

Summary

  • use OpenROAD equivalent-cell classification for sizing candidates
  • add runtime global-routing RC control and synchronize incremental OpenSTA parasitics
  • refresh global-routing parasitics after final OpenROAD repair for a reportable final timing state
  • align OpenROAD and nested OpenSTA submodule tracking branches with merge-upstream-master

Validation

  • built the updated ECC Sizer with cmake --build build-upstream-merge-ninja -- -j96
  • verified recursive submodule gitlinks and configured remotes

Notes

  • the OpenROAD build directory remains local and untracked; it is not part of this PR.

Build sizing candidate groups from OpenROAD equivalent-cell classes and add -equiv_cell_sort to choose drive-resistance or leakage ordering.

Keep non-core and Liberty-less DB instances in the design as dont-touch cells, and skip OpenSTA DB pins that do not map to Liberty ports when collecting cap/slew data.
Copilot AI lite review requested due to automatic review settings August 6, 2026 12:55
@zhaoxueyan1

Copy link
Copy Markdown
Member Author

@copilot resolve the merge conflicts in this pull request

Copilot AI 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.

Pull request overview

This PR improves ECC Sizer’s integration with OpenROAD/OpenSTA by (1) using OpenROAD equivalent-cell classes (with configurable candidate ordering) for sizing candidates, and (2) adding a -use_gr_rc mode that refreshes/synchronizes parasitics via global routing so final timing reports reflect the post-repair OpenROAD database state.

Changes:

  • Add equivalent-cell candidate sorting controls (-equiv_cell_sort) and wire them into library parsing / candidate list ordering.
  • Add global-routing RC mode (-use_gr_rc) with parasitics refresh + incremental OpenSTA update support after DB changes and after final OpenROAD repair.
  • Update docs, ignore patterns, and submodule tracking branch to align with merge-upstream-master.

Reviewed changes

Copilot reviewed 12 out of 13 changed files in this pull request and generated 3 comments.

Show a summary per file
File Description
submit/cmd_base_file Documents new command-file options for equiv-cell sorting and GR RC.
src/timer.cpp Adds OpenSTA dbNetwork usage and extra null checks when querying cap limits.
src/sizer.h Adds state + helpers for equiv-cell ordering and GR RC parasitics refresh.
src/sizer.cpp Implements equiv-cell ordering, GR RC parasitics refresh, and incremental OpenSTA update around DB changes.
src/lib_parser.cpp Switches footprint grouping to OpenROAD equiv-cell class IDs; filters unsupported/unknown ports.
src/ckt.h Updates comment to reflect runtime-controlled GR RC selection.
src/ckt.cpp Rebuilds equiv-cell mappings and updates GR/parasitics flow + OpenDB-driven design read.
src/calc.cpp Adds defensive null checks around OpenSTA liberty port lookups.
src/analyze_timing.cpp Adds dbNetwork/liberty port filtering while computing OpenSTA-based violation reports.
README.md Documents -equiv_cell_sort and -use_gr_rc, including recommended usage guidance.
.gitmodules Updates OpenROAD submodule tracking branch to merge-upstream-master.
.gitignore Ignores build-* directories.
Suppressed comments (1)

src/sizer.cpp:5520

  • getTranVio() reports transition values normalized by time_unit (ns in this codebase), but this log line labels them as ps. This makes the final report inconsistent with the WNS/TNS units printed just above and can mislead users reading the summary.
    cout << "[view " << view << "] Final Tran after runOrdTO : " << tran_tot
         << " ps " << tran_num << " " << tran_max << " ps" << endl;

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/sizer.cpp Outdated
Comment thread src/sizer.cpp Outdated
Comment thread src/ckt.cpp Outdated
@zhaoxueyan1
zhaoxueyan1 merged commit 3cb1b61 into main Aug 6, 2026
1 check passed
Copilot stopped work on behalf of zhaoxueyan1 due to an error August 6, 2026 13:06
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.

2 participants