You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Author Name: Sharad Bagri
Original Redmine Issue: 734 from https://www.veripool.org
Original Date: 2014-04-07
Verilator is used to convert b12.v to Vb12.cpp (both attached). In line 412 of Vb12.cpp the if condition is "if (((((((((0 == (IData)(vlTOPp->v__DOT__gamma)) | (1 == (IData)(vlTOPp->v__DOT__gamma))) | (2 == (IData)(vlTOPp->v__DOT__gamma))) | (3 == (IData)(vlTOPp->v__DOT__gamma))) | (4 == (IData)(vlTOPp->v__DOT__gamma))) | (5 == (IData)(vlTOPp->v__DOT__gamma))) | (6 == (IData)(vlTOPp->v__DOT__gamma))) | (7 == (IData)(vlTOPp->v__DOT__gamma)))) {"
Ideally it is logical or, so it should be like
"if (((((((((0 == (IData)(vlTOPp->v__DOT__gamma)) || (1 == (IData)(vlTOPp->v__DOT__gamma))) || (2 == (IData)(vlTOPp->v__DOT__gamma))) || (3 == (IData)(vlTOPp->v__DOT__gamma))) || (4 == (IData)(vlTOPp->v__DOT__gamma))) || (5 == (IData)(vlTOPp->v__DOT__gamma))) || (6 == (IData)(vlTOPp->v__DOT__gamma))) || (7 == (IData)(vlTOPp->v__DOT__gamma)))) {"
Can this issue be fixed? I need it because I am using the if clause to put it as a constraint in SMT solver which works differently for logical and bitwise or
The text was updated successfully, but these errors were encountered:
Original Redmine Comment
Author Name: Wilson Snyder (@wsnyder)
Original Date: 2014-04-07T20:18:07Z
There are a hundreds of optimizations that Verilator does, and this is only the tip of a huge iceberg. If you run more complicated designs you'll find lots of other things are going to be broken. Sorry, but I really don't have time to make the code in a form that you need, but if you want to track that one down yourself that specific optimization is in V3Const.cpp.
Author Name: Sharad Bagri
Original Redmine Issue: 734 from https://www.veripool.org
Original Date: 2014-04-07
Verilator is used to convert b12.v to Vb12.cpp (both attached). In line 412 of Vb12.cpp the if condition is "if (((((((((0 == (IData)(vlTOPp->v__DOT__gamma)) | (1 == (IData)(vlTOPp->v__DOT__gamma))) | (2 == (IData)(vlTOPp->v__DOT__gamma))) | (3 == (IData)(vlTOPp->v__DOT__gamma))) | (4 == (IData)(vlTOPp->v__DOT__gamma))) | (5 == (IData)(vlTOPp->v__DOT__gamma))) | (6 == (IData)(vlTOPp->v__DOT__gamma))) | (7 == (IData)(vlTOPp->v__DOT__gamma)))) {"
Ideally it is logical or, so it should be like
"if (((((((((0 == (IData)(vlTOPp->v__DOT__gamma)) || (1 == (IData)(vlTOPp->v__DOT__gamma))) || (2 == (IData)(vlTOPp->v__DOT__gamma))) || (3 == (IData)(vlTOPp->v__DOT__gamma))) || (4 == (IData)(vlTOPp->v__DOT__gamma))) || (5 == (IData)(vlTOPp->v__DOT__gamma))) || (6 == (IData)(vlTOPp->v__DOT__gamma))) || (7 == (IData)(vlTOPp->v__DOT__gamma)))) {"
Can this issue be fixed? I need it because I am using the if clause to put it as a constraint in SMT solver which works differently for logical and bitwise or
The text was updated successfully, but these errors were encountered: