This is a project integrating HLS IP and CortexA9 on Zynq. This CPU-FPGA project, for a Matrix Multiplication Dataflow, is implemented with dataflow and DDR3 access with HLS. The Cortex A9 will print the result via UART and check the result by comparing the data with the one from CPU compuation. Compared with the DDR test implemented in here, this project implements a practical project for Matrix Multiplication, including data generation, FPGA acceleration and result checking.
If this blog is useful for you, a STAR will be encouragement to me. LOL
- Please firsr import the HLS projects (HLSTimer and 2mm) via VivadoHLS (2mmDataflow, the source code can be found here and HLSTimer, the source code can be found here)
- Synthesis them and export them as IPs
- Please import the Vivado project (ZedBoard_HLS_kernel_2mm.hw)
- Add IP repository which includes the exported HLS IPs and refresh IP catalog
- Generated the bitstream and export the hardware to local project
- Launch SDK via Vivado
- please refer to ug871-vivado-high-level-synthesis-tutorial.pdf (Chapter 10)
- you can find the source code for Cortex A9 in the directory (Zynq_HLS_DDR_Dataflow_kernel_2mm/tree/master/ZedBoard_HLS_kernel_2mm/ZedBoard_HLS_kernel_2mm.sdk/2mm_0/src). The main function is in the file helloworld.c. More details are described in the comments in the source code.
Very Detailed Instruction:
please refer to ug871-vivado-high-level-synthesis-tutorial.pdf (Chapter 10)