Burst Inference Failure 6 - 2020.1 English

Vitis HLS Messaging (UG1448)

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

Explanation

It is important to consider the packedness and byte alignment of user defined structures when used in the interface. In this particular situation, the bursting algorithm has determined that the given user defined type has insufficient alignment. Identify the correct byte alignment of the user defined type and specify it via attributes in the source code.

Example

//////////// ORIGINAL ////////////
struct mystruct {
  char a;
  short b;
};
 
void foo(mystruct *a, mystruct *b) {
  for( int i = 0; i < 256; ++i )
    b[i] = a[i];
}
 
//////////// UPDATED ////////////
struct mystruct {
  char a;
  short b;
} __attribute__((packed, aligned(4)));
 
void foo(mystruct *a, mystruct *b) {
  for( int i = 0; i < 256; ++i )
    b[i] = a[i];
}