Consider this following verilog example, is this allowed and is it synthesizable?
function [7:0] func1;
input [7:0] a;
input [7:0] b;
begin
func1 = func2(a) + b;
end
endfunction
function [7:0] func2;
input [7:0] a;
begin
func2 = a + a;
end
endfunction