Xilinx HLS 学习笔记2(数组优化)

本文介绍了Xilinx HLS中的数组优化技术,包括数组分割、映射和reshape等方法,探讨了如何通过这些技术提高吞吐量和降低资源使用。详细讲解了Block/Factor、Cyclic/Factor和Complete的数组分割策略,以及Horizontal和Vertical Mapping的实践应用。此外,还讨论了ROM的定义、输出Latency调整和数组初始化的最佳实践。
摘要由CSDN通过智能技术生成

0、先验知识

参考资料
单端口RAM(Single-Port RAM)
在这里插入图片描述

单端口RAM的读写操作不能同时进行。当we(使能位)拉高时,会将数据写入对应的地址,同时q输出的数据与此时写入的数据是一致的,因此在读的时候需要重新生成对应的读地址给addr,并且disable掉wea。

在这里插入图片描述
伪双端口RAM(Simple Dual-Port RAM)
输入有一组数据线,两组地址线,两个时钟。两个输出端口共用有个输出端口。
所以一个端口只读,另一个端口只写,但写入和读取的时钟可以不同,且位宽比可以不是1:1。即允许写A的同时读B,且速率可以不同。

提供两个端口,可以通过端口1写访问,通过端口2进行读访问。

双端口RAM(True Dual-Port RAM)
输入有两组地址线和两组数据线,两个时钟。输出有两个分别的数据线。
所以双口RAM两个端口都分别带有读写端口,可以在没有干扰的情况下进行读写,彼此互不干扰。

1、数组分割

我们可以通过resource directive 来设定看,数组采用怎么样的memory(如双端口、单端口)来实现,如果没有明确告知,HLS编译器会自行决定采用双端口还是双端口。

数组最终会以Memory形式出现(RAM、ROM或者FIFO),如果是顶层函数中的形参就会以相应Memory的接口呈现,包括读写地址、使能以及数据;如果数组是在内部,就会综合成内部的block RAM、LUTRAM、registers,这取决于优化设置;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值