Major Tools
Other Tools
General Info

Issue #1430

Broken node on indexed interface modport

Added by Jonathan Kimmitt 4 months ago. Updated 3 months ago.

% Done:



%Error: Internal Error: See the manual and for more assistance.
- V3Ast.cpp:1045:     Dumping work-ver/Variane_testharness_990_final.tree
- V3Broken.cpp:278:   Broken called under broken, skipping recursion.
- V3StatsReport.cpp:241:statsReport: 
%Error: Internal Error: Aborting since under --debug

Program received signal SIGABRT, Aborted.
0x00007ffff7195428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
54    ../sysdeps/unix/sysv/linux/raise.c: No such file or directory.
#0  0x00007ffff7195428 in __GI_raise (sig=sig@entry=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#1  0x00007ffff719702a in __GI_abort () at abort.c:89
#2  0x00000000005a1ce6 in V3Error::vlAbort () at ../V3Error.cpp:141
#3  0x00000000005a2405 in V3Error::v3errorEnd (sstr=...) at ../V3Error.cpp:224
#4  0x00000000005b5aca in FileLine::v3errorEnd (this=0x2ddd3d0, str=...) at ../V3FileLine.cpp:242
#5  0x0000000000438b12 in AstNode::v3errorEnd (this=0x66ade10, str=...) at ../V3Ast.cpp:1084
#6  0x00000000004389c9 in AstNode::v3errorEndFatal (this=0x66ade10, str=...) at ../V3Ast.cpp:1070
#7  0x00000000004681b0 in BrokenCheckVisitor::processAndIterate (this=0x7fffffff8fe0, nodep=0x66ade10) at ../V3Broken.cpp:226
#8  0x000000000046882f in BrokenCheckVisitor::visit (this=0x7fffffff8fe0, nodep=0x66ade10) at ../V3Broken.cpp:260
#9  0x00000000004171d8 in AstNVisitor::visit (this=0x7fffffff8fe0, nodep=0x66ade10) at ./V3Ast__gen_visitor.h:175
#10 0x00000000004166e0 in AstNVisitor::visit (this=0x7fffffff8fe0, nodep=0x66ade10) at ./V3Ast__gen_visitor.h:120
#11 0x000000000044840e in AstIfaceRefDType::accept (this=0x66ade10, v=...) at ../V3AstNodes.h:573
#12 0x000000000043683e in AstNode::iterateAndNextConst (this=0xddc590, v=...) at ../V3Ast.cpp:827
#13 0x0000000000436438 in AstNode::iterateChildrenConst (this=0xdb8320, v=...) at ../V3Ast.cpp:763
#14 0x0000000000466e4d in AstNVisitor::iterateChildrenConst (this=0x7fffffff8fe0, nodep=0xdb8320) at ../V3Ast.h:2206
#15 0x0000000000468629 in BrokenCheckVisitor::processAndIterate (this=0x7fffffff8fe0, nodep=0xdb8320) at ../V3Broken.cpp:247
#16 0x000000000046882f in BrokenCheckVisitor::visit (this=0x7fffffff8fe0, nodep=0xdb8320) at ../V3Broken.cpp:260
#17 0x000000000041899c in AstNVisitor::visit (this=0x7fffffff8fe0, nodep=0xdb8320) at ./V3Ast__gen_visitor.h:292
#18 0x0000000000454fc4 in AstTypeTable::accept (this=0xdb8320, v=...) at ../V3AstNodes.h:5835
#19 0x000000000043683e in AstNode::iterateAndNextConst (this=0xdb8320, v=...) at ../V3Ast.cpp:827
#20 0x0000000000436480 in AstNode::iterateChildrenConst (this=0xdb7cf0, v=...) at ../V3Ast.cpp:765
#21 0x0000000000466e4d in AstNVisitor::iterateChildrenConst (this=0x7fffffff8fe0, nodep=0xdb7cf0) at ../V3Ast.h:2206
#22 0x0000000000468629 in BrokenCheckVisitor::processAndIterate (this=0x7fffffff8fe0, nodep=0xdb7cf0) at ../V3Broken.cpp:247
#23 0x000000000046882f in BrokenCheckVisitor::visit (this=0x7fffffff8fe0, nodep=0xdb7cf0) at ../V3Broken.cpp:260
#24 0x0000000000417004 in AstNVisitor::visit (this=0x7fffffff8fe0, nodep=0xdb7cf0) at ./V3Ast__gen_visitor.h:165
#25 0x000000000040cbce in AstNetlist::accept (this=0xdb7cf0, v=...) at ../V3AstNodes.h:5868
#26 0x000000000041aad8 in AstNVisitor::iterate (this=0x7fffffff8fe0, nodep=0xdb7cf0) at ../V3Ast.h:2197
#27 0x000000000046886e in BrokenCheckVisitor::BrokenCheckVisitor (this=0x7fffffff8fe0, nodep=0xdb7cf0) at ../V3Broken.cpp:265
#28 0x0000000000466c4e in V3Broken::brokenAll (nodep=0xdb7cf0) at ../V3Broken.cpp:283
#29 0x000000000043892c in AstNode::dumpTreeFile (this=0xdb7cf0, filename="work-ver/Variane_testharness_018_dearray.tree", append=false, doDump=false) at ../V3Ast.cpp:1064
#30 0x00000000004085f9 in V3Global::dumpCheckGlobalTree (stagename="dearray", newNumber=0, doDump=false) at ../Verilator.cpp:153
#31 0x0000000000617d37 in V3Inst::dearrayAll (nodep=0xdb7cf0) at ../V3Inst.cpp:578
#32 0x00000000004088d2 in process () at ../Verilator.cpp:234
#33 0x00000000004099e2 in main (argc=243, argv=0x7fffffff9568, env=0x7fffffff9d08) at ../Verilator.cpp:631 - final tree (2.45 MB) Jonathan Kimmitt, 05/06/2019 08:58 AM - testcase and crash logfile (2.73 MB) Jonathan Kimmitt, 05/06/2019 01:44 PM


