Skip to content

rcx: adds support for 3D-IC extraction - #11124

Draft
AcKoucher wants to merge 3 commits into
The-OpenROAD-Project:masterfrom
AcKoucher:rcx-multi-chip
Draft

rcx: adds support for 3D-IC extraction#11124
AcKoucher wants to merge 3 commits into
The-OpenROAD-Project:masterfrom
AcKoucher:rcx-multi-chip

Conversation

@AcKoucher

Copy link
Copy Markdown
Contributor

Summary

Resolve #11005.

This PR adds support for parasitics extraction on 3D-IC (hierarchical) designs.

extract_parasitics extracts each die using the extraction rules set for its technology, then extracts the inter-chip parasitics using the assembly design kit rules. Each bond between two dies is modeled as a resistor connecting the boundary terminals of the bonded bumps.

write_spef writes one SPEF file per die plus an additional file with the inter-chip parasitics.

Current constraints:

  • Only the v1 RC flow is supported.
  • A single process corner is extracted.
  • RDL chips are not supported.
  • Nets bonding more than two bumps are not supported.
  • Bump capacitance is considered negligible; bonds contribute resistance only.

Type of Change

  • New feature
  • Documentation update

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: Arthur Koucher <arthurkoucher@precisioninno.com>
Signed-off-by: Arthur Koucher <arthurkoucher@precisioninno.com>
@AcKoucher
AcKoucher requested a review from a team as a code owner August 11, 2026 20:36
@AcKoucher
AcKoucher requested a review from maliberty August 11, 2026 20:36

@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 implements 3D parasitic extraction and SPEF writing for multi-chip designs in the rcx tool, introducing a parser for inter-chip assembly rules and updating the extractor and SPEF writer to handle multiple dies and inter-chip bonds. The review feedback focuses on improving robustness, highlighting potential null pointer dereferences, missing early returns on file-open failures, unhandled stream extraction errors, and unsafe map lookups.

Comment thread src/rcx/src/multiChipExtractor.cpp
Comment thread src/rcx/src/multiChipExtractor.cpp Outdated
Comment thread src/rcx/src/multiChipExtractor.cpp
Comment thread src/rcx/src/multiChipSpefWriter.cpp
Comment thread src/rcx/src/multiChipSpefWriter.cpp Outdated
Comment thread src/rcx/src/multiChipSpefWriter.cpp
Comment thread src/rcx/src/interChipModel.cpp
Comment thread src/rcx/src/interChipModel.cpp
1) Guard the block null check instead of the always-created auxiliary extractor
2) Pass the logger to pinDirection and error on a missing boundary terminal
3) Sort interChipModel entries in BUILD

Signed-off-by: Arthur Koucher <arthurkoucher@precisioninno.com>
@AcKoucher

Copy link
Copy Markdown
Contributor Author

I'm marking this as a draft until we're done with our internal tests.

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.

RCX should have an initial basic support for 3D-IC extraction

1 participant