lip6 / coriolis

Coriolis VLSI EDA Tool (LIP6)
https://coriolis.lip6.fr
GNU General Public License v2.0
44 stars 5 forks source link

Turn has more than one horizontal segment. / Turn is missing mandatory horizontal segment. followed by segfault #105

Closed gatecat closed 6 months ago

gatecat commented 6 months ago

MCVE:

global_routing_crash.zip

This is the SRAM related crash I'm investigating now, as a GitHub issue for reference. To avoid the offgrid issues and generally focus only on signal routing, power connections are disabled.

For this crash to occur, seems to require the write enable connected to something other than a constant or IO.

The crash is as follows:

[WARNING] Straight AutoHorizontal connecting misaligned contacts:
          <id:865271 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [447.01um 2428.96um] 0.26um x 0.26um FT---ic>
          <id:865272 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [446.63um 2429.62um] 0.26um x 0.26um FT---ic>
[WARNING] Straight AutoHorizontal connecting misaligned contacts:
          <id:865271 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [447.01um 2428.96um] 0.26um x 0.26um FT---ic>
          <id:865272 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [446.63um 2429.62um] 0.26um x 0.26um FT---ic>
[WARNING] Straight AutoHorizontal connecting misaligned contacts:
          <id:865277 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [394.21um 2428.96um] 0.26um x 0.26um FT---ic>
          <id:865278 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [393.83um 2429.62um] 0.26um x 0.26um FT---ic>
[WARNING] Straight AutoHorizontal connecting misaligned contacts:
          <id:865277 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [394.21um 2428.96um] 0.26um x 0.26um FT---ic>
          <id:865278 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [393.83um 2429.62um] 0.26um x 0.26um FT---ic>
[WARNING] Straight AutoHorizontal connecting misaligned contacts:
          <id:865281 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [396.19um 2428.96um] 0.26um x 0.26um FT---ic>
          <id:865282 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [395.81um 2429.62um] 0.26um x 0.26um FT---ic>
[WARNING] Straight AutoHorizontal connecting misaligned contacts:
          <id:865281 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [396.19um 2428.96um] 0.26um x 0.26um FT---ic>
          <id:865282 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [395.81um 2429.62um] 0.26um x 0.26um FT---ic>
[WARNING] Straight AutoHorizontal connecting misaligned contacts:
          <id:865293 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [344.05um 2428.96um] 0.26um x 0.26um FT---ic>
          <id:865294 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [343.67um 2429.62um] 0.26um x 0.26um FT---ic>
[WARNING] Straight AutoHorizontal connecting misaligned contacts:
          <id:865293 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [344.05um 2428.96um] 0.26um x 0.26um FT---ic>
          <id:865294 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [343.67um 2429.62um] 0.26um x 0.26um FT---ic>
[WARNING] Straight AutoHorizontal connecting misaligned contacts:
          <id:865299 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [236.47um 2428.96um] 0.26um x 0.26um FT---ic>
          <id:865300 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [236.09um 2429.62um] 0.26um x 0.26um FT---ic>
[WARNING] Straight AutoHorizontal connecting misaligned contacts:
          <id:865299 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [236.47um 2428.96um] 0.26um x 0.26um FT---ic>
          <id:865300 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [236.09um 2429.62um] 0.26um x 0.26um FT---ic>
[WARNING] Straight AutoHorizontal connecting misaligned contacts:
          <id:865305 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [150.01um 2428.96um] 0.26um x 0.26um FT---ic>
          <id:865306 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [149.63um 2429.62um] 0.26um x 0.26um FT---ic>
[WARNING] Straight AutoHorizontal connecting misaligned contacts:
          <id:865305 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [150.01um 2428.96um] 0.26um x 0.26um FT---ic>
          <id:865306 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [149.63um 2429.62um] 0.26um x 0.26um FT---ic>
[WARNING] Straight AutoHorizontal connecting misaligned contacts:
          <id:865311 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [96.55um 2428.96um] 0.26um x 0.26um FT---ic>
          <id:865312 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [96.17um 2429.62um] 0.26um x 0.26um FT---ic>
[WARNING] Straight AutoHorizontal connecting misaligned contacts:
          <id:865311 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [96.55um 2428.96um] 0.26um x 0.26um FT---ic>
          <id:865312 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [96.17um 2429.62um] 0.26um x 0.26um FT---ic>
[WARNING] Straight AutoHorizontal connecting misaligned contacts:
          <id:865315 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [98.53um 2428.96um] 0.26um x 0.26um FT---ic>
          <id:865316 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [98.15um 2429.62um] 0.26um x 0.26um FT---ic>
[WARNING] Straight AutoHorizontal connecting misaligned contacts:
          <id:865315 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [98.53um 2428.96um] 0.26um x 0.26um FT---ic>
          <id:865316 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [98.15um 2429.62um] 0.26um x 0.26um FT---ic>
