The Vitis HLS C/RTL co-simulation feature does not support structures or classes containing hls::stream<>
members in the top-level interface. Vitis HLS supports these structures or classes for synthesis.
typedef struct {
hls::stream<uint8_t> a;
hls::stream<uint16_t> b;
} strm_strct_t;
void dut_top(strm_strct_t indata, strm_strct_t outdata) { … }
These restrictions apply to both top-level function arguments and globally
declared objects. If structs of streams are used for synthesis, the design must be
verified using an external RTL simulator and user-created HDL test bench. There are no
such restrictions on hls::stream<>
objects with
strictly internal linkage.