Skip to content

Add ioplacer#6

Merged
mpfogaca merged 7 commits into
The-OpenROAD-Project:developfrom
mpfogaca:add_ioplacer
Dec 3, 2019
Merged

Add ioplacer#6
mpfogaca merged 7 commits into
The-OpenROAD-Project:developfrom
mpfogaca:add_ioplacer

Conversation

@mpfogaca
Copy link
Copy Markdown
Contributor

@mpfogaca mpfogaca commented Dec 2, 2019

Integrates ioPlacer into OpenRoad app

@tspyrou tspyrou requested a review from jjcherry56 December 3, 2019 18:26
@tspyrou
Copy link
Copy Markdown
Contributor

tspyrou commented Dec 3, 2019

I don't see code for the top level tcl command, I think we should call it place_io

@mpfogaca
Copy link
Copy Markdown
Contributor Author

mpfogaca commented Dec 3, 2019

Hi, Tom.

The top level command is in ioPlacer.tcl
https://github.com/The-OpenROAD-Project/ioPlacer/blob/openroad_app/src/ioPlacer.tcl

We are currently calling run_io_placement. I can rename it if you want.

Thanks,
--Mateus

@mpfogaca mpfogaca closed this Dec 3, 2019
@mpfogaca
Copy link
Copy Markdown
Contributor Author

mpfogaca commented Dec 3, 2019

Sorry, I accidentally closed the pull request..

@mpfogaca mpfogaca reopened this Dec 3, 2019
@tspyrou
Copy link
Copy Markdown
Contributor

tspyrou commented Dec 3, 2019

Got it thanks. Go ahead and merge this to develop. If cherry has any comments we can make an update later. It looks pretty clean to me.

@tspyrou tspyrou self-requested a review December 3, 2019 20:56
@mpfogaca mpfogaca merged commit d9c9d9a into The-OpenROAD-Project:develop Dec 3, 2019
@jjcherry56
Copy link
Copy Markdown
Contributor

jjcherry56 commented Dec 4, 2019 via email

@rovinski
Copy link
Copy Markdown
Collaborator

rovinski commented Dec 4, 2019

Re: tcl command name: maybe we can use "place_io"? It is the Avatar-sanctioned command name. I also agree that the repository name should probably drop "lefdef" at this point.

tspyrou pushed a commit that referenced this pull request Sep 10, 2020
javathunderman added a commit to VLSIDA/OpenROAD that referenced this pull request Jun 11, 2025
gudeh pushed a commit to gudeh/OpenROAD that referenced this pull request Sep 29, 2025
…rivate/dpl-eol-spacing

Support LEF58_SPACING ENDOFLINE in DPL&DPO
areporeporepo added a commit to areporeporepo/OpenROAD that referenced this pull request Apr 9, 2026
Follow Google C++ style and Coding Practice The-OpenROAD-Project#6 ("Don't name variables
theThingy, curThingy or myThingy"):

- Rename the curRule member in lefTechLayerMinStepParser,
  lefTechLayerCutSpacingParser, and lefTechLayerCutSpacingTableParser
  to rule.
- Rename local variables in lefTechLayerCutSpacingParser.cpp to
  snake_case: secondLayer, twocuts, className, sideParallelNoPrl,
  sameMask, cutClassName, cutClass, exceptWhat, numCut, aboveBelow,
  and the ALL_CAPS locals ABOVE, CUTCLASS, EXCEPTTWOEDGES,
  EXCEPTSAMEVIA that matched LEF keyword names.
- In lefTechLayerCutSpacingTableParser::createOrthongonalSubRule,
  rename the local rule (OrthRule) to orth_rule to avoid name
  shadowing after the curRule member rename.

Pure refactor. No behavior change. LEF58 keyword string literals
inside lit() are untouched.

Fixes The-OpenROAD-Project#2275

