Skip to content

est: check if delay calculator supports reduceParasitics#10554

Open
eder-matheus wants to merge 9 commits into
The-OpenROAD-Project:masterfrom
eder-matheus:est_check_delay_calc
Open

est: check if delay calculator supports reduceParasitics#10554
eder-matheus wants to merge 9 commits into
The-OpenROAD-Project:masterfrom
eder-matheus:est_check_delay_calc

Conversation

@eder-matheus
Copy link
Copy Markdown
Member

Summary

Updated placement and routing parasitics estimation with checks for delay calculator support for reduce parasitics. This is especially important when using STA's set_delay_calculator prima and CCS libraries.

Type of Change

  • Bug fix

Impact

Correct parasitics estimation for CCS designs.

Verification

  • I have verified that the local build succeeds (./etc/Build.sh).
  • I have run the relevant tests and they pass.
  • My code follows the repository's formatting guidelines.
  • I have signed my commits (DCO).

Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
@eder-matheus eder-matheus requested a review from a team as a code owner May 29, 2026 15:44
@eder-matheus eder-matheus requested a review from maliberty May 29, 2026 15:44
Copy link
Copy Markdown
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 wraps parasitic reduction and deletion calls inside a check to arc_delay_calc_->reduceSupported(). The reviewer recommends also checking if arc_delay_calc_ is not null before calling reduceSupported() to prevent potential null pointer dereferences.

Comment thread src/est/src/EstimateParasitics.cpp
Comment thread src/est/src/EstimateParasitics.cpp
Comment thread src/est/src/MakeWireParasitics.cpp
Comment thread src/est/src/MakeWireParasitics.cpp
@eder-matheus
Copy link
Copy Markdown
Member Author

CI is running.

Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Avoids a singular conductance matrix in delay calculators that solve
the parasitic network directly (Prima/CCS) when a pin coincides with
its grid node. Matches the 1 mOhm floor convention already used by
other resistors in this file.

Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Both getPlanarRoute and get3DRoute emit GSegments per Steiner edge
independently. At branch points where two edges arrive on different
layers, no bridging via is emitted, leaving the GRoute electrically
disconnected at that XY -- pi-Elmore reducers absorb this silently
but delay calculators that solve the parasitic network directly
(Prima/CCS) see disconnected sub-trees and fail with a singular
conductance matrix.

Track the layer last committed at each XY in the emitted route and
add an explicit via when a later edge arrives on a different layer.

Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
@eder-matheus eder-matheus requested a review from a team as a code owner May 30, 2026 00:13
@eder-matheus eder-matheus requested a review from jfgava May 30, 2026 00:13
@github-actions github-actions Bot added size/M and removed size/S labels May 30, 2026
@eder-matheus
Copy link
Copy Markdown
Member Author

@codex review

Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 0a9153c344

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread src/grt/src/fastroute/src/FastRoute.cpp Outdated
bridge_and_record (in both getPlanarRoute and get3DRoute) emitted a
single via segment whenever the recorded and new layers differed, which
produces a non-physical multi-cut-layer via at Steiner points where one
edge already laid down a full via stack. The route writer rejects such
segments with GRT-75. Guard the bridge emission on adjacent-layer gaps
only; wider gaps are covered by the existing stack.

Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants