3.6.3.5 SHLS-6

Message

Warning: (SHLS-6) Loop unrolling failed on {location}.
                  This loop nest is inside the function '{function}', which is specified to be flattened.      

Unrolling all loops is an integral step in the process of flattening a function body. If a statically unrollable loop is detected within a function designated for flattening, SHLS-6 will be generated.

/*****************************************************************
 *  This example is expected to result in
 *  - Code  : SHLS-6
 *  - Type  : Warning
 *  - Cause : Failed to unroll loop inside a function that is
 *            specified to be flattened.
 *****************************************************************/
int DUT(int A[100], int B[100], int nelem) {
    #pragma HLS function flatten top
    int tmp = 0;
    for (int i = 0; i < nelem; i++) {
        tmp += A[i] + B[i];
    }
    return tmp;
}

Related to: Loop Unrolling, Flatten Function