From: Clifford Wolf Date: Wed, 23 Sep 2015 05:56:17 +0000 (+0200) Subject: Bugfix in handling of multi-dimensional memories X-Git-Tag: yosys-0.6~141 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=089c1e176f8f0e6a38cecaadf2381bdd34e74518;p=yosys.git Bugfix in handling of multi-dimensional memories --- diff --git a/frontends/ast/simplify.cc b/frontends/ast/simplify.cc index 2abb48a58..d9a466e04 100644 --- a/frontends/ast/simplify.cc +++ b/frontends/ast/simplify.cc @@ -760,10 +760,10 @@ bool AstNode::simplify(bool const_fold, bool at_zero, bool in_lvalue, int stage, if (i == 0) index_expr = new_index_expr; else - index_expr = new AstNode(AST_ADD, new AstNode(AST_MUL, index_expr, AstNode::mkconst_int(id2ast->multirange_dimensions[2*i-1], true)), new_index_expr); + index_expr = new AstNode(AST_ADD, new AstNode(AST_MUL, index_expr, AstNode::mkconst_int(id2ast->multirange_dimensions[2*i+1], true)), new_index_expr); } - for (int i = GetSize(id2ast->multirange_dimensions)/1; i < GetSize(children[0]->children); i++) + for (int i = GetSize(id2ast->multirange_dimensions)/2; i < GetSize(children[0]->children); i++) children.push_back(children[0]->children[i]->clone()); delete children[0];