0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

FPGA——HLS简介

FPGA设计论坛 来源:未知 2023-01-15 12:10 次阅读

HLS(high-level synthesis)称为高级综合, 它的主要功能是用 C/C++FPGA开发算法。这将提升FPGA 算法开发的生产力。

Xilinx最新的HLS是Vitis HLS。在Vivado 2020版本中替代原先的Vivado HLS, 功能略有差异。

HLS 的机理

简单地讲,HLS采样类似C语言来设计FPGA 逻辑。但是要实现这个目标,还是不容易的。毕竟软件和硬件的功能实现存在非常大的差别。软件主要针对顺序程序执行。即便是平行程序执行,也是通过OS 的任务调度CPU 的资源。宏观上是并发执行,而微观上仍然是顺序占用CPU 执行的。另一方面,基于FPGA 硬件逻辑,如果没有上下文关联,完全可以并行运行。在没有特别语法规则下,讲C语言程序转换成为硬件逻辑,并且尽量实现硬件的并行执行是有难度的。人们为此研究了将近20年。

在这个领域的主要贡献者是康奈尔大学的张志如博士,他是康奈尔大学ECE学院助理教授,计算机系统实验室成员。他目前的研究重点是异构计算的高级设计自动化。他的作品获得了 TODAES 的最佳论文奖和 ICCAD 的最佳论文提名。2006 年,他与人共同创立了 AutoESL Design Technologies, Inc.,将他关于高层次综合的博士论文研究商业化。AutoESL 于 2011 年被 Xilinx 收购,收购后 AutoESL 工具更名为 Vivado HLS。

了解了HLS 的实现机理,有助于编写出高效率的HLS 逻辑。

软件编译器讲高级语言翻译成为机器语言。主要关注的语言的语法转换规则,相比之下,HLS 的翻译难度更大一些,模块中的语句形式上是前后顺序排列。但是HLS尽力转换成为并行执执行的硬件逻辑。并且通过数据流,管道等技术实现硬件优化。笔者看来,HLS 的编译技术是非常了不起的。

HLS的目标是根据用户提供的输入和限制自动替用户做出很多决定,HLS自动完成以下曾经需要手动完成的工作。

  • HLS自动分析并利用一个算法中潜在的并发性

  • HLS自动在需要的路径上插入寄存器,并自动选择最理想的时钟

  • HLS自动产生控制数据在一个路径上出入方向的逻辑

  • HLS自动完成设计的部分与系统中其他部分的接口

  • HLS自动映射数据到储存单位以平衡资源使用与带宽

  • HLS自动将程序中计算的部分对应到逻辑单位,在实现等效计算的前提下自动选取最有效的实施方式。

二、HLS技术难点

所谓的高层次综合(HLS)就是将C/C++/System C描述的设计意图, “翻译“成用Verilog/System Verilog描述的RTL,多应用于运算逻辑主导的设计。

这就产生了几个问题:

  • HLS输入并不是软件语言。相反,它是对硬件的更抽象的描述。大多数HLS工具可以使用C语言、SystemC或者C++作为输入语言。

  • 从技术上来说,C++是一种“语言”,但从C/C++语言生成硬件电路模型来看,它也意味着算法的抽象级别。

  • 原始的C代码经常会被修改

使用HLS将软件代码综合成实际的硬件电路时,存在几个基本挑战

  • 代码必须由HLS引擎合成,也就是说,必须将代码编写或重构为硬件可综合的格式,其对习惯于使用标准C/C++编写的软件工程师而言非常重要。

  • HLS编码的可综合性准则很重要,工程师必须熟悉这些涵盖数百页文档的准则。

  • 一旦代码可综合,还需要一定程度的底层硬件意识。





扫描二维码获取

更多精彩

FPGA设计论坛





欢迎关注至芯科技

至芯官网:www.zxopen.com

至芯科技技术论坛:www.fpgaw.com

至芯科技淘宝网址:

https://zxopen.taobao.com

至芯科技FPGA初级课程(B站):

https://space.bilibili.com/521850676

至芯科技FPGA在线课程(腾讯课堂):

https://zxopenbj.ke.qq.com/

至芯科技-FPGA 交流群(QQ):282124839

更多资料下载欢迎注册http://www.fpgaw.com

扫码加微信回复加群

邀请您加入FPGA学习交流群




欢迎加入至芯科技FPGA微信学习交流群,这里有一群优秀的FPGA工程师、学生、老师、这里FPGA技术交流学习氛围浓厚、相互分享、相互帮助、叫上小伙伴一起加入吧!

点个在看你最好看





原文标题:FPGA——HLS简介

文章出处:【微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • FPGA
    +关注

    关注

    1629

    文章

    21735

    浏览量

    603154

原文标题:FPGA——HLS简介

