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

    关注

    1602

    文章

    21320

    浏览量

    593199

原文标题:FPGA——HLS简介

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

收藏 人收藏

    评论

    相关推荐

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

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

    使用Vivado高层次综合(HLS)进行FPGA设计的简介

    电子发烧友网站提供《使用Vivado高层次综合(HLS)进行FPGA设计的简介.pdf》资料免费下载
    发表于 11-16 09:33 0次下载
    使用Vivado高层次综合(<b class='flag-5'>HLS</b>)进行<b class='flag-5'>FPGA</b>设计的<b class='flag-5'>简介</b>

    HLS中组合电路对设计的影响

    该项目通过一个示例演示了 HLS 中组合电路对设计的影响。
    的头像 发表于 11-03 09:04 421次阅读
    <b class='flag-5'>HLS</b>中组合电路对设计的影响

    【KV260视觉入门套件试用体验】硬件加速之—使用PL加速矩阵乘法运算(Vitis HLS

    Virtual Cable)调试FPGA逻辑 三、硬件加速之—使用PL加速FFT运算(Vivado) 四、硬件加速之—使用PL加速矩阵乘法运算(Vitis HLS) 后四期测评计划: 五、Vitis AI
    发表于 10-13 20:11

    什么是DASH和HLS流?

    -自适应流- HTTP) HLS(HTTP- Live-流) 两种协议的工作方式相似——数据被编码(分割)成块并发送到客户端进行查看。 一、HLS(HTTP直播) HLS(即HTTP Live
    的头像 发表于 10-09 17:16 565次阅读
    什么是DASH和<b class='flag-5'>HLS</b>流?

    HLS中RTL无法导出IP核是为什么?

    请教一下,我在HLS里面要将以下程序生成IP核,C Synthesis已经做好了,但是在export RTL的时候一直在运行 int sum_single(int A int B
    发表于 09-28 06:03

    Vitis HLS移植指南

    电子发烧友网站提供《Vitis HLS移植指南.pdf》资料免费下载
    发表于 09-13 09:21 0次下载
    Vitis <b class='flag-5'>HLS</b>移植指南

    将VIVADO HLS设计移植到CATAPULT HLS平台

    电子发烧友网站提供《将VIVADO HLS设计移植到CATAPULT HLS平台.pdf》资料免费下载
    发表于 09-13 09:12 2次下载
    将VIVADO <b class='flag-5'>HLS</b>设计移植到CATAPULT <b class='flag-5'>HLS</b>平台

    嵌入式HLS 案例开发步骤分享——基于Zynq-7010/20工业开发板(1)

    \FPGA-HLS-demos\”目录下, 案例目录详细说明如下表。 表 1目录目录文件/目录说明 hls_ip_demobin 或hw/binxxx_xc7z010.bin/xxx_xc7z010.bitxc7z010 PL
    发表于 08-24 14:40

    如何在Vitis HLS GUI中使用库函数?

    Vitis™ HLS 2023.1 支持新的 L1 库向导,本文将讲解如何下载 L1 库、查看所有可用功能以及如何在 Vitis HLS GUI 中使用库函数。
    的头像 发表于 08-16 10:26 620次阅读
    如何在Vitis <b class='flag-5'>HLS</b> GUI中使用库函数?

    使用VVAS调用HLS生成硬件加速器的主要流程

    本篇博客介绍 VVAS 框架所支持调用的 H/W(HLS) 内核。 H/W 内核指的是使用 HLS 工具生成的在 FPGA 部分执行的硬件功能模块。
    的头像 发表于 08-04 11:00 380次阅读
    使用VVAS调用<b class='flag-5'>HLS</b>生成硬件加速器的主要流程

    基于HLS之任务级并行编程

      HLS任务级编程第一篇文章可看这里: HLS之任务级并行编程 HLS的任务级并行性(Task-level Parallelism)分为两种:一种是控制驱动型;一种是数据驱动型。对于控制驱动
    的头像 发表于 07-27 09:22 794次阅读
    基于<b class='flag-5'>HLS</b>之任务级并行编程

    调用HLS的FFT库实现N点FFT

    HLS中用C语言实现8192点FFT,经过测试,实验结果正确,但是时序约束不到100M的时钟,应该是设计上的延时之类的比较大,暂时放弃这个方案,调用HLS中自带的FFT库(hls:fft
    的头像 发表于 07-11 10:05 657次阅读
    调用<b class='flag-5'>HLS</b>的FFT库实现N点FFT

    关于HLS IP无法编译解决方案

    Xilinx平台的Vivado HLS 和 Vitis HLS 使用的 export_ip 命令会无法导出 IP
    的头像 发表于 07-07 14:14 402次阅读
    关于<b class='flag-5'>HLS</b> IP无法编译解决方案

    如何使用HLS加速FPGA上的FIR滤波器

    电子发烧友网站提供《如何使用HLS加速FPGA上的FIR滤波器.zip》资料免费下载
    发表于 06-14 15:28 1次下载
    如何使用<b class='flag-5'>HLS</b>加速<b class='flag-5'>FPGA</b>上的FIR滤波器