在神经网络的fpga加速中,定点运算不仅比浮点运算更节省资源,还具有更快的速度,而且因为定点运算造成的神经网络的精度损失亦可忽略不计。本节介绍如何使用HLS进行定点运算以及如何与zynq cpu交互。
HLS中,有头文件ap_fixed.h,极大的方便了我们使用定点数,具体情况略。
HLS代码示例#include
#include
typedef ap_fixed data_t;
data_t fixed_test(volatile data_t *src1,volatile data_t *src2,volatile data_t *dest){
#pragma HLS INTERFACE m_axi depth=100 port=src1 offset=slave bundle=MASTER_BUS1
#pragma HLS INTERFACE m_axi depth=100 port=src2 offset=slave bundle=MASTER_BUS2
#pragma HLS INTERFACE m_axi depth=100 port=dest offset=slave bundle=MASTER_BUS3
#pragma HLS INTERFACE s_axilite port=return bundle=CRTL_BUS
data_t buff1[100];
data_t buff2[100];
data_t buff3[100];
memcpy(buff1,(const data_t*)src1,10*sizeof(data_t));
memcpy(buff2,(const data_t*)src2,10*sizeof(data_t));
int i;
for(i=0;i
关注
打赏