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

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

3天内不再提示

Vivado HLS能否取代HDL开发

Hack电子 来源:Hack电子 2023-06-27 10:10 次阅读

大多数FPGA程序员认为,高级工具总是发出更大的比特流,作为提高生产率的 "代价"。但是这总是真的吗?

在本文中,我们展示了一个真实的例子,我们使用传统的RTL/Verilog工具创建了一个普通的网络函数(RSS),然后在相同的硬件上使用高级合成工具(HLS)来实现相同的功能。

我们发现,令人惊讶的是:HLS方法实际上使用了更少的FPGA门和内存。这好像和我们习惯的思维不太一致啊…

通过使用Vivado(Xilinx)或IntelQuartus)工具,FPGA开发的HLS方法是只抽象出可以在C/C++环境中轻松表达的应用程序的部分。

要想在HLS取得成功,重要的是要认识到项目中哪些部分或模块适合在HLS中实现。基本准则可以概括如下(可能描述不太清楚准确):

目标用途一般是以高级语言开始定义的IP块。一个数学算法会很有效,或者像我们的RSS块那样,一些网络协议处理。

另一类用途是定义不明确的块,因此可能需要多轮的实现。这里最大的好处是允许HLS工具自动对产生的本地FPGA代码进行流水线处理,通常比快速手工编码流水线的阶段要少。另外,当需要修改手工编码的流水线时,一个并行路径上的延迟变化会对所有的东西产生连锁反应。使用HLS工具自动进行第二次流水线,从头开始,消除了这种头痛的问题。

最后,HLS流程使不同FPGA品牌之间的代码移植变得更加容易。这是因为HLS会自动生成适当数量的流水线阶段--这是你在使用Verilog或VHDL时需要手动指定的。

目前HLS的局限性很明显,它的范围限于IP块。应用团队仍然需要其他组件的RTL。还应该注意的是,对于最简单的代码或主要由预先优化的组件组成的大型设计来说,HLS是一个不太理想的选择。

1. 用于做对比的应用,FPGA上的联网RSS

什么是RSS?RSS是 "接收方扩展 "的意思。它是一种散列算法,用于在多个CPU上有效分配网络数据包。RSS是现代以太网卡的一项功能,一般实现微软定义的特定托普利茨哈希。

f521c4b4-148e-11ee-962d-dac502259ad0.jpg

SmartNIC Shell框架的实施实例框图。这里的RSS块被替换成了HLS实现。

2. 用RTL和HLS实现RSS的结果对比

我们评估的假设如下:本地FPGA编码总是导致最小的资源使用。然而,BittWare的一位工程师对这一决定提出了质疑,并在HLS中重新实现了RSS,以测试这一方法。他是对的,现在BittWare已经用HLS代码取代了我们SmartNIC Shell中的RSS模块和解析器模块。

f53b1bda-148e-11ee-962d-dac502259ad0.jpg

两种实现方式的最大区别是Verilog/RTL版本使用了FIFO,而HLS C++版本没有使用。我们很惊讶地看到,通过转移到HLS,资源的使用量实际上下降了——这与我们预想的差异较大。

开发时间呢?粗略地说,我们看到原生RTL版本的时间线为一个月,而HLS代码在一周内完成。

3. 总结

“今天的高层FPGA开发工具被设计用来减少上市时间和对硬件工程师的依赖。然而,使用这些工具总是带来应用性能的妥协——无论是速度还是硅资源”。然而这种假设是错误的。

我们发现使用HLS为BittWare的SmartNIC Shell开发IP块,将开发时间从大约一个月缩短到一周。我们还发现,它实际上使用了更少的门电路来实现。

审核编辑:汤梓红

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

    关注

    1610

    文章

    21390

    浏览量

    595428
  • Verilog
    +关注

    关注

    28

    文章

    1328

    浏览量

    109507
  • HDL
    HDL
    +关注

    关注

    8

    文章

    324

    浏览量

    47144
  • 函数
    +关注

    关注

    3

    文章

    4117

    浏览量

    61550
  • Vivado
    +关注

    关注

    18

    文章

    791

    浏览量

    65451

