3.6.3.11 SHLS-21

Message

Warning: (SHLS-21) User specified field partitioning for '{variable}' on {location} is ignored because the specified partition factor: {partition_factor} exceeds size of the array: {array_size} at dimension: {memory_dim}.

The message appears when an invalid factor is specified in #pragma HLS memory partition. The factor determines the number of partitions requested by the user. Valid input values for the factor must be integers greater than 1 and less than or equal to the size of the array in the targeted dimension. For example, specifying a factor of 11 for an array with only 10 elements is invalid and will trigger this message.

/*****************************************************************
 *  This example is expected to result in
 *  - Code  : SHLS-21
 *  - Type  : Warning
 *  - Cause : Memory partitioning factor that exceeds the target
 *            memory dimension size is specified.
 *            Could happen to both 'block' and 'cyclic' partitioning.
 *****************************************************************/
#pragma HLS memory partition variable(array) type(block) factor(11)
int array[10];

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

Related to: Memory Partitioning