From: Clifford Wolf Date: Thu, 14 Aug 2014 20:26:10 +0000 (+0200) Subject: Fixed handling of task outputs X-Git-Tag: yosys-0.4~264 X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=85e3cc12ac44c44178185b918aa2a7fe9ca89918;p=yosys.git Fixed handling of task outputs --- diff --git a/frontends/ast/simplify.cc b/frontends/ast/simplify.cc index 39c472621..76d1f8270 100644 --- a/frontends/ast/simplify.cc +++ b/frontends/ast/simplify.cc @@ -1523,12 +1523,14 @@ skip_dynamic_range_lvalue_expansion:; replace_rules[child->str] = wire->str; - if (child->is_input && arg_count < children.size()) + if ((child->is_input || child->is_output) && arg_count < children.size()) { AstNode *arg = children[arg_count++]->clone(); AstNode *wire_id = new AstNode(AST_IDENTIFIER); wire_id->str = wire->str; - AstNode *assign = new AstNode(AST_ASSIGN_EQ, wire_id, arg); + AstNode *assign = child->is_input ? + new AstNode(AST_ASSIGN_EQ, wire_id, arg) : + new AstNode(AST_ASSIGN_EQ, arg, wire_id); for (auto it = current_block->children.begin(); it != current_block->children.end(); it++) { if (*it != current_block_child)