Signed-off-by: anh nguyen <areporeporepo@users.noreply.github.com>
RamboJHB pushed a commit to RamboJHB/OpenROAD that referenced this pull request May 8, 2026
Number every PG-DRC code change in the order data flows from the
user-facing Tcl flag down to the FlexGC checks, so a reader can grep
for [PG-DRC #1] .. [PG-DRC The-OpenROAD-Project#11] and walk the chain end to end:

  #1  TritonRoute.tcl          -- parse -check_pg_nets
  The-OpenROAD-Project#2  TritonRoute.i            -- SWIG bridge
  The-OpenROAD-Project#3  TritonRoute.h            -- public API param
  The-OpenROAD-Project#4  TritonRoute.cpp          -- write router_cfg_->CHECK_PG_NETS
  The-OpenROAD-Project#5  global.h                 -- RouterConfiguration field
  The-OpenROAD-Project#6  serialization.h          -- distributed-worker serialization
  The-OpenROAD-Project#7  frRegionQuery.cpp        -- feed PG snets to drObjs rtree
  The-OpenROAD-Project#8  FlexGC_init.cpp          -- skip PG in fixed-obstacle pass
  The-OpenROAD-Project#9  FlexGC_cut.cpp           -- gate via-table supply-skip
  The-OpenROAD-Project#10 drc_test_pg.tcl          -- end-to-end smoke regression
  The-OpenROAD-Project#11 CMakeLists.txt / BUILD   -- register test in both build systems

Also document why FlexGCWorker::Impl::checkCutSpacing_spc() is
deliberately left alone: that skip honors LEF SAMENETPGONLY and must
keep exempting same-PG-net cuts even when PG DRC is on.

Signed-off-by: Claude <noreply@anthropic.com>
RamboJHB pushed a commit to RamboJHB/OpenROAD that referenced this pull request May 8, 2026
…cfg field

Previous version stashed CHECK_PG_NETS in RouterConfiguration so every
downstream stage could read it via router_cfg_. That made the flag a
hidden global: it lived for the lifetime of the router, would persist
across calls, and forced a serialization entry for distributed
workers. Refactor to plumb the bool as an explicit parameter end to
end so PG checking happens only when, and exactly where, the user
asks for it.

  - Drop RouterConfiguration::CHECK_PG_NETS and its serialize line.
  - frRegionQuery::initDRObj gains an include_pg_nets bool (default
    false). All routing/repair callers keep the default; only
    TritonRoute::checkDRC passes true when -check_pg_nets is set.
  - FlexGCWorker gets setCheckPgNets(bool) + Impl::checkPgNets_;
    FlexGC_init.cpp / FlexGC_cut.cpp read the worker member instead
    of router_cfg_.
  - TritonRoute::getDRCMarkers takes the bool and forwards it to
    each FlexGCWorker before init.
  - TritonRoute::checkDRC body re-runs initDRObj(true) only when the
    flag is on (idempotent rebuild) and forwards the bool to
    getDRCMarkers; default check_drc and the routing flow are
    bit-identical to before.

Renumber [PG-DRC #N] markers to follow the new linear chain (#1..The-OpenROAD-Project#10):
  #1  Tcl flag parse
  The-OpenROAD-Project#2  SWIG bridge
  The-OpenROAD-Project#3  TritonRoute::checkDRC declaration
  The-OpenROAD-Project#4  TritonRoute::checkDRC body -> initDRObj(true)
  The-OpenROAD-Project#5  frRegionQuery::Impl::initDRObj feeds PG to drObjs
  The-OpenROAD-Project#6  TritonRoute::getDRCMarkers + FlexGCWorker::setCheckPgNets / member
  The-OpenROAD-Project#7  FlexGCWorker::Impl::initDesign obstacle-pass skip
  The-OpenROAD-Project#8  FlexGCWorker::Impl::checkMetalWidthViaTable supply-skip gate
  The-OpenROAD-Project#9  drc_test_pg.tcl smoke regression
  The-OpenROAD-Project#10 CMakeLists.txt / BUILD registration

Signed-off-by: Claude <noreply@anthropic.com>
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.

4 participants