Using C/C++ to model and create hardware offers coding flexibility. For maximum predictability and a faster path to results, Xilinx recommends the load-compute-store coding style where the kernel is explicitly decomposed between data motion blocks and computational blocks. This highly structured coding style fits the producer-consumer pattern well and helps achieve high-throughput designs. For more information, see this link in the Vitis HLS User Guide (UG1399).