The-OpenROAD-Project / The-OpenROAD-Project/OpenROAD

OBS POLYGON geometry drops LEF SPACING modifier

Open
#11,026 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Verilog
Stars
3.1k
Forks
1k
Avg merge
2d 23h
Merged PRs (30d)
136

Description

OBS geometry declared as POLYGON does not pick up the LEF SPACING modifier.

In src/odb/src/lefin/lefin.cpp, create_path_box and the RECT paths were updated to thread minSpacing through to dbBox::setMinSpacing (see #10856), but createPolygon was not. dbPolygon also has no min_spacing_ field analogous to design_rule_width_.

Effect: an obstruction written as

LAYER metalX SPACING v ;
  POLYGON ... ;

silently loses the spacing override for polygon geometry. RECT and PATH work.

Fix: add min_spacing_ to dbPolygon (getter/setter/serialization) and thread minSpacing into lefinReader::createPolygon, or log that polygon OBS spacing is unsupported.

Follow-up to #10856.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in src/odb/src/lefin/lefin.cpp at createPolygon and compare its handling with create_path_box and the RECT paths from #10856. Follow dbPolygon to add the min-spacing support and serialization, then verify that POLYGON OBS geometry preserves the LEF SPACING value like RECT and PATH geometry.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
database
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
74/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.