zslwyuan / 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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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)

About

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


Languages

Language:VHDL 41.8%Language:Coq 27.1%Language:HTML 14.9%Language:Verilog 5.8%Language:Ada 3.1%Language:SystemVerilog 2.8%Language:C 2.2%Language:C++ 1.0%Language:Tcl 0.8%Language:V 0.3%Language:Stata 0.1%Language:Shell 0.1%Language:JavaScript 0.0%Language:Scala 0.0%Language:Assembly 0.0%Language:Forth 0.0%Language:Makefile 0.0%Language:CartoCSS 0.0%Language:Batchfile 0.0%Language:Objective-C 0.0%Language:Pascal 0.0%