Skip to content

dbSta: SpefReader name-escape regression for DEF+SPEF flow + OpenSTA submodule bump#10298

Merged
maliberty merged 6 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:resolve_spef_def
May 1, 2026
Merged

dbSta: SpefReader name-escape regression for DEF+SPEF flow + OpenSTA submodule bump#10298
maliberty merged 6 commits into
The-OpenROAD-Project:masterfrom
The-OpenROAD-Project-staging:resolve_spef_def

Conversation

@openroad-ci

Copy link
Copy Markdown
Collaborator

Summary

Bumps the OpenSTA submodule to pick up
The-OpenROAD-Project/OpenSTA#356 ,
which adds flat-name fallbacks in SpefReader::findInstanceRelative / findNetRelative.
Adds a regression in src/dbSta/test/ that exercises the fix end-to-end.

Motivation

read_def followed by read_spef produces hundreds to thousands of
spurious STA-1648 instance ... not found and STA-1650 net ... not found warnings on real designs whose flat netlist contains:

  • post-CTS / post-ECO instance names with a literal / in the leaf
    (e.g. u_sx1_iq/g1496206), where OpenDB stores the verbatim DEF
    string but Network::findInstanceRelative interprets the / as a
    hierarchy boundary;
  • bus-bit names (bus[0]) where OpenDB stores [0] literally but the
    SPEF writer follows the SPEF grammar and emits bus\[0\].

On a customer testcase (~772k components), this accounted for >1k
spurious STA-1648 warnings; the upstream fix drops that to zero.

Type of Change

  • Regression

Impact

[How does this change the tool's behavior?]

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

[Link issues here]

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
@github-actions

Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@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 adds a regression test, spef_def_names, to verify SpefReader name-escape lookups for netlists defined in DEF files. The update includes new test assets (DEF, SPEF, TCL), expected output, and build system integration in BUILD and CMakeLists.txt, alongside a subproject commit update for sta. The reviewer recommended sorting the test lists alphabetically in the build files to enhance maintainability.

Comment thread src/dbSta/test/BUILD Outdated
"sta3",
"sta4",
"sta5",
"spef_def_names",

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.

medium

The test list in ALL_TESTS is not sorted alphabetically. While not strictly required, maintaining an alphabetical order improves maintainability and makes it easier to locate tests.

Comment thread src/dbSta/test/CMakeLists.txt Outdated
sta3
sta4
sta5
spef_def_names

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.

medium

The test list in or_integration_tests is not sorted alphabetically. Maintaining alphabetical order improves maintainability.

@github-actions

Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
@github-actions

Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
@github-actions

Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@dsengupta0628

Copy link
Copy Markdown
Contributor

Signed-off-by: dsengupta0628 <dsengupta@precisioninno.com>
@github-actions

Copy link
Copy Markdown
Contributor

clang-tidy review says "All clean, LGTM! 👍"

@maliberty maliberty merged commit d87cb90 into The-OpenROAD-Project:master May 1, 2026
16 checks passed
@maliberty maliberty deleted the resolve_spef_def branch May 1, 2026 02:48
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.

3 participants