OpenROAD
OpenROAD copied to clipboard
rtl_macro_placer crashes when only lef/def are read
Describe the bug
rtl_macro_placer coredumps after only reading lef/def.
see https://github.com/The-OpenROAD-Project/OpenROAD/issues/5284 for the input data.
I did replace CLASS RING with CLASS BLOCK to get macro_placement to work, I'm assuming rtl_macro_placer will need this too.
Expected Behavior
no coredump
Environment
M1 MacOS
OpenROAD v2.0-14310-g69872cd76
Features included (+) or not (-): +Charts +GPU +GUI +Python
To Reproduce
openroad -gui -threads max risc2.or
read_lef lef/risc2.lef.gz
read_def def/risc2.def.gz
rtl_macro_placer
Relevant log output
[INFO ODB-0227] LEF file: lef/risc2.lef.gz, created 13 layers, 16 vias, 147 library cells
[INFO ODB-0127] Reading DEF file: def/risc2.def.gz
[INFO ODB-0128] Design: frisc
[INFO ODB-0130] Created 629 pins.
[INFO ODB-0131] Created 32622 components and 196041 component-terminals.
[INFO ODB-0132] Created 2 special nets and 65244 connections.
[INFO ODB-0133] Created 34034 nets and 128506 connections.
[INFO ODB-0134] Finished DEF file: def/risc2.def.gz
Floorplan Outline: (-479.6, -479.6) (480, 480), Core Outline: (-479.6, -478.4) (480, 479.2)
Traversed logical hierarchy
Number of std cell instances: 32615
Area of std cell instances: 521777.56
Number of macros: 7
Area of macros: 349004.25
Area of macros with halos: 349004.25
Area of std cell instances + Area of macros: 870781.81
Core area: 918912.94
Design Utilization: 0.95
Core Utilization: 0.92
Manufacturing Grid: 10
Signal 11 received
Stack trace:
0# handler(int) in OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
1# _sigtramp in /usr/lib/system/libsystem_platform.dylib
2# mpl2::HierRTLMP::createDataFlow() in OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
3# mpl2::HierRTLMP::createDataFlow() in OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
4# mpl2::HierRTLMP::runMultilevelAutoclustering() in OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
5# mpl2::HierRTLMP::run() in OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
6# mpl2::MacroPlacer2::place(int, int, int, int, int, float, int, float, int, int, int, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, int, bool, char const*) in OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
7# mpl2::rtl_macro_placer_cmd(int, int, int, int, float, int, float, int, int, int, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, int, bool, char const*) in OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
8# _wrap_rtl_macro_placer_cmd(void*, Tcl_Interp*, int, Tcl_Obj* const*) in OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
9# TclNRRunCallbacks in /opt/homebrew/Cellar/tcl-tk/8.6.14/lib/libtcl8.6.dylib
10# TclEvalEx in /opt/homebrew/Cellar/tcl-tk/8.6.14/lib/libtcl8.6.dylib
11# Tcl_Eval in /opt/homebrew/Cellar/tcl-tk/8.6.14/lib/libtcl8.6.dylib
12# gui::TclCmdInputWidget::executeCommand(QString const&, bool, bool) in OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
13# gui::startGui(int&, char**, Tcl_Interp*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>> const&, bool) in OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
14# ord::tclAppInit(Tcl_Interp*) in OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
15# Tcl_MainEx in /opt/homebrew/Cellar/tcl-tk/8.6.14/lib/libtcl8.6.dylib
16# TclInitNamespaceSubsystem in /opt/homebrew/Cellar/tcl-tk/8.6.14/lib/libtcl8.6.dylib
17# main in OpenROAD-flow-scripts/tools/install/OpenROAD/bin/openroad
Screenshots
No response
Additional Context
No response