文章出处:【微信号:gh_9d70b445f494,微信公众号:FPGA设计论坛】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于FPGA实现图像直方图设计

    简单,单采用FPGA来实现直方图的统计就稍显麻烦。若使用Xilinx和Altera的FPGA芯片,可以使用HLS来进行图像的加速处理。但这暂时不是我的重点。 用C语言实现直方图统计:unsigned
    的头像 发表于 12-24 10:24 75次阅读
    基于<b class='flag-5'>FPGA</b>实现图像直方图设计

    FPGA驱动AD芯片之实现与芯片通信

    概述: 利用FPGA实现AD芯片的时序,进一步实现与AD芯片数据的交互,主要熟悉FPGA对时序图的实现,掌握时序图转换Verilog硬件描述语言技巧后与其它芯片进行数据的交互也是类似的。 说明
    的头像 发表于 12-17 15:27 200次阅读
    <b class='flag-5'>FPGA</b>驱动AD芯片之实现与芯片通信

    助力AIoT应用:在米尔FPGA开发板上实现Tiny YOLO V4

    Darknet 上训练的截图 四、 通过 Vivado HLSFPGA 准备模型要将模型部署到 FPGA,需要将神经网络操作转换为硬件级描述。使用 Xilinx 的 Vitis HLS
    发表于 12-06 17:18

    FPGA基础知识及设计和执行FPGA应用所需的工具

    本文将首先介绍FPGA的基础知识,包括FPGA的工作原理以及为什么要使用FPGA等,然后讨论设计和执行FPGA应用所需的工具。
    的头像 发表于 11-11 11:29 741次阅读
    <b class='flag-5'>FPGA</b>基础知识及设计和执行<b class='flag-5'>FPGA</b>应用所需的工具

    优化 FPGA HLS 设计

    优化 FPGA HLS 设计 用工具用 C 生成 RTL 的代码基本不可读。以下是如何在不更改任何 RTL 的情况下提高设计性能。 介绍 高级设计能够以简洁的方式捕获设计,从而
    发表于 08-16 19:56

    如何在服务器上调试本地FPGA板卡

    ?》。 简介 Vivado 可以在功能更强大的服务器上远程运行,同时可以在本地PC上连接的 FPGA 板卡上进行开发调试。在此配置中,服务器和工作站必须安装相同版本的 Vivado
    发表于 07-31 17:36

    一种在HLS中插入HDL代码的方式

    很多人都比较反感用C/C++开发(HLSFPGA,大家第一拒绝的理由就是耗费资源太多。但是HLS也有自己的优点,除了快速构建算法外,还有一个就是接口的生成,尤其对于AXI类接口,按照标准语法就可以很方便地生成相关接口。
    的头像 发表于 07-16 18:01 734次阅读
    一种在<b class='flag-5'>HLS</b>中插入HDL代码的方式

    # FPGA 编程如何工作?

    目标,Python 使用PYNQ,这是一个开源项目,可以轻松地与 AMD 平台配合使用。 =#5。= C 和 C++ 由于具有高级综合 (HLS) 功能,基于 C 的语言非常适合 FPGA 设计。 AMD
    发表于 03-30 11:50

    品读《基于FPGA与RISC-V的嵌入式系统设计》

    2.4 FPGA 开发中硬件设计语言的选择 2.4.1 VHDL与 System Verilog/Verilog 2.4.2 HLS 2.4.3 System C 2.4.4 Chisel
    发表于 03-29 00:06

    FPGA版通用图形处理架构创新解决方案

    ThunderGP是基于HLS的开源通用图形处理框架,支持Vitis和SDAccel开发环境,适用于U50、U200、U250和VCU1525等Xilinx Alveo平台(官方开发板)。
    发表于 03-26 12:16 496次阅读
    <b class='flag-5'>FPGA</b>版通用图形处理架构创新解决方案

    为何高端FPGA都非常重视软件

    和Achronix在其设备架构中都采取了一些新颖的架构步骤,以帮助实现当今大型复杂设计的时序收敛。 但是,赛灵思在FPGA领域也领导了高级综合(HLS)领域,而且Vivado HLS是(迄今为止,我们相信
    发表于 03-23 16:48

    如何优化HLS仿真脚本运行时间

    需求:由于自己目前一个 HLS 仿真脚本需要运行 1个多小时,先打算通过打印时间戳的方式找出最耗时的部分,然后想办法优化。
    的头像 发表于 02-23 09:29 691次阅读

    fpga是什么 fpga用什么编程语言

    FPGA(Field-Programmable Gate Array)是一种可编程逻辑技术,它使用可重构的硬件单元(如门阵列和查找表)来实现电路功能。相比传统的专用集成电路(ASIC),FPGA具有
    的头像 发表于 02-04 15:26 1670次阅读

    高云FPGA简介

    高云是一家专业从事现场可编程逻辑器件(FPGA)研发与设计的国产FPGA高科技公司,致力于向客户提供从芯片、EDA开发软件、IP、开发板到整体系统解决方案的一站式服务。高云半导体在FPGA芯片架构
    发表于 01-28 17:35

    AMD-Xilinx的Vitis-HLS编译指示小结

    。流水线设计的具体内容在我看到的这篇博客【FPGA中流水线的原因和方法】中讲的很明白,这里不再赘述。 在HLS中,pipeline指令单指函数内部的流水,举一个简单的例子: void func(int m
    发表于 12-31 21:20