[WARNING] Straight AutoHorizontal connecting misaligned contacts:
          <id:865327 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [45.73um 2428.96um] 0.26um x 0.26um FT---ic>
          <id:865328 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [45.35um 2429.62um] 0.26um x 0.26um FT---ic>
[WARNING] Straight AutoHorizontal connecting misaligned contacts:
          <id:865327 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [45.73um 2428.96um] 0.26um x 0.26um FT---ic>
          <id:865328 ContactTerminal core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2 [45.35um 2429.62um] 0.26um x 0.26um FT---ic>
[ERROR] In topology of <id:865320 ContactTurn core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2_Via2_Metal3 [104um 2424um] 0.26um x 0.26um -----ic>
        L: 0x55f69e96b5e0
        Turn is missing mandatory horizontal segment.
[ERROR] ContactTurn::updateGeometry() <id:865320 ContactTurn core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2_Via2_Metal3 [104um 2424um] 0.26um x 0.26um -----ic>: Unable to restore cache.
[ERROR] In topology of <id:865319 ContactTurn core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2_Via2_Metal3 [104um 2424um] 0.26um x 0.26um -----ic>
        L: 0x55f69e96b450
        L: 0x55f69e96b770
        L: 0x55f69e96b5e0
        Turn has more than one horizontal segment.
[ERROR] ContactTurn::updateGeometry() <id:865319 ContactTurn core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2_Via2_Metal3 [104um 2424um] 0.26um x 0.26um -----ic>: Unable to restore cache.
[ERROR] In topology of <id:865285 ContactTurn core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2_Via2_Metal3 [392um 2424um] 0.26um x 0.26um -----ic>
        L: 0x55f690489310
        L: 0x55f69e5080d0
        L: 0x55f69e952860
        Turn has more than one horizontal segment.
[ERROR] ContactTurn::updateGeometry() <id:865285 ContactTurn core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2_Via2_Metal3 [392um 2424um] 0.26um x 0.26um -----ic>: Unable to restore cache.
[ERROR] In topology of <id:865286 ContactTurn core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2_Via2_Metal3 [392um 2424um] 0.26um x 0.26um -----ic>
        L: 0x55f69e952860
        Turn is missing mandatory horizontal segment.
[ERROR] ContactTurn::updateGeometry() <id:865286 ContactTurn core.abc_484_auto_opt_expr_cc_205_group_cell_inputs_21 Metal2_Via2_Metal3 [392um 2424um] 0.26um x 0.26um -----ic>: Unable to restore cache.

[CRL ERROR] System::_trapSig(): sig=11

Program stack:
[00] Build without BFD (libbfd) support, no filename and line number.
[01] Hurricane::Backtrace::Backtrace(bool)
[02] CRL::System::_trapSig(int)
[03] /usr/lib/libc.so.6(+0x3e710) [0x7f7299a5c710]
[04] Anabatic::AutoSegment::computeOptimal(std::set<Anabatic::AutoSegment*, std::less<Anabatic::AutoSegment*>, std::allocator<Anabatic::AutoSegment*> >&)
[05] Anabatic::AnabaticEngine::_computeNetOptimals(Hurricane::Net*)
[06] Anabatic::Session::_revalidateTopology()
[07] Anabatic::Session::_revalidate()
[08] Katana::Session::_revalidate()
[09] Anabatic::NetBuilder::_load(Anabatic::AnabaticEngine*, Hurricane::Net*)
[10] Anabatic::AnabaticEngine::_loadGrByNet()
[11] Anabatic::AnabaticEngine::loadGlobalRouting(unsigned int)
[12] /home/gatecat/.local/lib/python3.11/site-packages/coriolis/Katana.cpython-311-x86_64-linux-gnu.so(+0xf5af) [0x7f72946ac5af]
[13] /usr/lib/libpython3.11.so.1.0(+0x1e1098) [0x7f7299de1098]
[14] PyObject_Vectorcall
[15] _PyEval_EvalFrameDefault
[16] /usr/lib/libpython3.11.so.1.0(+0x29c484) [0x7f7299e9c484]
[17] PyEval_EvalCode
[18] /usr/lib/libpython3.11.so.1.0(+0x2b9fc3) [0x7f7299eb9fc3]
[19] /usr/lib/libpython3.11.so.1.0(+0x2b63ea) [0x7f7299eb63ea]
[20] /usr/lib/libpython3.11.so.1.0(+0x2cc723) [0x7f7299ecc723]
[21] _PyRun_SimpleFileObject
[22] _PyRun_AnyFileObject
[23] Py_RunMain
[24] Py_BytesMain
[25] /usr/lib/libc.so.6(+0x27cd0) [0x7f7299a45cd0]
[26] __libc_start_main
[27] _start
gatecat commented 6 months ago

See https://github.com/lip6/coriolis/pull/106 for what I think is a fix for this.