cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 
Highlighted
Newbie
Newbie
13,064 Views
Registered: ‎11-30-2012

[SYNCHK-74] Recursive functions are not supported: recursion found in the following functions

Hello, 

 

I'm working on sorting algorithm using Vivado 2012.2. 

 

I got an error message below, 

@E [SYNCHK-74] Recursive functions are not supported: recursion found in the following functions 

 

It seems Vivado doesn't support recursive functions which hardly found in these days programs.

How do I fix it? 

 

 

Here is my source code:

void qs (int *a, int n) {
if (n < 2)
return;
int p = a[n / 2];
int *l = a;
int *r = a + n - 1;
while (l <= r) {
if (*l < p) {
l++;
continue;
}
if (*r > p) {
r--;
continue;
}
int t = *l;
*l++ = *r;
*r-- = t;
}
qs (a, r - a + 1);
qs (l, a + n - l);
}

 

 

Thanks in advance. 

 

 

0 Kudos
1 Reply
Highlighted
Explorer
Explorer
13,034 Views
Registered: ‎09-06-2012

hi 

 

Recursive functions cannot be synthesized. This applies to functions which can form endless

recursion,

have a look at this user guide to know about this:

http://www.xilinx.com/support/documentation/sw_manuals/xilinx2012_3/ug902-vivado-high-level-synthesis.pdf  (page 257)

 

0 Kudos