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

软件可编程芯片主要分为几大类:
CPU:管理和调度
DSP:算法上加强,做一些递归算法
DPU:高度并行,适合大数据的流处理
在面对大量计算时,有两种方法:
1、提高主频,即提高CPU的时钟频率,但提升有限
2、增加运算核心,以此提高并行度
但会出现功耗的问题
FPGA
1、内部包含大量的乘法单元
2、SoC,将ARM融合
3、与CPU相比,功耗更优
下图:传统FPGA资源:可编程逻辑、可编程IO、布线资源

随着技术发展,目前FPGA内部的单元越来越多,我们主要关注:存储单元,逻辑单元,算数逻辑单元

逻辑单元:
主要包含查找表(LUT)、MUX、Carry Chain(进位链)

算数逻辑单元

存储单元
大量数据用Block RAM
小数据用LUTin SLICEM

1、软件工程师需要关注什么
优化与资源占用率


2、HLS工作原理

HLS好处有哪些
1、提高系统的性能,以往采用CPU现在可以使用FPGA实现
2、关注算法本身,采用C或C++实现算法,通过工具去转换
3、提升开发效率,指导综合工具,提高转换后的效率
4、用C/C++进行开发和验证,需要做两端

转换过程
上下两图结合看

例子1:

for循环例子

C0状态:先执行“b+c”操作,因为这两个变量求和是固定的数值
C1状态:产生X数组、Y数据的地址
C2:执行相应乘加操作
C3:将结果写入到Y数组
矩阵加法例子


3、与传统流程对比


本文是基于《跟Xilinx SAE 学HLS系列视频讲座》的学习笔记,介绍了FPGA的逻辑单元、HLS的优势、设计流程,并探讨了数据类型、TestBench设计和接口综合。主要内容包括HLS的工作原理、与传统流程对比、HLS设计步骤,以及数据类型的使用和接口协议解析。
最低0.47元/天 解锁文章
3581

被折叠的 条评论
为什么被折叠?



