专栏首页Lauren的FPGAHLS优化方法DATAFLOW你用了吗

HLS优化方法DATAFLOW你用了吗

上期内容:异步跨时钟域电路该怎么约束

DATAFLOW作为HLS的一种优化方法,对于改善吞吐率(Throughput)、降低延迟(Latency)非常有效。

DATAFLOW的作用对象

DATAFLOW可以作用于函数,也可以作用于for循环。如下图所示(图片来源Figure62, Figure 63, ug902)。无论是作用于函数还是for循环,都要求数据在函数之间顺序流动,没有反馈回路。

DATAFLOW优化前后对比

我们看一个简单的案例,如下图所示(图片来源Figure64, ug902)。顶层函数top下调用了3个子函数。这3个子函数之间的数据是顺序流动的,因此可以用DATAFLOW来优化。如果不使用DATAFLOW,意味着func_A处理结束,才能处理func_B,func_B处理结束,才能处理func_C。这其实就是C语言的处理方式即顺序执行。但从硬件角度看,只有func_A有输出数据,就可以传递给func_B进行处理。这就实现了这3个函数的并行处理,从而将II由8降至3,Latency由8降至5。

DATAFLOW的原理

DATAFLOW需要额外的硬件资源开销。这是因为Vivado HLS会对相应的函数或者循环进行分析,然后对中间数据(子函数的输出或者循环体中的变量)进行缓存。缓存可能需要用到FIFO或者采用乒乓Buffer(RAM)的方式,如下图所示(图片来源Figure65, ug902)。通常对于标量,HLS会采用FIFO缓存;对于数组,HLS会采用乒乓Buffer缓存。

在报告中确认DATAFLOW

一旦使用了DATAFLOW,在综合报告中会明确地显示处理。同时,在Analysis窗口中可以看到红色椭圆方框标记的图标,如下图所示。

文 | Lauren 图 | Lauren

Copyright @ Lauren的FPGA

转载事宜请私信 | 获得授权后方可转

本文分享自微信公众号 - Lauren的FPGA(Lauren_FPGA),作者:LaurenGao

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-06-02

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 约束文件有哪些

    对于一个完整的FPGA设计,既要有时序约束,也要有物理约束(例如:管脚分配与管脚电平设置)。Xilinx建议将这两类约束分开写在不同的约束文件中。此外,考虑到某...

    Lauren的FPGA
  • 都是pin,有什么区别

    打开任何阶段的DCP,选中一个cell,按F4,都会显示其Schematic视图。在这个视图中,可以清楚地看到每个cell的pin。小到一个触发器、查找表,大到...

    Lauren的FPGA
  • 深度解析ug1292(10)

    使用report_failpast之前,要先确保Design Utilities已经安装。安装方法是点击Tools->Xilinx Tcl Store,如下图所...

    Lauren的FPGA
  • CentOS中搭建NTP网络时间服务器

    网络时间协议(NTP)用来同步网络上不同主机的系统时钟。所有受管理的主机可以与一台名为NTP服务器的指定时间服务器同步时间。另一方面,NTP服务器则与任何公共N...

    NTP网络同步时钟
  • Skype for Business后端服务器部署AlwaysOn可用性组实战篇

    企业内部自建的Lync Server 2013统一通信平台,在Skype for Business Server 2015发布后,通过就地升级方式已经完成升级,...

    杨强生
  • 原创 | Springboot任务

    异步任务:其实就是一个很特别的方法,这个方法没有返回值(也可以有返回值,后面会说的),但是方法内部的逻辑会耗费很多时间!例如,用户请求每次到controller...

    润森
  • Python range() 函数

    range()是python的内置函数,用的地方挺多的,目前我经常会在for循环中作为循环的次数来使用,其实range()的用法不仅仅如此,本文给大家介绍下。

    py3study
  • matlab—影像分析基础

    其实一张图片有rgb三种颜色,每个点就是一个矩阵的数值,而这个数值就代表着rgb,所以我们操作以一个图片,也就相当于操作一个矩阵内的数值,或者说,修改矩阵内的数...

    mathor
  • 笔记47 | Android性能优化之使用include标签重用layouts(二)

    项勇
  • 【信号与系统】笔记(3-2)信号的频谱与傅里叶变换(一图看懂傅里叶变换)

    从时域来看,我们会看到一个近似为矩形的波,而我们知道这个矩形的波可以被差分为一些正弦波的叠加。 而从频域方向来看,我们就看到了每一个正余弦波的幅值,每两个正弦波...

    AXYZdong

扫码关注云+社区

领取腾讯云代金券