Vivado synthesis supports recursive functions. This coding example models an n! function.
function my_func(x : integer) return integer is begin
if R > 1 then
return (R*my_func(R-1));
else
return R;
end if;
end function my_func;
Vivado synthesis supports recursive functions. This coding example models an n! function.
function my_func(x : integer) return integer is begin
if R > 1 then
return (R*my_func(R-1));
else
return R;
end if;
end function my_func;