Disaggregation - 2024.1 English

Vitis HLS Messaging (UG1448)

Document ID
Release Date
2024.1 English


Warning: [HLS 214-210] Disaggregating variable 'd' (kernel.cpp:10:0)


Consider the following example where a user-defined struct contains an hls::stream as one of the struct data members. In this case, Vitis HLS will automatically disaggregate the struct because streams inside structs cannot be supported at the interface. However, due to the automatic disaggregation of the struct in the interface, the signature of the top-level function is no longer the same. The difference can cause issues in the Vitis Kernel flow as a single C Struct Port is now mapped to several RTL ports.

A similar scenario can happen when a disaggregate pragma is applied to an interface struct port.

Vitis HLS issues this INFO message when the above scenario is encountered.


typedef struct {
  dout_t blue[N];
  hls::stream<din_t> red;
  din_t white=3;
} My_struct;

void accel ( My_struct *in1, din_t *in2, dout_t *output);