OpenROAD icon indicating copy to clipboard operation
OpenROAD copied to clipboard

rtl_macro_placer crashes when only lef/def are read

Open stefanottili opened this issue 8 months ago • 0 comments

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

stefanottili avatar Jun 25 '24 18:06 stefanottili