3.6.3.16 SHLS-30

Message

Error:   (SHLS-30) Failed to canonicalize dataflow function '{function}' because the function contains control flow or loops ({location}) that cannot be automatically transformed.
/*****************************************************************
 *  This example is expected to result in
 *  - Code  : SHLS-30
 *  - Type  : Error
 *  - Cause : Failed to reach dataflow canonical form due to the 
 *            'while' statement in body.
 *****************************************************************/
#define NELEM 10

void subf(int in[NELEM]) {
#pragma HLS loop pipeline
    for (int i = 0; i < NELEM; i++) {
        in[i] ++;
    }
}

void DUT(int s[NELEM], int v) {
#pragma HLS function top dataflow
    while(v > 10)
        subf(s);
}

Related to: Data Flow Parallelism