vivado AXI BRAM Controller(4.1) IP核地址变化为4的倍数解决

文章目录

1、前言

2、相关参考链接

3、

前言

由于本人的水平有限,写的博文中难免有些疏漏,欢迎大家批评指正。

相关参考链接

最开始开始学习VIVADO的这个IP核参考了下面的这些链接。这个博客写的挺详细的,大家可以看看。

ZYNQ—BRAM全双工PS_PL数据交互(开源)_zynq ps pl 数据传输-CSDN博客

问题描述

0、下面这个问题是我在参考上面的链接进行实验的时候,遇到的问题,然后在我买的一个开发板问答群里文档问题,我就直接复制过来了。

1、请教各位大佬一个问题,就是我在使用“AXI BRAM controller(4.1)”这个ip核来实现,PS将数据发送到PL的BRAM中去,然后PL从BRAM中读出数据的功能



2、然后我在网上找了一个相关的例程,就使用“XBram_WriteReg”这个函数就能将数据传输到PL的BRAM中去。



3、然后一运行就跳到了一个while死循环中去了。然后在网上搜索了一下,说是因为数据操作问题。
4、我就将代码修改为在网上找的例程一样的形式了,然后运行就不会调到死循环中去了。下面图片中是修改形式。



5、但我用ila在PL端抓取传输过来的接口信号,虽然数据和地址都有变化了,但往BRAM中的写地址变化是 4 8 12这种形式,相当于就是BRAM中有的地方的数据就没有写入进去,我想实现每个地址都有数据写入。就比如地址变化是0 1 2 4这样的。

解决方式

1、最后我在网上下载了一份,别人写的相关的"AXI BRAM controller(4.1)"相关的工程,然后一看代码,发现描述地址的时候,对地址进行了除以4的操作,这样就很好的解决了读到的地址,为什么不是0、1、2、3这种形式。

2、心得

真的,这个问题,当时让我困惑了很久,不知道怎么解决,在网上搜相关信息,都没有解释怎样让地址由4、8、12、16这种形式变为0、1、2、3这种形式。然后又想不到可以让地址除以4的这种方式。所以就有了这篇博客。

写在后面

不忘初心:写博客的主要目的就是记录自己容易忘记的东西,和自己在工作、学习中踩的坑。

因为自己在学习或工作中,遇到某个问题,在网上找资料,但资料很多,感觉很多人描述的都是偏理论多一点,实际怎样解决没有怎样详细介绍,对于我这种具体要点什么位置,都需要有教程的那种人来说,非常难受。所以遇到问题,在网上找到解决方式,总结一下,方便后续自己观看。

  • 13
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值