Skip to content

dcalc: Restore TwoPole parasitic reduction - #407

Open
jhkim-pii wants to merge 2 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:secure-fix-two-pole-dcalc
Open

dcalc: Restore TwoPole parasitic reduction#407
jhkim-pii wants to merge 2 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:secure-fix-two-pole-dcalc

Conversation

@jhkim-pii

Copy link
Copy Markdown
Contributor

Summary

  • Restore calculator-specific PiPoleResidue2 reduction for dmp_ceff_two_pole.

Problem

  • The parasitics API migration removed the TwoPole reduced-type selector without adding the equivalent reduceParasitic override.
  • Eager reduction therefore inherited LumpedCapDelayCalc and produced PiElmore, leaving TwoPole without pole/residue data after the detailed network was deleted.

Solution

  • Override DmpCeffTwoPoleDelayCalc::reduceParasitic to call reduceToPiPoleResidue2.
  • Keep the inherited net-level reduction overload visible for generic callers.
  • Add a regression that reduces a detailed SPEF network and verifies the result is PiPoleResidue.

Impact

  • TwoPole consumers receive the parasitic representation required by their load-delay model.
  • DMP Ceff Elmore reduction remains unchanged.

Related

Override the TwoPole reduction hook so eager parasitic reduction creates PiPoleResidue2 instead of inheriting the PiElmore implementation. This restores calculator-specific dispatch for placement and reduced SPEF paths.

Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
Exercise eager reduction on a detailed SPEF network and verify dmp_ceff_two_pole returns a PiPoleResidue model. This prevents the calculator from silently inheriting PiElmore reduction again.

Signed-off-by: Jaehyun Kim <jhkim@precisioninno.com>
@jhkim-pii jhkim-pii self-assigned this Aug 26, 2026

@gemini-code-assist gemini-code-assist 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.

Code Review

This pull request implements the reduceParasitic method in DmpCeffTwoPoleDelayCalc to reduce a parasitic network to a Pi-pole residue, and adds a corresponding unit test to verify this functionality. The feedback suggests adding a null check for the parasitics pointer retrieved from the scene to prevent a potential null pointer dereference before calling reduceToPiPoleResidue2.

Comment thread dcalc/DmpDelayCalc.cc
Comment thread dcalc/DmpDelayCalc.cc
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