Skip to content

Hier: ODB corruption in nangate45/bp_fe_top #8071

@jhkim-pii

Description

@jhkim-pii

Describe the bug

Assert fail - ODB corruption occurred in hierarchical flow run of nangate45/bp_fe_top design.

Expected Behavior

No assert fail.

Environment

-- OpenROAD version: v2.0-23608-ge5e037d77f
-- System name: Linux
-- Compiler: GNU 13.3.0
-- Build type: RELEASE
-- 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: d5761004cd2cd2bcfa85d73327867966c279c83d
-- System name: Linux
-- Compiler: GNU 13.3.0
-- Build type: RELEASE
-- Build CXX_FLAGS: -O3 -DNDEBUG
-- 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/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/libOpenSTA.a
-- STA executable: /workspace/integrate-hier-fixes/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

OpenROAD-flow-scripts/flow$ make SYNTH_WRAPPED_OPERATORS=1 DESIGN_CONFIG=./designs/nangate45/bp_fe_top/config.mk

Relevant log output

OpenROAD v2.0-23608-ge5e037d77f 
Features included (+) or not (-): +GPU +GUI +Python
This program is licensed under the BSD-3 license. See the LICENSE file for details.
Components of this program may be licensed under more restrictive licenses which must be honored.
[INFO ORD-0030] Using 64 thread(s).
read_liberty ./platforms/nangate45/lib/NangateOpenCellLibrary_typical.lib
read_liberty ./platforms/nangate45/lib/fakeram45_512x64.lib
read_liberty ./platforms/nangate45/lib/fakeram45_64x7.lib
read_liberty ./platforms/nangate45/lib/fakeram45_64x96.lib
[WARNING ORD-0012] Hierarchical flow (-hier) is currently in development and may cause multiple issues. Do not use in production environments.
[INFO RSZ-0026] Removed 541 buffers.
Perform port buffering...
[INFO RSZ-0027] Inserted 1171 BUF_X1 input buffers.
[INFO RSZ-0028] Inserted 735 BUF_X1 output buffers.
source /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/flow/designs/nangate45/bp_fe_top/fastroute.tcl
[INFO GPL-0022] Initialize gpl and calculate uniform density.
Placement density is 0.3157999989390373, computed from PLACE_DENSITY_LB_ADDON  0.11 and lower bound 0.2199999988079071
global_placement -density 0.3157999989390373 -pad_left 0 -pad_right 0 -routability_driven -timing_driven -keep_resize_below_overflow 0
[INFO GPL-0005] Execute conjugate gradient initial placement.
[INFO GPL-0002] DBU: 2000
[INFO GPL-0003] SiteSize: (  0.190  1.400 ) um
[INFO GPL-0004] CoreBBox: ( 10.070 11.200 ) ( 789.830 589.400 ) um
[INFO GPL-0006] Number of instances:             35390
[INFO GPL-0007] Movable instances:               28912
[INFO GPL-0008] Fixed instances:                  3190
[INFO GPL-0009] Dummy instances:                  3288
[INFO GPL-0010] Number of nets:                  35281
[INFO GPL-0011] Number of pins:                 109345
[INFO GPL-0012] Die BBox:  (  0.000  0.000 ) ( 800.000 600.000 ) um
[INFO GPL-0013] Core BBox: ( 10.070 11.200 ) ( 789.830 589.400 ) um
[INFO GPL-0016] Core area:                  450857.232 um^2
[INFO GPL-0017] Fixed instances area:       219220.442 um^2
[INFO GPL-0018] Movable instances area:      48667.626 um^2
[INFO GPL-0019] Utilization:                    21.010 %
[INFO GPL-0020] Standard cells area:         48667.626 um^2
[INFO GPL-0021] Large instances area:            0.000 um^2
[InitialPlace]  Iter: 1 conjugate gradient residual: 0.00090372 HPWL: 3958433219
[InitialPlace]  Iter: 2 conjugate gradient residual: 0.00022183 HPWL: 3601328315
[InitialPlace]  Iter: 3 conjugate gradient residual: 0.00007484 HPWL: 3450383451
[InitialPlace]  Iter: 4 conjugate gradient residual: 0.00009445 HPWL: 3318341501
[InitialPlace]  Iter: 5 conjugate gradient residual: 0.00007309 HPWL: 3206596313
[InitialPlace]  Iter: 6 conjugate gradient residual: 0.00006751 HPWL: 3122646354
[InitialPlace]  Iter: 7 conjugate gradient residual: 0.00003513 HPWL: 3064175113
[InitialPlace]  Iter: 8 conjugate gradient residual: 0.00002808 HPWL: 3030957927
[InitialPlace]  Iter: 9 conjugate gradient residual: 0.00002784 HPWL: 3012776075
[InitialPlace]  Iter: 10 conjugate gradient residual: 0.00001512 HPWL: 3000029654
[InitialPlace]  Iter: 11 conjugate gradient residual: 0.00001619 HPWL: 2992602051
[InitialPlace]  Iter: 12 conjugate gradient residual: 0.00001762 HPWL: 2986560825
[InitialPlace]  Iter: 13 conjugate gradient residual: 0.00001199 HPWL: 2983311609
[InitialPlace]  Iter: 14 conjugate gradient residual: 0.00001182 HPWL: 2980331653
[InitialPlace]  Iter: 15 conjugate gradient residual: 0.00001424 HPWL: 2979263851
[InitialPlace]  Iter: 16 conjugate gradient residual: 0.00001455 HPWL: 2977815593
[InitialPlace]  Iter: 17 conjugate gradient residual: 0.00001266 HPWL: 2977690330
[InitialPlace]  Iter: 18 conjugate gradient residual: 0.00001311 HPWL: 2976378221
[InitialPlace]  Iter: 19 conjugate gradient residual: 0.00001157 HPWL: 2976442735
[InitialPlace]  Iter: 20 conjugate gradient residual: 0.00001176 HPWL: 2975692356
[INFO GPL-0023] Placement target density:       0.3158
[INFO GPL-0024] Movable insts average area:      1.683 um^2
[INFO GPL-0025] Ideal bin area:                  5.330 um^2
[INFO GPL-0026] Ideal bin count:                 84584
[INFO GPL-0027] Total bin area:             450857.232 um^2
[INFO GPL-0028] Bin count (X, Y):         256 ,    256
[INFO GPL-0029] Bin size (W * H):       3.046 *  2.259 um
[INFO GPL-0030] Number of bins:                  65536
[INFO GPL-0007] Execute nesterov global placement.
[INFO GPL-0031] HPWL: Half-Perimeter Wirelength
Iteration | Overflow |     HPWL (um) |  HPWL(%) |   Penalty | Group
---------------------------------------------------------------
        0 |   0.9158 |  2.258395e+09 |   +0.00% |  2.23e-14 |      
       10 |   0.8071 |  2.517263e+09 |  +11.46% |  3.47e-14 |      
       20 |   0.7893 |  2.526681e+09 |   +0.37% |  5.64e-14 |      
       30 |   0.7950 |  2.541950e+09 |   +0.60% |  9.17e-14 |      
       40 |   0.7952 |  2.549240e+09 |   +0.29% |  1.49e-13 |      
       50 |   0.7905 |  2.547595e+09 |   -0.06% |  2.43e-13 |      
       60 |   0.7856 |  2.541074e+09 |   -0.26% |  3.96e-13 |      