原文标题:Vivado HLS 能否取代HDL开发

文章出处:【微信号:Hack电子,微信公众号:Hack电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    探索Vivado HLS设计流,Vivado HLS高层次综合设计

    作者:Mculover666 1.实验目的 通过例程探索Vivado HLS设计流 用图形用户界面和TCL脚本两种方式创建Vivado HLS项目 用各种
    的头像 发表于 12-21 16:27 3307次阅读

    【资料分享】Vivado HLS学习资料

    【资料分享】Vivado HLS学习资料
    发表于 11-02 11:21

    请问如何只下载Vivado HLS 2015.2

    嗨伙计,在我的PC Vivado设计套件2015.2和SDK 2015.2工作,但只有vivado HLS 2015.2没有打开,这就是为什么我想重新安装Vivado
    发表于 12-27 10:57

    vivado hls axi接口问题

    你好!如果我想使用vivado hls来合成具有axi流接口的代码,是否有必须遵循的标准编码风格?
    发表于 04-21 10:23

    Vivado HLS设计流的相关资料分享

    1.实验目的通过例程探索Vivado HLS设计流用图形用户界面和TCL脚本两种方式创建Vivado HLS项目用各种HLS指令综合接口优化
    发表于 11-11 07:09

    嵌入式硬件开发学习教程——Xilinx Vivado HLS案例 (流程说明)

    前 言本文主要介绍HLS案例的使用说明,适用开发环境:Windows 7/10 64bit、Xilinx Vivado 2017.4、Xilinx Vivado
    发表于 11-11 09:38

    Hackaday读者有话说:Vivado HLS使用经验分享

    ,Xilinx Vivado HLS是一个高级综合工具,能够将C语言转换成硬件描述语言(HDL),也就是说我们可以用C语言来实现HDL模块编程了。 图1
    发表于 02-08 20:01 581次阅读
    Hackaday读者有话说:<b class='flag-5'>Vivado</b> <b class='flag-5'>HLS</b>使用经验分享

    Vivado-HLS实现低latency 除法器

    1 Vivado HLS简介 2创建一个Vivado-HLS工程 2.1打开Vivado HLS GUI 2.2创建新工程 在 Welcom
    发表于 12-04 10:07 0次下载
    用<b class='flag-5'>Vivado-HLS</b>实现低latency 除法器

    介绍使用Vivado HLS时的几个误区

    在实际工程中,如何利用好这一工具仍值得考究。本文将介绍使用Vivado HLS时的几个误区。
    的头像 发表于 01-10 14:33 2w次阅读
    介绍使用<b class='flag-5'>Vivado</b> <b class='flag-5'>HLS</b>时的几个误区

    Vivado-HLS为软件提速

    本文内容介绍了基于用Vivado-HLS为软件提速,供参考
    发表于 03-26 16:09 8次下载

    基于Vivado HLS的计算机视觉开发

    OPENCV(Open Source Computer Vision)被广泛的使用在计算机视觉开发上。使用Vivado HLS视频库在zynq-7000全可编程soc上加速OPENCV 应用的
    发表于 11-10 10:47 1371次阅读

    极客对Xilinx Vivado HLS工具使用经验和心得

    介绍了如何利用Vivado HLS生成FIR滤波算法的HDL代码,并将代码添加到ISE工程中,经过综合实现布局布线等操作后生成FPGA配置文件,下载到FPGA开发板中,Darren采用
    的头像 发表于 07-30 17:04 4653次阅读

    Vivado HLS和Vitis HLS 两者之间有什么区别

    Vivado HLS 2020.1将是Vivado HLS的最后一个版本,取而代之的是VitisHLS。那么两者之间有什么区别呢? Default User Control Setti
    的头像 发表于 11-05 17:43 3.8w次阅读

    UltraFast Vivado HLS方法指南

    电子发烧友网站提供《UltraFast Vivado HLS方法指南.pdf》资料免费下载
    发表于 09-13 11:23 1次下载
    UltraFast <b class='flag-5'>Vivado</b> <b class='flag-5'>HLS</b>方法指南

    VIVADO HLS设计移植到CATAPULT HLS平台

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