按照师姐的提示,找到了一个思路比较清晰的算法:将矩阵运算转化为向量计算,并进行分块。其代码的编写和转化为Catapult C 下正确性
都好说,但是将循环进行展开之后,甘特图显示并没有如我所愿。分析之,可以看到在两次乘法之间有一个循环变量的加法操作,可是,理论
上,这个变量自加应该在乘法之后啊?不得其解,解决中!
Mul_2 文件
#include "array_mul.h"
#pragma hls_design top
void array_mul(d_s input_a[N][N],d_s input_b[N][N],d_s output_c[N][N])
{
d_s temp[N/num][N];
for(int i = 0;i < N;i++) //row
{
initial:for(int t_i = 0;t_i < N/num;t_i++)
for(int t_j = 0;t_j < N;t_j++)
temp[t_i][t_j] = 0;
for(int j = 0;j < N;j++) //line
{
get_kaui:for(int k = 0;k < N/num;k++)