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