[INFO GPL-0100] Timing-driven iteration 1/5, virtual: true.
[INFO GPL-0101]    Iter: 63, overflow: 0.785, keep resizer changes at: 0, HPWL: 2539599746
Iteration |   Area    | Resized | Buffers | Nets repaired | Remaining
---------------------------------------------------------------------
        0 |     +0.0% |       0 |       0 |             0 |     35281
    final |     +9.1% |   19170 |     818 |          6447 |         0
---------------------------------------------------------------------
[INFO RSZ-0034] Found 6431 slew violations.
[INFO RSZ-0036] Found 107 capacitance violations.
[INFO RSZ-0037] Found 7 long wires.
[INFO RSZ-0039] Resized 19170 instances.
[INFO RSZ-0038] Inserted 818 buffers in 6447 nets.
   Iter   |    Area   | Removed | Inserted |   Pins
          |           | Buffers | Buffers  | Remaining
-------------------------------------------------------
        0 |     +0.0% |       0 |        0 |     32897
     3200 |     +0.1% |      11 |      252 |     29697
     6400 |     +0.2% |     103 |      424 |     26497
     9600 |     +0.2% |     151 |      587 |     23297
    12800 |     +0.2% |     160 |      609 |     20097
    16000 |     +0.2% |     328 |      801 |     16897
    19200 |     +0.2% |     344 |      837 |     13697
    22400 |     +0.3% |     655 |     1317 |     10497
    25600 |     +0.3% |     656 |     1416 |      7297
    28800 |     +0.3% |     706 |     1479 |      4097
    32000 |     +0.4% |     720 |     1884 |       897
    final |     +0.4% |     722 |     1887 |         0
