The-OpenROAD-Project / The-OpenROAD-Project/OpenROAD
lefout does not write OBS SPACING / DESIGNRULEWIDTH modifiers
Nobody has claimed this yet.
- Dominant language
- Verilog
- Stars
- 3.1k
- Forks
- 1k
- Avg merge
- 2d 23h
- Merged PRs (30d)
- 136
Description
lefout does not emit the OBS SPACING (or DESIGNRULEWIDTH) modifiers, so a LEF read followed by a LEF write loses the per-box min_spacing_ / design_rule_width_ values stored on dbBox.
getDesignRuleWidth/getMinSpacing are only consumed in src/odb/src/db/; nothing in src/odb/src/lefout/lefout.cpp writes them back out.
Effect: round-trip (read LEF -> write LEF) drops the OBS spacing modifiers. Pre-existing for DESIGNRULEWIDTH; SPACING added in #10856 has the same gap.
Fix: emit the modifiers when writing OBS geometry in lefout.
Follow-up to #10856.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in src/odb/src/lefout/lefout.cpp, where OBS geometry is written, and inspect how dbBox values are available through src/odb/src/db/. Trace getMinSpacing and getDesignRuleWidth, then verify a LEF read followed by a write preserves per-box OBS SPACING and DESIGNRULEWIDTH modifiers.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- databases
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 72/100