3.6.3.36 SHLS-83

Message

Error:   (SHLS-83) Recursive call detected for function '{function}' on {location}.

SmartHLS does not support recursive functions.

/*****************************************************************
 *  This example is expected to result in
 *  - Code  : SHLS-83
 *  - Type  : Error
 *  - Cause : Unresolvable recursive function is detected
 *****************************************************************/
unsigned fibonacci(unsigned i) {
    if (i == 0 || i == 1)
        return i;
    return fibonacci(i - 1) + fibonacci(i - 2);
}

unsigned DUT(unsigned v) {
    #pragma HLS function top
    return fibonacci(v);
}

Related to: First Question in Overview.