Related work.
Even though HLS tools do not support recursive functions (also mentioned by some papers), there have been research works on how to synthesis the recursion.
In summary, some may convert the recursion into loop, some may convert the recursion into finite state machine, and one work tries to use other tools to change this.
In general, the reason that recursive function is hard to be synthesized is that it is very hard to dynamically call the IP itself.
This issue will list all the current work and the difference between the current work and our approach.