Skip to content

est: add multi-tech/chip wire RC support#10941

Open
eder-matheus wants to merge 16 commits into
The-OpenROAD-Project:masterfrom
eder-matheus:est_3d_wire_rc
Open

est: add multi-tech/chip wire RC support#10941
eder-matheus wants to merge 16 commits into
The-OpenROAD-Project:masterfrom
eder-matheus:est_3d_wire_rc

Conversation

@eder-matheus

@eder-matheus eder-matheus commented Jul 17, 2026

Copy link
Copy Markdown
Member

Summary

Multi-tech / per-chip wire RC support for parasitics estimation, building on #10931.

Re-keys the layer RC table by dbTechLayer* instead of layer->getNumber(), moves wire RC values and signal/clock layer lists into a per-chip container (dbChip*-keyed, with a default slot preserving 2D behavior), and adds chip selectors to set_wire_rc:

  • -tech <name> (all chips on that technology)
  • -chip <name>
  • -redistribution_layer (all RDL chips; warns and no-ops when the design has none, so shared scripts work across designs).

Layer lookups for -layer/-layers resolve in the targeted chip's technology.
The multi-chip consumer of these values, the per-chip estimation loop, follows in a separate PR

Type of Change

  • New feature

Impact

2D flows are unchanged (values land in the default slot; est regression results are identical). In 3D databases, wire RC can now be set per chip/technology, which the upcoming per-chip estimation flow consumes.
Selector errors: unknown -chip name and mutually exclusive selectors are hard errors; -tech/-redistribution_layer matching no chips warn and are ignored.

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 included tests to prevent regressions.
  • I have signed my commits (DCO).

Related Issues

Follow-up to #10931.

Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
…er-chip wire RC

Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
@eder-matheus

Copy link
Copy Markdown
Member Author

@codex review

@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 support for storing and resolving wire resistance and capacitance (RC) values per chip to support 3D designs. It updates the TCL interface for set_wire_rc with new chip selectors (-tech, -chip, and -redistribution_layer), maps wire RC configurations by odb::dbChip* in the C++ backend, and adds corresponding unit tests. The review feedback highlights a redundant and potentially unsafe initialization of db_cbk_ in the constructor, a redundant map lookup and potential out-of-bounds access in layerRC, and a double lookup optimization opportunity in findWireRC when the current chip is null.

Comment thread src/est/src/EstimateParasitics.cpp Outdated
Comment thread src/est/src/EstimateParasitics.cpp Outdated
Comment thread src/est/src/EstimateParasitics.cpp Outdated

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

Copy link
Copy Markdown

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: 272d6c292b

ℹ️ 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/est/src/EstimateParasitics.cpp Outdated
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>
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>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
Signed-off-by: Eder Monteiro <emrmonteiro@precisioninno.com>
@eder-matheus
eder-matheus marked this pull request as ready for review July 17, 2026 18:32
@eder-matheus
eder-matheus requested a review from a team as a code owner July 17, 2026 18:32
Comment thread src/est/README.md Outdated
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