Skip to content

odb: add dbCorner and add/removal APIs#10758

Open
AcKoucher wants to merge 3 commits into
The-OpenROAD-Project:masterfrom
AcKoucher:odb-corner
Open

odb: add dbCorner and add/removal APIs#10758
AcKoucher wants to merge 3 commits into
The-OpenROAD-Project:masterfrom
AcKoucher:odb-corner

Conversation

@AcKoucher

Copy link
Copy Markdown
Contributor

Summary

Adds the object which will hold the information regarding each process corner. With this, tools like RCX will only need to consume the ODB data rather than expecting user input.

Type of Change

  • New feature

Impact

None (yet).

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

None.

Signed-off-by: Arthur Koucher <arthurkoucher@precisioninno.com>
@AcKoucher AcKoucher requested a review from a team as a code owner June 26, 2026 00:11
@AcKoucher AcKoucher requested a review from osamahammad21 June 26, 2026 00:11

@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 the dbCorner database object to represent process corners within a dbBlock, along with corresponding Tcl commands (add_corner, remove_corner, remove_corners) and C++ unit tests. The reviewer's feedback highlights several important improvements: adding a safety check in dbBlock::removeCorner to prevent undefined behavior when erasing a non-existent corner, validating against empty corner names during creation, and strengthening Tcl argument parsing and validation to ensure robust command execution.

Comment thread src/odb/src/db/dbBlock.cpp Outdated
Comment thread src/odb/src/db/dbCorner.cpp
Comment thread src/odb/src/swig/tcl/odb.tcl
Comment thread src/odb/src/swig/tcl/odb.tcl
Comment thread src/odb/src/swig/tcl/odb.tcl
    1) Check input strings in .tcl for correct number of arguments
    2) Check for empty name and add test for coverage
    3) Re-generate correctly without --keep_empty
    4) Re-golden read me message count
    5) Remove includes that were not used directly

Signed-off-by: Arthur Koucher <arthurkoucher@precisioninno.com>
@AcKoucher AcKoucher requested a review from eder-matheus June 26, 2026 18:13
@eder-matheus

Copy link
Copy Markdown
Member

@codex review

@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: 2bb8aef5dc

ℹ️ 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/odb/src/db/dbCorner.cpp
Comment thread src/odb/src/db/dbCorner.cpp
    1) Move the add/remove corner logic into dbCorner::create/destroy
       and delete dbBlock::addCorner/removeCorner
    2) Destroy attached properties before freeing the object in destroy
       and removeCorners
    3) Update TestCorner to the factory API

Signed-off-by: Arthur Koucher <arthurkoucher@precisioninno.com>
@AcKoucher AcKoucher requested a review from maliberty June 26, 2026 19:54
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