Skip to content

fix(drc): preserve violations in nested report categories - #4696

Open
jinchuntan wants to merge 1 commit into
The-OpenROAD-Project:masterfrom
jinchuntan:fix/hierarchical-drc-categories
Open

jinchuntan wants to merge 1 commit into
The-OpenROAD-Project:masterfrom
jinchuntan:fix/hierarchical-drc-categories

Conversation

@jinchuntan

Copy link
Copy Markdown

The converter only visited the top level of a KLayout report database. Violations stored in child categories were left out of the JSON output.

It now walks the full category tree and uses KLayout category paths to keep rule names distinct. This also separates a literal dotted name from a nested category with the same text.

Added three regressions for repeated leaf names and deeper nesting and dotted name collisions. All 10 converter tests pass. Black passes for both changed files.

A saved and reloaded report created with KLayout 0.30.12 contains three violations. The original converter exports one and the fix exports all three with their shapes and comments.

The broader utility checks cover 94 cases with 92 passing and one skipped because Yosys is unavailable. The process visibility test fails in this workspace as it also does on unchanged master at 7bcaf47.

A full layout DRC run was not performed.

Prepared with Codex assistance.

Traverse child categories when converting a KLayout report database.

Use canonical category paths so rules with the same leaf name and literal dotted names remain distinct.

Add regressions for sibling rule names and deeper nesting and a flat name that overlaps a nested path.

Prepared with Codex assistance.

Signed-off-by: Nigel Tan <nigeltanjc@gmail.com>

@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 updates the KLayout DRC conversion utility to recursively traverse nested categories and use the category path instead of its name as the key in the output dictionary. This prevents categories with identical names in different paths from overwriting each other. Unit tests have been added and updated to verify the nested category traversal and path-based keying. There are no review comments to address.

@openroad-ci

Copy link
Copy Markdown
Member

🔍 QoR check

Metrics reflect the PR merge build — i.e. what will land on the target branch.

Commit 8cf3706 · Jenkins build #1 · Baseline: build · View build on dashboard

62 design(s) checked — 0 with regression(s), 0 without a comparable baseline.

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