FPGA的BRAM和LUT等资源都是有限的,在FPGA开发过程中,可能经常遇到BRAM或者LUT资源不够用的情况。 一般建议BRAM和LUT资源的消耗不要超过80%,当然高端一点的FPGA芯片也可以放宽到90%,超过这个限制,可能就会出现时序违例较严重的情况,导致上板运行出现异常的情况。 今天分享一下BRAM资源使用优化策略,以Vivado的 Block Memory Generator为例 。 1、Distribute BRAM或URAM 替代BRAM 存储深度和宽度较小,且LUT资源或URAM有富裕,可以用“Distribute BRAM”或“URAM”来替代。 这里需要注意使用的FPGA芯片型号,是否带URAM资源。
这里给出代码示例:
2、双口ROM替代单口ROM 如果工程中,有两个以上的ROM或RAM使用的是相同的数据,可以使用双口替代单口模式,资源消耗是一样的,这样就可以节省一个或多个ROM IP。 这里对比一下“数据宽度为32,存储深度为1024”的单口和双口模式下的资源消耗。 3、合理的数据宽度和深度设置 要想FPGA BRAM资源消耗优化,更关键的是优化FPGA工程的缓存大小设计,计算理论上缓存数据的位宽和最大深度,选择出合适的参数。 |
|
来自: 新用户0118F7lQ > 《文件夹1》