当前位置: 首页 > news >正文

Stable数组的使用


一、stable说明
1.使用stable修饰数组,用于标记stream数据流区域的输入变量或者输出变量
2.stable修饰数组的目的,是用于移除对应的同步,但是移除同步之前,用户需要确保
设计是正确无误的,确实能够移去掉,才去做stable修饰,否则不要使用stable修饰数组

二、案例
void dataflow_region(int A[...], src,dst)
#pragma HLS stable variable=A
#pragma HLS dataflow
proc1(src,temp);
proc2(A,temp,dst);
}
上述代码如果不使用stable修饰数组,那么proc2准备好,才能启动Proc1;
这样组织数据流迭代重叠,导致性能下降。
如果使用stable修饰数组,那么无需要这个等待同步,proc1不需要等待proc2;
如无 stable 编译指示并假定 A 由 proc2 读取(因为 proc2 当前绕过任务),将出现性能损失。

需要注意的是:
仅当数据流区域尚未开始执行或者已完成执行时,调用程序才会更新或读取这些变量。


三、axilite+ap_memory+ap_stable对数组的综合优化
void stream_top
(
hls::stream<ap_uint<32> >& src,
hls::stream<ap_uint<32> >& dst,
ap_uint<32> param_cfg[1024]
){
#pragma HLS INTERFACE ap_stable port=param_mem
#pragma HLS RESOURCE variable=param_mem core=RAM_2P_BRAM
#pragma HLS INTERFACE axis register both port=src
#pragma HLS INTERFACE axis register both port=dst
#pragma HLS INTERFACE s_axilite port=return
#pragma HLS INTERFACE s_axilite port=param_mem

#pragma HLS DATAFLOW

static hls::stream<ap_uint<32> > temp;
#pragma HLS STREAM variable=temp depth=2 dim=1

proc1(src,temp);
proc2(param_cfg,temp,dst);//param_cfg为单口RAM,使用双口RAM需要中间定义一个局部数组进行一次缓存

}

四、stable修饰数组需要注意

仅当数据流区域尚未开始执行或者已完成执行时,调用程序才会更新或读取这些变量。

如果你不满足这个要求,不要使用stable数组。

http://www.jsqmd.com/news/329976/

相关文章:

  • YOLO在Java中跑不起来?手把手教你解决CUDA兼容性问题(附GPU推理完整代码)
  • 计算机毕业设计springboot体育场馆在线预约系统 基于SpringBoot的高校体育馆场地预约平台 SpringBoot+MySQL的校园运动场馆智能预订系统
  • Flutter 三端应用实战:OpenHarmony “呼吸灯”——在焦虑时代守护每一次呼吸的数字禅修
  • 计算机毕业设计springboot二手房产交易平台 SpringBoot驱动的二手房租售一体化平台 基于SpringBoot的存量房交易与租赁撮合系统
  • Flutter 三端应用实战:OpenHarmony “专注时光盒”——在碎片洪流中守护心流的数字容器
  • 2025年市场岗位能力重构与跨领域转型路径分析 - 详解
  • 山间雾里-重庆
  • 飞牛fnOS高危漏洞实战分析与应急处置指南(2026最新版)
  • 别小看这些碎片,芬兰乌拉尔语族的分词技术竟有这么大学问
  • 算法入门打卡Day4___交换链表节点、删除倒数N个节点、链表相交、环形链表
  • 2026青少年数学网校实测|分龄选对不踩坑,学霸私藏清单曝光
  • 人民大学团队破解AI智能体“健忘症“
  • Flutter艺术探索-Flutter跨平台适配:Android/iOS/Web差异化处理
  • stm32毕业论文(毕设)必过选题思路
  • 研究团队发明了一套AI评审系统,让深度研究报告评测变得精准!
  • JAVA数据结构 DAY2-包装类和泛型
  • 毕业那年经济增速,决定你未来十年工资?
  • 阿里巴巴云团队用448K样本做出超越32倍参数模型的推理小天才
  • 深度测评9个降AI率平台,千笔助你高效降AIGC
  • 股市盈利三支柱:深耕、规则、仓位::股市的最大敌人,不是“市场”,而是“自己的认知盲区、对规则的忽视、对风险的漠视”
  • 北大联合阿里达摩院:让AI代码生成告别“只会跑不会快“的困境
  • ACPI!ACPIRootIrpStartDevice函数在ACPI!ACPIInitStartACPI函数后设置_SB的设备状态为Started
  • 2026青少年英语网校靠谱排名|实测4家!提分/启蒙/口语全覆盖
  • 实测30家|给宝妈的小学生数学网校参考,省心不踩坑
  • 2026年4-8岁儿童AI数学课程解析|科学测评+精准选课指南
  • 完整教程:PySide6 + QML - 多线程02 - QThread 生命周期与安全退出
  • 小学启蒙AI数学课怎么选?实测8大热门课,避坑指南+适配攻略
  • ue 购买 fbx 资产踩坑实录
  • 【课程设计/毕业设计】基于spring boot的汽车4s店管理系统基于SpringBoot的汽车服务管理系统【附源码、数据库、万字文档】
  • 2026线上数学课程排行榜TOP3揭晓!精准提分+思维培养,家长选课不踩坑