HLS编程环境入门

一、HLS
HLSHLS(High Level Synthesis,高层次综合)是一种代码的综合技术,可以将C或者c++语言编译为FPGA能够读懂和运行的RTL级别的语言。与VHDL/Verilog相比,他们之间的关系就像从前的汇编语言与c语言。HLS对于学生来说更容易上手学习,开发效率要高于使用VHDL/Verilog,但代价是资源和性能存在一定浪费。技术优势1、提高抽象级别,减少最初的设计工作量2、验证加速3、设计空间探索(DSE)更快4、定位新平台简单存在问题HLS的历史可以追溯到1970年代和1980年代,但直到本世纪初,他才成为该行业的可行选择,其中重要的约束原因就是结果质量,即资源使用和性能,与一般的RTL方法相比较差,而且对从业开发人员的要求比较高。
参考:http://www.360doc.cn/article/60086591_951190517.html
二、HLS编程
推荐安装Vivado 18大致流程如下:
1.创建工程,编译、仿真、debug调试
2.c仿真和C联合RTL仿真,c综合可以采用优化指令
3.生成综合分析报告并分析设计
4.验证RTL的实现
5.打包RTL进入IP块
在这里插入图片描述
三、HLS工具的主流优化方法
字长分析和优化FPGA的一个最主要特点就是可以任意字长的数据通路和运算。因此,FPGA的HLS工具不需要拘泥于某种固定长度的表达方式,而可以对设计进行全局或局部的字长优化,从而达到性能提升和面积缩减的双重结果。然而,字长分析和优化需要HLS的使用者对待综合的算法和数据集有深入的了解。循环优化循环优化一直是HLS优化方法的研究重点和热点,因为这是将原本顺序执行的高层软件循环有效映射到并行执行的硬件架构的重点环节。循环优化的最终目的,就是尽量将循环里两次相邻的操作以最小的时延实现,理想情况下,相邻的循环操作可以完全并行执行。然而由于硬件资源的限制,以及更多的是因为循环间存在嵌套和依赖关系,很难将循环完全展开。如何优化各种循环以实现最优的硬件结构,就成为了学术界和工业界最为关心的要点。对软件并行性的支持C/C++与RTL相比,一个主要的区别是,前者编写的程序被设计用来在处理器上顺序执行,而后者可以通过直接例化多个运算单元,实现任务的并行处理。随着处理器对并行性的逐步支持,以及如GPU等非处理器芯片的兴起,C/C++开始逐渐引入对并行性的支持。因此作为HLS工具,势必要增加对这些软件并行性的支持。
参考:https://blog.csdn.net/qq_16923717/article/details/78223948?utm_source=app&app_version=4.8.0&code=app_1562916241&uLinkId=usr1mkqgl919blen

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值