HLS
文章平均质量分 67
风尘23187
这个作者很懒,什么都没留下…
展开
-
HLS 3 FPGA并行化 稀疏矩阵向量乘法(计算机视觉)
CRS作为一种数据结构,由3个数组组成。值(values)数组保存矩阵中非零元素的值。列索引(columnIndex)数组和行指针(rowPtr)数组对非零元素的位置信息进行编码。列索引存储每个元素的列数,行指针包含每一行第一个元素在values中的索引。CRS 结构避免存储矩阵中的0值,确实在数值数组中确实没有存储0。但是在这个例子中,虽然数值数组不保存0,但是列索引数组和行指针数组作为标记信息,表示了矩阵的形态。CRS 广泛用于大型的矩阵但是仅仅有少量的非零元素(少于10%或者更低),这样可以简化这类原创 2022-03-23 20:40:29 · 3289 阅读 · 0 评论 -
HLS 3 FPGA并行化 离散傅里叶变换
实现矩阵向量乘法的简单代码#define SIZE 8typedef int BaseType;void matrix_vector(BaseType M[SIZE][SIZE], BaseType V_In[SIZE], BaseType V_Out[SIZE]) { BaseType i, j;data_loop: for (i = 0; i < SIZE; i++) { BaseType sum = 0; dot_product_loop:原创 2022-03-23 19:53:11 · 481 阅读 · 0 评论 -
HLS_2 数据精度处理
1.任意精度整数对于C99编译器来说整数的精度只有16位。更进一步,C99标准对于整数只定义了4位宽度,那么下面两段代码得出的P值是等效的:code1:#include "inttypes.h"uint16_t a = 0x4000;uint16_t b = 0x4000;//Danger! p depends on sizeof(int)uint32_t p = a * b;code2:#include "inttypes.h"//4.0 represented with 12 fr原创 2022-03-23 18:56:34 · 1210 阅读 · 0 评论 -
HLS_1 FPGA并行编程_FIR
fir.cpp#include "fir.h"void fir(data_t *y,data_t x){ coef_t C[N] = {53,0,-91,0,313,500,313,0,-91,0,53}; static data_t shift_reg[N]; acc_t acc; int i; acc = 0; Shift_Accum_Loop: for(i = N - 1;i >= 0;i--){ if(i == 0){ acc += x * C[0]; sh原创 2022-03-23 13:37:33 · 495 阅读 · 0 评论