#1 Updated by Wilson Snyder 4 months ago

  • Status changed from New to AskedReporter

The line before "Internal Error" should have been an error about node 66ade10 4#> {gl75} s_cut -> IFACE 0x5fd0a90 <e640317> {m20} AXI_BUS__A40_AB40_AC5_AD1 L7 [LIB]

3:1: IFACEREFDTYPE 0x66ade10 &lt;e1760744&gt; {gl86} dt=this(w1)iface cell=s_cut if=AXI_BUS mp=Master -> CELL 0x66a7e40 &lt;e299965\

Somehow processing has lost AXI_BUS__A40_AB40_AC5_AD1. Can you make a test case?

#2 Updated by Wilson Snyder 4 months ago

  • Subject changed from Crash in Verilator 4.009 devel rev UNKNOWN_REV to Broken node on interface cell

#3 Updated by Jonathan Kimmitt 4 months ago

If the entire (preprocessed) design is acceptable as a testcase, please find it attached.

#4 Updated by Wilson Snyder 4 months ago

What command line are you using? Can you please check with the most recent version? If that fails, a reduced test case would be appreciated, as would like something we can add to the regressions.

#5 Updated by Jonathan Kimmitt 3 months ago

The usual command line, as stated in the attached logfile: verilator -cc --top-module ariane_testharness --debug --gdbbt verilate-tokens.v is sufficient to demonstrate the problem. Since I'm not particularly familiar with your code it could be difficult to dissect further. Nevertheless since it is pre-processed open source code, I see no reason why it could not go in the regression suite, once the problem is reproduced and identified at your end. I have rerun with the latest release (Verilator 4.012 2019-03-23) with no obvious change in behaviour. If you want me to rerun with any other flags, I'm happy to do so, but to a non C++ developer the diagnostics don't mean a lot.

#6 Updated by Wilson Snyder 3 months ago

  • Subject changed from Broken node on interface cell to Broken node on indexed interface modport

Tracked this down to an issue that indexed interfaces with modports are broken in LinkDot. Stay tuned.

Also available in: Atom