Disaggregation - 2022.2 English

Vitis HLS Messaging (UG1448)

Document ID
UG1448
Release Date
2022-12-16
Version
2022.2 English

Description

Warning: [HLS 214-210] Disaggregating variable 'd' (kernel.cpp:10:0) Resolution: For help on HLS 214-210 see www.xilinx.com/cgi-bin/docs/rdoc?v=2022.2;t=hls+guidance;d=214-210.html

Explanation

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.

Example

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);