3.6.3.12 SHLS-22

Message

Warning: (SHLS-22) Completely partitioning array '{variable}' on {location} with size over {array_size}.
                   This can cause SmartHLS to take longer to run or result in an output circuit with excessive hardware resources.

This warning is triggered when completely partitioning a target array variable results in an unusually large number of memory partitions. In the current configuration of SmartHLS, the threshold is set to 1,000; this means the message will be issued if more than 1,000 partitions are created from complete memory partitioning of an array variable.

/*****************************************************************
 *  This example is expected to result in
 *  - Code  : SHLS-22
 *  - Type  : Warning
 *  - Cause : More than 1000 memory partitions will be created
 *            from completely partitioning an array variable.
 *****************************************************************/
#pragma HLS memory partition variable(big_array) type(complete)
int big_array[2000];

void DUT() {
    #pragma HLS function top
    for (int i = 0; i < 2000; i++) {
        big_array[i] *= 2;
    }
}

Related to: Memory Partitioning