Xilinx HLS 学习笔记1

本笔记根据《跟Xilinx SAE 学HLS系列视频讲座-高亚军》课程进行学习,仅作为本人学习笔记使用,暂不公开。
相关学习笔记参考了’安静到无声‘同学的博客,在此表示感谢
https://blog.csdn.net/lihuanyu520/article/details/108926806

0、先验知识

Xilinx HLS 学习笔记1_第1张图片
软件可编程芯片主要分为几大类:
CPU:管理和调度
DSP:算法上加强,做一些递归算法
DPU:高度并行,适合大数据的流处理

在面对大量计算时,有两种方法:
1、提高主频,即提高CPU的时钟频率,但提升有限
2、增加运算核心,以此提高并行度
但会出现功耗的问题

FPGA
1、内部包含大量的乘法单元
2、SoC,将ARM融合
3、与CPU相比,功耗更优
下图:传统FPGA资源:可编程逻辑、可编程IO、布线资源
Xilinx HLS 学习笔记1_第2张图片
随着技术发展,目前FPGA内部的单元越来越多,我们主要关注:存储单元,逻辑单元,算数逻辑单元
Xilinx HLS 学习笔记1_第3张图片

逻辑单元:

主要包含查找表(LUT)、MUX、Carry Chain(进位链)
Xilinx HLS 学习笔记1_第4张图片

算数逻辑单元

Xilinx HLS 学习笔记1_第5张图片

存储单元

大量数据用Block RAM
小数据用LUTin SLICEM
Xilinx HLS 学习笔记1_第6张图片

1、软件工程师需要关注什么

优化与资源占用率
Xilinx HLS 学习笔记1_第7张图片
Xilinx HLS 学习笔记1_第8张图片

2、HLS工作原理

Xilinx HLS 学习笔记1_第9张图片

HLS好处有哪些

1、提高系统的性能,以往采用CPU现在可以使用FPGA实现
2、关注算法本身,采用C或C++实现算法,通过工具去转换
3、提升开发效率,指导综合工具,提高转换后的效率
4、用C/C++进行开发和验证,需要做两端
Xilinx HLS 学习笔记1_第10张图片

转换过程
上下两图结合看
Xilinx HLS 学习笔记1_第11张图片
例子1:
Xilinx HLS 学习笔记1_第12张图片
for循环例子
Xilinx HLS 学习笔记1_第13张图片
C0状态:先执行“b+c”操作,因为这两个变量求和是固定的数值
C1状态:产生X数组、Y数据的地址
C2:执行相应乘加操作
C3:将结果写入到Y数组

矩阵加法例子
Xilinx HLS 学习笔记1_第14张图片

Xilinx HLS 学习笔记1_第15张图片

3、与传统流程对比

Xilinx HLS 学习笔记1_第16张图片
Xilinx HLS 学习笔记1_第17张图片

你可能感兴趣的:(FPGA,HLS,FPGA,Xilinx)