Side-channels are optional signals, which are part of the AXI4-Stream standard. The side-channel signals can be directly referenced and controlled in the C/C++ code using a struct, provided that the member elements of the struct match the names of the AXI4-Stream side-channel signals. The AXI4-Stream side-channel signals are considered data signals and are registered whenever
TDATAis registered. There are significant differences in how this is handled in Vivado HLS vs Vitis HLS. The AXI4-Stream Interfaces with Side-Channels section in the user guide (UG1399) details the limitations and restrictions in Vitis HLS.