OpenROAD icon indicating copy to clipboard operation
OpenROAD copied to clipboard

rsz: repair_tie_fanout resulted in an undriven hierarchical input and net.

Open jhkim-pii opened this issue 1 month ago • 0 comments

Describe the bug

The current repair_tie_fanout command inserts new TIE cells for each load pin and remove the original TIE cell. This causes an undriven hierarchical input and dbModNet as follows.

Before repair_tie_fanout

           Top Level
  +------------------------------------------------------+
  |                             submodule                |
  |                            +-----------------------+ |
  |                            |                       | |
  |                            |                       | |
  |                            |   +------> [A input]  | |
  | +-----+      (modnet)      |   |                   | |
  | | TIE |------------------->+---+------> [B input]  | |
  | +-----+                    | in_port               | |
  |                            +-----------------------+ |
  |                                                      |
  +------------------------------------------------------+

Before repair_tie_fanout

           Top Level
  +------------------------------------------------------+
  |                             submodule                |
  |                            +-----------------------+ |
  |                            |                       | |
  |  --X--- (modnet)   ------->| in_port (undriven)    | |
  |         (dangling)         |                       | |
  |                            | +------+              | |
  |                            | | TIE0 |-->[A input]  | |
  |                            | +------+              | |
  |                            |                       | |
  |                            | +------+              | |
  |                            | | TIE1 |-->[B input]  | |
  |                            | +------+              | |
  |                            +-----------------------+ |
  |                                                      |
  +------------------------------------------------------+

Expected Behavior

There should be no undriven hierarchical input pin and no dangling hierarchical net.

Environment

-- OpenROAD version: v2.0-26090-g25b60dfc47
-- System name: Linux
-- Compiler: GNU 13.3.0
-- Build type: DEBUG
-- Install prefix: /usr/local
-- C++ Standard: 17
-- C++ Standard Required: ON
-- C++ Extensions: OFF
-- Performing Test C_COMPILER_SUPPORTS__-std=c++17
-- Performing Test C_COMPILER_SUPPORTS__-std=c++17 - Failed
-- Performing Test CXX_COMPILER_SUPPORTS__-std=c++17
-- Performing Test CXX_COMPILER_SUPPORTS__-std=c++17 - Success
-- Found Python3: /usr/bin/python3.12 (found version "3.12.3") found components: Interpreter
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- TCL readline library: /usr/lib/x86_64-linux-gnu/libtclreadline.so
-- TCL readline header: /usr/include/x86_64-linux-gnu
-- Found SWIG: /usr/local/bin/swig (found suitable version "4.3.0", minimum required is "4.0")
-- Using SWIG >= 4.3.0 -flatstaticmethod flag for python
-- boost: 1.86.0
-- GTest: 1.13.0
-- Found Python3: /usr/include/python3.12 (found version "3.12.3") found components: Development Development.Module Development.Embed
-- spdlog: 1.15.0
-- STA version: 2.7.0
-- STA git sha: 19202ac93331f547fa16f7c4697e573cb513842b
-- System name: Linux
-- Compiler: GNU 13.3.0
-- Build type: DEBUG
-- Build CXX_FLAGS: -g
-- Install prefix: /usr/local
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- TCL readline library: /usr/lib/x86_64-linux-gnu/libtclreadline.so
-- TCL readline header: /usr/include/x86_64-linux-gnu/tclreadline.h
-- CUDD library: /usr/local/lib/libcudd.a
-- CUDD header: /usr/local/include/cudd.h
-- SSTA: 0
-- Found SWIG: /usr/local/bin/swig (found suitable version "4.3.0", minimum required is "3.0")
-- STA library: /workspace/ws1/OpenROAD-flow-scripts/tools/OpenROAD/build/libOpenSTA.a
-- STA executable: /workspace/ws1/OpenROAD-flow-scripts/tools/OpenROAD/build/sta
-- Found OR-Tools: /opt/or-tools/lib/cmake/ortools (version: 9.11.4210)
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- Found OpenMP: TRUE (found version "4.5")
-- Found OpenMP: TRUE (found version "4.5")
-- GUI is enabled
-- Could NOT find VTune (missing: VTune_LIBRARIES VTune_INCLUDE_DIRS) 
-- TCL library: /usr/lib/x86_64-linux-gnu/libtcl.so
-- TCL header: /usr/include/tcl/tcl.h
-- TCL readline enabled
-- Tcl Extended disabled
-- Python3 enabled
-- Configuring done (1.8s)
-- Generating done (0.6s)

To Reproduce

make DESIGN_CONFIG=./designs/nangate45/bp_be_top/config.mk OPENROAD_HIERARCHICAL=1

LOGIC0_X1 _4269_ (.Z(_2062_)); will be removed and produce the case.

Relevant log output


Screenshots

No response

Additional Context

No response

jhkim-pii avatar Nov 11 '25 04:11 jhkim-pii