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
    +关注

    关注

    1663

    文章

    22493

    浏览量

    638949

原文标题:FPGA——HLS简介

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    HLS设计中的BRAM使用优势

    高层次综合(HLS)是一种将高级编程语言(如C、C++或SystemC)转换为硬件描述语言(HDL)的设计方法。在FPGA设计中,设计者可以灵活地利用FPGA内部的资源,如块RAM(BRAM)。虽然
    的头像 发表于 01-28 14:36 394次阅读

    通过vivado HLS设计一个FIR低通滤波器

    Vivado HLS是一款强大的高层次综合工具,可将C/C++代码转换为硬件描述语言(HDL),显著提升FPGA开发效率。
    的头像 发表于 01-20 16:19 513次阅读
    通过vivado <b class='flag-5'>HLS</b>设计一个FIR低通滤波器

    MarketsandMarkets FPGA行业报告,2026~2030 FPGA市场洞察

    2025年10月,全球知名市场研究与商业洞察权威咨询机构 MarketsandMarkets 发布 Field-Programmable Gate Array (FPGA) MarketSize
    的头像 发表于 11-20 13:20 717次阅读
    MarketsandMarkets <b class='flag-5'>FPGA</b>行业报告,2026~2030 <b class='flag-5'>FPGA</b>市场洞察

    蜂鸟处理器+OV5640摄像头模块开发

    的运行。 接下来介绍OV5640摄像头模块,可以参考OV5640 datasheet,这里推荐CrazyBingo提供的教程 http://crazyfpga.com/ 。 在实际工程中
    发表于 10-31 07:59

    硬件黑客集结:开源FPGA开发板测评活动全网火热招募中......

    一开源活动简介近期,小眼睛科技联合紫光同创及电子发烧友发起了#拥抱开源!一起来做FPGA开发板活动,活动一经发布,得到了很多开源爱好者的热烈响应,再次感谢大家的支持!开源FPGA项目自发布以来,得到
    的头像 发表于 10-29 08:05 836次阅读
    硬件黑客集结:开源<b class='flag-5'>FPGA</b>开发板测评活动全网火热招募中......

    基于FPGA的肤色检测方案简介

    的白色区域扩大,从而抵消腐蚀操作对图像带来的变化。通过腐蚀和膨胀,可以在几乎不改变图像的前提下消除干扰,提高肤色检测准确度。其效果如下所示: 在FPGA中,实现腐蚀和膨胀操作最主要的就是按照
    发表于 10-28 07:07

    如何在vivadoHLS中使用.TLite模型

    本帖欲分享如何在vivadoHLS中使用.TLite模型。在Vivado HLS中导入模型后,需要设置其输入和输出接口以与您的设计进行适配。 1. 在Vivado HLS项目中导入模型文件 可以
    发表于 10-22 06:29

    Altera Agilex™ 3 FPGA和SoC FPGA

    Altera Agilex™ 3 FPGA和SoC FPGA Altera/Intel Agilex™ 3 FPGA和SoC FPGA使创新者能够将成本优化的设计提升到更高的性能水平。
    的头像 发表于 08-06 11:41 4467次阅读
    Altera Agilex™ 3 <b class='flag-5'>FPGA</b>和SoC <b class='flag-5'>FPGA</b>

    基于FPGA的压缩算法加速实现

    法的速度。我们将首先使用C语言进行代码实现,然后在Vivado HLS中综合实现,并最终在FPGA板(pynq-z2)上进行硬件实现,同时于jupyter notebook中使用python来进行功能验证。
    的头像 发表于 07-10 11:09 2566次阅读
    基于<b class='flag-5'>FPGA</b>的压缩算法加速实现

    如何在Unified IDE中创建视觉库HLS组件

    最近我们分享了开发者分享|AMD Vitis HLS 系列 1 - AMD Vivado IP 流程(Vitis 传统 IDE)和开发者分享|AMD Vitis HLS 系列 2:AMD
    的头像 发表于 07-02 10:55 1660次阅读
    如何在Unified IDE中创建视觉库<b class='flag-5'>HLS</b>组件

    使用AMD Vitis Unified IDE创建HLS组件

    这篇文章在开发者分享|AMD Vitis HLS 系列 1 - AMD Vivado IP 流程(Vitis 传统 IDE) 的基础上撰写,但使用的是 AMD Vitis Unified IDE,而不是之前传统版本的 Vitis HLS
    的头像 发表于 06-20 10:06 2521次阅读
    使用AMD Vitis Unified IDE创建<b class='flag-5'>HLS</b>组件

    开源FPGA硬件,核心开发者招募中......

    01背景简介近期,小眼睛科技联合紫光同创及电子发烧友发起了#拥抱开源!一起来做FPGA开发板活动,活动一经发布,得到了很多开源爱好者的热烈响应,再次感谢大家的支持!为便于活动顺利开展,我们将根据大家
    的头像 发表于 06-20 08:03 1260次阅读
    开源<b class='flag-5'>FPGA</b>硬件,核心开发者招募中......

    如何使用AMD Vitis HLS创建HLS IP

    本文逐步演示了如何使用 AMD Vitis HLS 来创建一个 HLS IP,通过 AXI4 接口从存储器读取数据、执行简单的数学运算,然后将数据写回存储器。接着会在 AMD Vivado Design Suite 设计中使用此 HLS
    的头像 发表于 06-13 09:50 2214次阅读
    如何使用AMD Vitis <b class='flag-5'>HLS</b>创建<b class='flag-5'>HLS</b> IP

    FPGA与高速ADC接口简介

    本文介绍FPGA与高速ADC接口方式和标准以及JESD204与FPGA高速串行接口。
    的头像 发表于 06-12 14:18 3392次阅读
    <b class='flag-5'>FPGA</b>与高速ADC接口<b class='flag-5'>简介</b>

    智多晶FPGA设计工具HqFpga接入DeepSeek大模型

    在 AI 赋能工程设计的时代浪潮中,智多晶率先迈出关键一步——智多晶正式宣布旗下 FPGA 设计工具 HqFpga 接入 DeepSeek 大模型,并推出 FPGA 设计专属 AI 助手——晶小助!这是
    的头像 发表于 06-06 17:06 1725次阅读