news 2026/5/2 3:40:24

数组访问的瓶颈

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
数组访问的瓶颈


一、数组在顶层接口的使用
1.数组在顶层接口上使用,默认是ap_memory接口
一般这个ap_memory接口,默认类似为一个单口RAM,这个单口RAM访问就会收到限制,
因为一次只能访问一个数据样本;

2.突破默认的单口访问ap_memory接口
使用#pragram resource core = RAM-2P_BLOCK的方式进行优化,这样就可以突破上述的限制,这样,一个clock
就可以访问两个样本数据

3.使用array_partition将端口分为多个RAM端口,提高访问瓶颈

二、axilite修饰顶层接口的数组
1.当axilite修饰数组的时候,在顶层接口的数组不再是被综合为接口,而是被综合为一个axi_bram了,
这个axi_bram是一个单口的,注意axi_bram只能是一个单口RAM,如果你想多个,那么,你就得分成多个数组了

2.如果想这个数组不影响后续得数据流设计
你需要定义一个局部的静态数组作为桥梁,来接收顶层数组,这样就能够对设计起到解绑的作用。
针对这个静态数组,如果不大的话,你可以使用array_partition全部打散,然后在loop循环中,使用unroll来展开缓存;
如果数组比较大,这种方式就不太合适,因为index索引的不确定会综合出一个非常大的多路选择器,这个会影响时序收敛,
所以这个时候,需要使用array_partition进行分组,分成多个小的RAM,这样port就变得很大,能够让你的设计更加合理。

三、顶层参数的数组作为dataflow的子函数访问
1.这个手册推荐使用stable来优化
注意,使用stable的前提是,你不能在顶层使用axilite同时优化这个数组,因为是不兼容的,如果你使用了axilite,你不能使用
stable,stale的原因是这个数组被综合为dataflow的FIFO,你将其综合为RAM,那么就不会存在阻塞了。

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

Swiftcord附件处理:图片、视频、音频文件上传与预览全指南

Swiftcord附件处理:图片、视频、音频文件上传与预览全指南 【免费下载链接】Swiftcord A fully native Discord client for macOS built 100% in Swift! 项目地址: https://gitcode.com/gh_mirrors/sw/Swiftcord Swiftcord是一款专为macOS打造的全原生Discor…

作者头像 李华
网站建设 2026/5/2 3:33:28

HTML 5.3表单元素完全教程:构建现代Web应用的基础

HTML 5.3表单元素完全教程:构建现代Web应用的基础 【免费下载链接】html Deliverables of the HTML Working Group until October 2018 项目地址: https://gitcode.com/gh_mirrors/html/html HTML 5.3表单元素是构建现代Web应用的基础组件,它们为…

作者头像 李华
网站建设 2026/5/2 3:32:35

NAB算法优化技巧:如何提升你的检测器在基准测试中的表现

NAB算法优化技巧:如何提升你的检测器在基准测试中的表现 【免费下载链接】NAB The Numenta Anomaly Benchmark 项目地址: https://gitcode.com/gh_mirrors/na/NAB Numenta Anomaly Benchmark(NAB)是一个强大的异常检测评估框架&#x…

作者头像 李华