news 2026/9/3 4:39:55

vivado hls设计总结(七)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
vivado hls设计总结(七)

一、吞吐量的优化
关于吞吐量throughput的优化,需要降低II来实现。
1.函数和循环的流水化设计
流水线化允许并行执行的操作。可以对函数或者循环进行流水化设计。
在不进行流水线优化的时候,循环和函数的执行都是阻塞执行的。
RD;CMP;WR;这三个操作在函数中,是阻塞顺序执行的,RD没有完成,CMP是不会执行的。
在执行函数pipeline流水线化后,RD执行完成后,执行CMP的同时会并行执行第二次RD.

2.关于pipeline指令
流水线化仅应用于指定区域,而不应用于下层层级。
如果pipeline应用到函数,那么函数内的所有循环都会unrool展开;
如果pipeline应用到循环,那么该循环下一个层级的循环也会unrolll展开。

3.rewind优化

4.flush优化很重要
flush 的基本作用:当流水线使能了 flush 功能后,流水线会有一个“刷新”机制。当流水线的有效输入序列被中断(即没有新的数据输入)时,flush 可以立即终止当前正在处理的流水线阶段,并清空流水线中所有未完成的数据,而不是等待这些数据自然流出。

flush 通常用于以下场景:

条件性或非连续的数据流:当数据不是连续到达,且希望在没有数据时立即停止流水线,以节省功耗或为其他任务让出资源时。

动态任务切换:当同一个流水线硬件需要处理多个独立的任务,且任务之间需要快速切换时。通过 flush 可以在一个任务结束时迅速清空流水线,准备下一个任务。

错误或异常处理:当在处理过程中检测到错误,需要立即中止当前操作时,可以使用 flush 来清空流水线中的残余数据。


5.static静态变量在流水线优化中应用

案例一:
function_foo()
{
static bool change = 0
if (condition_xyz){
change = x; // store
}
y = change; // load
}
上述代码中store和load各需要一个周期,所以II=2

案例二:
function_readstream()
{
static bool change = 0
bool change_temp = 0;
if (condition_xyz)
{
change = x; // store
change_temp = x;
}
else
{
change_temp = change; // load
}
y = change_temp;
}
上述代码中store和load不会同时执行,是分时复用,所以II=1

案例三:
对于案例一,也可以通过lateny=0或者1来优化,使得II=1吧,待实验。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/3 1:38:31

OpenHarmony社区:开源分支已支持国产操作系统

VibeVoice-WEB-UI:国产操作系统中的对话级语音合成突破 在智能内容创作日益普及的今天,播客、有声书和虚拟主播等应用对语音合成技术提出了前所未有的挑战。传统TTS系统虽然能完成基本的“文字转语音”任务,但在面对多角色、长时长、高自然度…

作者头像 李华
网站建设 2026/9/2 22:21:35

如何快速掌握qmcdump:QQ音乐格式转换的完整指南

如何快速掌握qmcdump:QQ音乐格式转换的完整指南 【免费下载链接】qmcdump 一个简单的QQ音乐解码(qmcflac/qmc0/qmc3 转 flac/mp3),仅为个人学习参考用。 项目地址: https://gitcode.com/gh_mirrors/qm/qmcdump 你是否曾经在…

作者头像 李华
网站建设 2026/9/2 22:22:42

NS-USBLoader能做什么?Switch文件管理的全能解决方案

NS-USBLoader能做什么?Switch文件管理的全能解决方案 【免费下载链接】ns-usbloader Awoo Installer and GoldLeaf uploader of the NSPs (and other files), RCM payload injector, application for split/merge files. 项目地址: https://gitcode.com/gh_mirror…

作者头像 李华
网站建设 2026/9/3 1:35:33

终极AdGuard Home配置指南:快速打造无广告网络环境

终极AdGuard Home配置指南:快速打造无广告网络环境 【免费下载链接】AdGuardHomeRules 高达百万级规则!由我原创&整理的 AdGuardHomeRules ADH广告拦截过滤规则!打造全网最强最全规则集 项目地址: https://gitcode.com/gh_mirrors/ad/A…

作者头像 李华
网站建设 2026/9/2 22:23:33

SAP SM37显示没有可用的批处理工作流程

SM37 error “No free batch work processes available“SAP后台任务有大量延时现象(延时将近1小时),而且后台任务延时120S后就出现报错SM37 error “No free batch work processes available” 但是用SM66检查发现各种work process idle都还…

作者头像 李华
网站建设 2026/9/2 19:09:40

Miro白板集成:思维导图节点可点击播放解释音频

Miro白板集成:让思维导图“开口说话” 在远程协作日益频繁的今天,知识传递的方式正悄然发生变化。我们早已不满足于静态的文字与图表——一张Miro白板上的思维导图,如果每个节点不仅能看,还能“开口说话”,会是怎样一种…

作者头像 李华