-------------------------------------------------------
/usr/include/c++/13/bits/stl_vector.h:1128: std::vector<_Tp, _Alloc>::reference std::vector<_Tp, _Alloc>::operator[](size_type) [with _Tp = odb::dbId<odb::_dbMTerm>; _Alloc = std::allocator<odb::dbId<odb::_dbMTerm> >; reference = odb::dbId<odb::_dbMTerm>&; size_type = long unsigned int]: Assertion '__n < this->size()' failed.
Signal 6 received
Stack trace:
 0# 0x00005A065611A523 in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
 1# 0x0000744606A45330 in /lib/x86_64-linux-gnu/libc.so.6
 2# pthread_kill in /lib/x86_64-linux-gnu/libc.so.6
 3# gsignal in /lib/x86_64-linux-gnu/libc.so.6
 4# abort in /lib/x86_64-linux-gnu/libc.so.6
 5# 0x0000744606EDF90D in /lib/x86_64-linux-gnu/libstdc++.so.6
 6# 0x00005A0658AC040B in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
 7# sta::dbNetwork::port(sta::Pin const*) const in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
 8# sta::Network::libertyPort(sta::Pin const*) const in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
 9# sta::dbNetwork::direction(sta::Pin const*) const in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
10# sta::Graph::pinVertices(sta::Pin const*, sta::Vertex*&, sta::Vertex*&) const in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
11# sta::Graph::makeWireEdge(sta::Pin const*, sta::Pin const*) in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
12# sta::Graph::makeWireEdgesToPin(sta::Pin const*) in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
13# sta::Sta::connectPinAfter(sta::Pin const*) in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
14# odb::dbITerm::connect(odb::dbNet*) in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
15# odb::dbJournal::undo_disconnectObject() in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
16# odb::dbJournal::undo() in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
17# odb::dbDatabase::undoEco(odb::dbBlock*) in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
18# rsz::Resizer::journalRestore() in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
19# rsz::Resizer::findResizeSlacks(bool) in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
20# gpl::TimingBase::executeTimingDriven(bool) in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
21# gpl::NesterovPlace::runTimingDriven(int, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, int, int&, long&, bool) in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
22# gpl::NesterovPlace::doNesterovPlace(int) in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
23# gpl::Replace::doNesterovPlace(int, int) in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
24# 0x00005A065625EEBB in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
25# TclNRRunCallbacks in /lib/x86_64-linux-gnu/libtcl8.6.so
26# 0x000074460BB1D6BC in /lib/x86_64-linux-gnu/libtcl8.6.so
27# Tcl_EvalEx in /lib/x86_64-linux-gnu/libtcl8.6.so
28# Tcl_Eval in /lib/x86_64-linux-gnu/libtcl8.6.so
29# sta::sourceTclFile(char const*, bool, bool, Tcl_Interp*) in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
30# 0x00005A0656119C8F in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
31# Tcl_MainEx in /lib/x86_64-linux-gnu/libtcl8.6.so
32# main in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
33# 0x0000744606A2A1CA in /lib/x86_64-linux-gnu/libc.so.6
34# __libc_start_main in /lib/x86_64-linux-gnu/libc.so.6
35# _start in /workspace/integrate-hier-fixes/OpenROAD-flow-scripts/tools/OpenROAD/build/src/openroad
Command terminated by signal 6
Elapsed time: 0:59.16[h:]min:sec. CPU time: user 2222.69 sys 91.91 (3912%). Peak memory: 344836KB.

Screenshots

No response

Additional Context

No response

Metadata

Metadata

Assignees

Labels

odbOpenDBrszResizer

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions