HLS(high-level-synthesis),高级综合,将C/C++/SystemC编写的软体算法综合成RTL编码(VHDL/HDL),以实现软件算法设计的硬件加速和硬件电路设计的抽象级设计&验证。
HLS(High-level-synthesis,高级综合)工具是指将C、C++或SystemC编写的C规范代码转换为寄存器传输级(RTL)实现,并将其综合到现场可编程门阵列(FPGA)上,以实现软件的硬件加速效果。而FPGA提供了一种大规模并行架构,在性能、成本和功耗方面都优于传统处理器。HLS的目标是通过让硬件设计人员在更高的抽象级别上描述设计,从而更有效地构建和验证硬件。
本文概述了HLS高级综合的应用背景、基本要素以及优势。
1. FPGA应用领域的拓展
随着当前各领域计算速度以及数据处理实时性的需求不断增长,FPGA的应用领域也在不断拓展。传统通信、工业控制等传统领域已经逐渐趋于成熟,然而近年来随着云计算/边缘计算、大数据、AI人工智能、物联网等的发展,FPGA开始向新领域不断扩展。
2. 算法借助硬件加速的需求
随着高速信息化的到来,诸如AI、自动驾驶、工业物联网、大数据等领域的算法对数据处理的实时性和计算时延的要求越来越高。然而纯软件所能达到的运算效率似乎已经碰到了瓶颈,这就使得越来越多的人开始借助硬件加速算法运算效率,各种控制器&计算单元的异构计算(CPU+GPU/ASIC/FPGA)层出不穷,而FPGA的高度并行性、强控制能力和可重构性使得其地位逐渐突显出来。
3. 算法实现硬件加速的困难
由于硬件无法直接识别C规范的语言,一般是寄存器传输级(RTL)如VHDL或HDL。而硬件描述语言和程序设计语言存在本质上的区别,前者更倾向电路器件思维,后者更倾向函数功能思维,往往需要软件工程师来实现算法的功能之后交给硬件工程师实现硬件加速,这就导致算法实现硬件加速过程会有更多的时间和经济开销。
于是就有了高级综合(HLS)工具的诞生,虽然HLS的前景是希望软件工程师能够直接实现硬件加速(抢硬件工程师饭碗),但由于其转换能力有待提升,直接转换的代码有时候会差强人意(主要是不如高级硬件工程师实现的效果好),使得HLS逐渐转换成了硬件工程师加速FPGA开发的工具,省去了硬件工程师将软件算法从头转换成硬件编码的步骤,只需要在HLS自动生成的硬件编码上进一步修改即可。
高级综合(HLS)包括以下步骤:
高级综合(HLS)将C代码综合成:
为了确定设计是否满足需求,在HLS生成的综合报告中可以查看性能指标。综合报告包含以下性能指标的信息:
本文主概述了HLS的应用前景和优势,作为一名搞过软件设计的硬件工程师(PS.搞软件的可以不懂硬件设计,但是搞硬件的一定不能不懂软件设计),通过抽象语言的算法实现,HLS确实可以在一定程度上节省开发时间,但其也还有很大的拓展空间,我们目前有一款在研的HLS辅助工具,如果您有意向,可以联系我们广州虹科,或者关注我们公众号:FPGA技术支持。
由于我们和赛灵思有合作,所以我们采用的HLS工具是赛灵思的vivado HLS。本文主要参考了赛灵思官方文件《UG902-vivado-high-level-synthesis》。推荐学习如何使用vivado HLS可以参考《UG871》。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算