Burst Inference Failure 7 - 2020.1 English

Vitis HLS Messaging (UG1448)

Document ID
UG1448
Release Date
2020-06-03
Version
2020.1 English

Explanation

Using complex expressions or operators (such as division) to access M_AXI array ports can result in burst inference failures. Consider simplifying the access patterns so that the compiler can easily infer the access patterns.

Example

//////////// ORIGINAL ////////////
void foo(int in[16][16], int out[16][16], long n) {
  long t = n * 16;
  for (long i = 0; i < t; ++i) {
    out[i/16u][i%16u] = in[i/16u][i%16u];
  }
}
 
//////////// UPDATED ////////////
// Replace division with multiple loops with simple indexing
void foo(int in[16][16], int out[16][16], long n) {
  for (long j = 0; j < n; ++j)
    for (long i = 0; i < 16; ++i)
      out[j][i] = in[j][i]; 
}