Xilinx System generator can be used for a cosimulation between the original MATLAB reference model and the actual HW board. Can we follow a similar procedure for a cosimulation between the original C++ reference model (before datatype and algorithm optimization for HDL) and the actual HW board in VIVADO HLS?
Yes, we can! If you already have a C++ reference model you can compare its results with the host and device side code accelerated on FPGA. I use host/device terminology as in OpenCL which is what Vitis currently uses for C++ FPGA kernels. Typically all buffer handling across PCIe to/from FPGA is done by the host side code while data is operated upon by the device side code. Vitis and SDAccel (earlier version) flows have software emulation of code for FPGA as well as hardware emulation which is actually a co-simulation by xsim of the host and device portions of the code. Finally, you can run FPGA compiled into a bitstream on the actual hardware board (e.g. AWS F1 instance). You have your C++ original model to compare to 2 emulations and actual execution on FPGA.