Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions flow/scripts/floorplan.tcl
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,6 @@ if { !$::env(SKIP_REPAIR_TIE_FANOUT) } {
}

if { [env_var_exists_and_non_empty SWAP_ARITH_OPERATORS] } {
log_cmd estimate_parasitics -placement
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Unplaced at this stage.

replace_arith_modules
}

Expand All @@ -139,7 +138,7 @@ if { $::env(REMOVE_ABC_BUFFERS) } {
remove_buffers
} else {
# Skip clone & split
repair_timing_helper -setup -skip_last_gasp -sequence "unbuffer,sizeup,swap,buffer,vt_swap"
repair_timing_helper -setup -skip_last_gasp -sequence "unbuffer,sizeup,swap,vt_swap"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@povik I removed buffer strategy here because buffering was not performed since cells are unplaced. Do you think that we should use gain-based buffering in floorplan stage rather than skipping the buffering?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We remove buffers at 3_2 so any buffering we do at floorplan will be short-lived. Perhaps it's useful to do it anyway to get a more accurate timing report and to guide other resizer operations which look at timing. Matt and I have discussed this a couple of times but never did any changes as it always seemed low priority.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for sharing.
Then the buffering in floorplan stage may require a sufficient research to make it valuable.
IMO, removing the buffer strategy looks better for now.

@precisionmoon @maliberty Any other thoughts?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it currently does little as most moves abort when there is no placement. If a secure CI confirms I am ok to remove it. The original thought was to use gain-based buffering here.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK. Then let's merge this PR after resolving the merge conflict caused by MCMM update.

I'll check if the gain-based buffering in floorplan stage is meaningful gain or not, and open a new PR if it shows meaningful gain.

}

puts "Default units for flow"
Expand Down
2 changes: 1 addition & 1 deletion tools/OpenROAD
Submodule OpenROAD updated 88 files
+6 −6 .bazelrc
+3 −0 BUILD.bazel
+5 −3 CMakeLists.txt
+4 −7 MODULE.bazel
+3 −3 MODULE.bazel.lock
+53 −49 default.nix
+4 −4 flake.lock
+39 −31 flake.nix
+3 −1 include/ord/Design.h
+4 −1 src/CMakeLists.txt
+5 −3 src/Design.cc
+4 −1 src/OpenRoad.cc
+1 −0 src/ant/BUILD
+6 −6 src/ant/src/AntennaChecker.cc
+2 −2 src/ant/src/AntennaCheckerImpl.hh
+1 −0 src/ant/src/CMakeLists.txt
+1 −0 src/dbSta/BUILD
+0 −1 src/dbSta/test/cpp/TestHconn.cpp
+1 −0 src/dpl/README.md
+9 −2 src/dpl/include/dpl/Opendp.h
+89 −4 src/dpl/src/Opendp.cpp
+8 −4 src/dpl/src/Opendp.i
+7 −4 src/dpl/src/Opendp.tcl
+130 −30 src/dpl/src/Place.cpp
+57 −3 src/dpl/src/graphics/Graphics.cpp
+3 −1 src/dpl/src/graphics/Graphics.h
+1 −1 src/dpl/src/optimization/detailed_global_legacy.cxx
+2 −0 src/drt/BUILD
+1 −0 src/drt/CMakeLists.txt
+2 −2 src/drt/include/drt/TritonRoute.h
+3 −3 src/drt/src/TritonRoute.cpp
+0 −1 src/drt/src/distributed/RoutingCallBack.h
+1 −0 src/dst/BUILD
+1 −0 src/dst/CMakeLists.txt
+4 −4 src/dst/src/BalancerConnection.cc
+7 −7 src/dst/src/LoadBalancer.cc
+3 −3 src/dst/src/LoadBalancer.h
+1 −1 src/gpl/test/BUILD
+2 −0 src/gui/BUILD
+6 −5 src/gui/CMakeLists.txt
+2 −2 src/gui/include/gui/heatMap.h
+2 −2 src/gui/src/heatMap.cpp
+2 −2 src/gui/src/renderThread.cpp
+2 −2 src/gui/src/renderThread.h
+16 −15 src/gui/src/scriptWidget.cpp
+2 −2 src/gui/src/scriptWidget.h
+8 −8 src/gui/src/search.cpp
+8 −8 src/gui/src/search.h
+5 −5 src/gui/src/staGui.cpp
+2 −2 src/gui/src/staGui.h
+5 −0 src/mpl/src/clusterEngine.cpp
+10 −3 src/mpl/src/hier_rtlmp.cpp
+9 −0 src/mpl/src/object.cpp
+3 −0 src/odb/BUILD
+1 −0 src/odb/CMakeLists.txt
+3 −2 src/odb/include/odb/defin.h
+2 −2 src/odb/include/odb/lefin.h
+26 −0 src/odb/src/3dblox/checker.cpp
+2 −0 src/odb/src/3dblox/checker.h
+5 −5 src/odb/src/db/dbDatabase.cpp
+5 −3 src/odb/src/defin/defin.cpp
+10 −8 src/odb/src/lefin/lefin.cpp
+80 −38 src/odb/test/cpp/Test3DBloxChecker.cpp
+2 −0 src/rmp/BUILD
+1 −0 src/rmp/src/CMakeLists.txt
+5 −3 src/rmp/src/delay_optimization_strategy.cpp
+344 −1,405 src/rsz/test/clone_flat.ok
+1 −2 src/rsz/test/clone_flat.tcl
+881 −277 src/rsz/test/clone_flat_out.vok
+1,113 −0 src/rsz/test/clone_hier.def
+408 −1,405 src/rsz/test/clone_hier.ok
+1 −8 src/rsz/test/clone_hier.tcl
+201 −185 src/rsz/test/clone_hier_out.vok
+0 −1 src/rsz/test/cpp/TestBufferRemoval.cc
+1,465 −0 src/rsz/test/gcd_asap7_placed.def
+255 −343 src/rsz/test/repair_setup_vt_swap2.ok
+3 −2 src/rsz/test/repair_setup_vt_swap2.tcl
+1 −2 src/utl/BUILD
+3 −2 src/utl/CMakeLists.txt
+2 −2 src/utl/include/utl/CFileUtils.h
+3 −2 src/utl/include/utl/Progress.h
+4 −3 src/utl/include/utl/exception.h
+6 −6 src/utl/include/utl/prometheus/family.h
+4 −4 src/utl/include/utl/prometheus/registry.h
+4 −4 src/utl/include/utl/prometheus/summary.h
+2 −1 src/utl/src/CFileUtils.cpp
+6 −6 src/utl/src/Progress.cpp
+7 −7 test/orfs/gcd/rules-base.json