Skip to content

Commit

Permalink
fixing issue with defines on alg and sub calls
Browse files Browse the repository at this point in the history
  • Loading branch information
sylefeb committed Jul 22, 2024
1 parent 64815a5 commit 9036641
Showing 1 changed file with 9 additions and 3 deletions.
12 changes: 9 additions & 3 deletions src/Algorithm.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7160,7 +7160,9 @@ void Algorithm::writeAlgorithmReadback(antlr4::tree::ParseTree *node, std::strin
a.instance_name.c_str(), outs.name.c_str());
}
if (!is_a_define.empty()) {
std::string lvalue_str = (lvalue.str()[0] == '`') ? lvalue.str().substr(1) : lvalue.str();
std::string lvalue_str = (lvalue.str()[0] == '`') ? lvalue.str().substr(1)
: (lvalue.str()[0] == '$') ? lvalue.str().substr(9, lvalue.str().length()-10) // skip $signed(`...)
: lvalue.str();
w.defines << "`undef " << lvalue_str << nxl;
w.defines << "`define " << lvalue_str << ' ' << vioAsDefine(ictx,is_a_define,WIRE + a.instance_prefix + "_" + outs.name) << nxl;
} else {
Expand Down Expand Up @@ -7244,7 +7246,9 @@ void Algorithm::writeSubroutineReadback(antlr4::tree::ParseTree *node, std::stri
t_vio_dependencies _;
std::string rvalue = rewriteIdentifier(prefix, called->io2var.at(outs), "", bctx, ictx, sourceloc(plist), FF_Q, true, _, _usage);
if (!is_a_define.empty()) {
std::string lvalue_str = (lvalue.str()[0] == '`') ? lvalue.str().substr(1) : lvalue.str();
std::string lvalue_str = (lvalue.str()[0] == '`') ? lvalue.str().substr(1)
: (lvalue.str()[0] == '$') ? lvalue.str().substr(9, lvalue.str().length()-10) // skip $signed(`...)
: lvalue.str();
w.defines << "`undef " << lvalue_str << nxl;
w.defines << "`define " << lvalue_str << ' ' << vioAsDefine(ictx, is_a_define, rvalue) << nxl;
} else {
Expand Down Expand Up @@ -7516,7 +7520,9 @@ void Algorithm::writeAssignement(
}
// = rvalue
if (!is_a_define.empty()) {
std::string lvalue_str = (lvalue.str()[0] == '`') ? lvalue.str().substr(1) : lvalue.str();
std::string lvalue_str = (lvalue.str()[0] == '`') ? lvalue.str().substr(1)
: (lvalue.str()[0] == '$') ? lvalue.str().substr(9, lvalue.str().length()-10) // skip $signed(`...)
: lvalue.str();
w.defines << "`undef " << lvalue_str << nxl;
w.defines << "`define " << lvalue_str << ' ' << vioAsDefine(ictx, is_a_define, rewriteExpression(prefix, expression_0, a.__id, bctx, ictx, ff, true, dependencies, _usage)) << nxl;
} else {
Expand Down

0 comments on commit 9036641

Please sign in to comment.