feat: synchronize OpenROAD timing and parasitics - #5
Merged
Conversation
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.
Member
Author
|
@copilot resolve the merge conflicts in this pull request |
Contributor
There was a problem hiding this comment.
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 bytime_unit(ns in this codebase), but this log line labels them asps. 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.
Co-authored-by: Copilot Autofix powered by AI <[email protected]>
Co-authored-by: Copilot Autofix powered by AI <[email protected]>
Co-authored-by: Copilot Autofix powered by AI <[email protected]>
Copilot stopped work on behalf of
zhaoxueyan1 due to an error
August 6, 2026 13:06
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
merge-upstream-masterValidation
cmake --build build-upstream-merge-ninja -- -j96Notes