mirror of https://github.com/YosysHQ/yosys.git
Fixed handling of task outputs
This commit is contained in:
parent
5602cbde9f
commit
85e3cc12ac
|
@ -1523,12 +1523,14 @@ skip_dynamic_range_lvalue_expansion:;
|
||||||
|
|
||||||
replace_rules[child->str] = wire->str;
|
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 *arg = children[arg_count++]->clone();
|
||||||
AstNode *wire_id = new AstNode(AST_IDENTIFIER);
|
AstNode *wire_id = new AstNode(AST_IDENTIFIER);
|
||||||
wire_id->str = wire->str;
|
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++) {
|
for (auto it = current_block->children.begin(); it != current_block->children.end(); it++) {
|
||||||
if (*it != current_block_child)
|
if (*it != current_block_child)
|
||||||
|
|
Loading…
Reference in New Issue