HLS创建矩阵乘法加速器
目录
一、实验目的
通过HLS自动生成一个对两个4*4的矩阵进行乘法的电路,然后通过HLS进行优化,打包AXI接口并创建IP,最后在vivado中调用,在SDK中进行正确性检验。本篇我们只介绍HLS如何加速并打包生成IP,与vivado的联合测试将在下一篇介绍。
二、HLS设计
首先创建一个工程,我的工程名叫matrix,然后在source中添加两个文件,一个是.cpp文件,用来进行函数的定义,还要创建一个.h文件,用来对函数进行声明,我的两个文件都叫做matrix_mul,只是后缀名不同。然后在testbench中创建一个程序,名为main.c,用来提供输入并接受输出,这样便可以检测程序或者说电路的正确性了。
首先是matrix.cpp文件,内容如下:
#include "matrix_mul.h"
#include "matrix_mul.h"
void matrix_mul(ap_int<8> A[4][4],ap_int<8> B[4][4],ap_int<16> C[4][4])
{
for(int i=0;i<4;i++)
{
for(int j=0;j<4;j+