OpenROAD
OpenROAD copied to clipboard
rsz: repair_tie_fanout resulted in an undriven hierarchical input and net.
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