3
0
Fork 0
mirror of https://github.com/YosysHQ/yosys synced 2025-06-07 06:33:24 +00:00

read_verilog: copy inout ports in and out of functions/tasks

This commit is contained in:
George Rennie 2025-05-31 01:08:15 +01:00
parent 4f7ea38b49
commit 45e8ff476e

View file

@ -4099,16 +4099,24 @@ skip_dynamic_range_lvalue_expansion:;
delete arg; delete arg;
continue; continue;
} }
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 = child->is_input ?
new AstNode(AST_ASSIGN_EQ, wire_id, arg) : if (child->is_input) {
new AstNode(AST_ASSIGN_EQ, arg, wire_id); AstNode *assign = new AstNode(AST_ASSIGN_EQ, wire_id->clone(), arg->clone());
assign->children[0]->was_checked = true; assign->children[0]->was_checked = true;
if (child->is_input)
new_stmts.push_back(assign); new_stmts.push_back(assign);
else }
if (child->is_output) {
AstNode *assign = new AstNode(AST_ASSIGN_EQ, arg->clone(), wire_id->clone());
assign->children[0]->was_checked = true;
output_assignments.push_back(assign); output_assignments.push_back(assign);
}
delete arg;
delete wire_id;
} }
} }