mirror of https://github.com/YosysHQ/yosys.git
Fixed AST handling of variables declared inside a functions main block
This commit is contained in:
parent
0bb6942218
commit
0129d41efa
|
@ -1460,7 +1460,6 @@ skip_dynamic_range_lvalue_expansion:;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto child : decl->children)
|
for (auto child : decl->children)
|
||||||
{
|
|
||||||
if (child->type == AST_WIRE)
|
if (child->type == AST_WIRE)
|
||||||
{
|
{
|
||||||
AstNode *wire = child->clone();
|
AstNode *wire = child->clone();
|
||||||
|
@ -1488,7 +1487,9 @@ skip_dynamic_range_lvalue_expansion:;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
|
||||||
|
for (auto child : decl->children)
|
||||||
|
if (child->type != AST_WIRE)
|
||||||
{
|
{
|
||||||
AstNode *stmt = child->clone();
|
AstNode *stmt = child->clone();
|
||||||
stmt->replace_ids(replace_rules);
|
stmt->replace_ids(replace_rules);
|
||||||
|
@ -1500,7 +1501,6 @@ skip_dynamic_range_lvalue_expansion:;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
replace_fcall_with_id:
|
replace_fcall_with_id:
|
||||||
if (type == AST_FCALL) {
|
if (type == AST_FCALL) {
|
||||||
|
|
|
@ -33,3 +33,16 @@ end
|
||||||
|
|
||||||
endmodule
|
endmodule
|
||||||
|
|
||||||
|
|
||||||
|
module task_func_test02( input [7:0] din_a, input [7:0] din_b, output [7:0] dout_a);
|
||||||
|
assign dout_a = test(din_a,din_b);
|
||||||
|
function [7:0] test;
|
||||||
|
input [7:0] a;
|
||||||
|
input [7:0] b;
|
||||||
|
begin : TEST
|
||||||
|
integer i;
|
||||||
|
for (i = 0; i <= 7; i = i + 1)
|
||||||
|
test[i] = a[i] & b[i];
|
||||||
|
end
|
||||||
|
endfunction
|
||||||
|
endmodule
|
||||||
|
|
Loading…
Reference in New Issue