Skip to content

Latest commit

 

History

History
30 lines (18 loc) · 2.88 KB

File metadata and controls

30 lines (18 loc) · 2.88 KB

Zynq_HLS_DDR_Dataflow_kernel_2mm

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

VivadoHLS part:

  1. 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)
  2. Synthesis them and export them as IPs

Vivado part:

  1. Please import the Vivado project (ZedBoard_HLS_kernel_2mm.hw)
  2. Add IP repository which includes the exported HLS IPs and refresh IP catalog
  3. Generated the bitstream and export the hardware to local project
  4. Launch SDK via Vivado

Xilinx SDK part:

  1. please refer to ug871-vivado-high-level-synthesis-tutorial.pdf (Chapter 10)
  2. 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)