Add ioplacer#6
Merged
Merged
Conversation
Contributor
|
I don't see code for the top level tcl command, I think we should call it place_io |
Contributor
Author
|
Hi, Tom. The top level command is in ioPlacer.tcl We are currently calling run_io_placement. I can rename it if you want. Thanks, |
Contributor
Author
|
Sorry, I accidentally closed the pull request.. |
Contributor
|
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
approved these changes
Dec 3, 2019
Contributor
|
This is a major enough change I really think it should have been done on a
branch for review before merging it into the main development branch.
I would really like to see boost and OpenMP dependence removed.
At this point I cannot build OpenROAD on OSX because of these dependencies.
I just removed similar pointless dependencies in replace.
................
does ioplace really need OpenMP?
I cannot imagine there is enough computation in io placement to warrent
using multiple threads.
................
this may look pretty:
sta::define_cmd_args "run_io_placement" {[-hor_layer h_layer] \
[-ver_layer v_layer] \
[-random] \
}
but it messes up the help command output.
remove extra spaces
sta::define_cmd_args "run_io_placement" {[-hor_layer h_layer]\
[-ver_layer v_layer]\
[-random]\
}
....
8 space indentation is super ugly and assumes very wide editor screens.
Use 2 spaces.
proc run_io_placement { args } {
sta::parse_key_args "run_io_placement" args \
keys {-hor_layer -ver_layer} flags {-random}
if { [info exists flags(-random)] } {
ioPlacer::set_rand_seed 42
ioPlacer::set_random_mode 2
}
....
I am no fan of "run_io_placement" as a command name.
i suggest "place_io_pins".
....
There is no excuse to use a cast here:
ioPlacer_ = (ioPlacer::IOPlacementKernel*) makeIoplacer();
return the right type
Do you see any of the other examples doing casts? Of course not.
....
why is the repo called "FastRoute4-lefdef"?
It is way too verbose and does NOT even use lefdef anymore.
…On Tue, Dec 3, 2019 at 1:13 PM Mateus Fogaça ***@***.***> wrote:
Merged #6 <#6> into
develop.
—
You are receiving this because your review was requested.
Reply to this email directly, view it on GitHub
<#6?email_source=notifications&email_token=AIJDZFPONOLJCXO5VF7AEIDQW3DV5A5CNFSM4JUK5572YY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORPWSZGOVH4RELY#event-2851672623>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AIJDZFKMQP37Q3INPYJLLKDQW3DV5ANCNFSM4JUK557Q>
.
|
Collaborator
|
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
Grid creation, pulling in @olonkar29's changes
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Integrates ioPlacer into OpenRoad app