在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1692|回复: 6

[求助] Xilinx Vivado 18.3 DDR3 MIG IP with AXI4 interface 写入功能错乱

[复制链接]
发表于 2024-1-15 15:25:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
Hi Sirs,
我们使用Vivado自带的MIG IP CORE (AXI4接口)去做一个DDR3 控制器, 软件生成了一个AXI4接口的slave端.
我们编写了一个简单的地址和数据递增的写入和读出的代码,地址0写入..xx00(128位), 地址8 写入数据..xx01.
128位指的是DDR位宽16*burst length8;地址8 是第二次写的初始地址(burst length 8).
simulation 使用了Vivado example design 里面的DDR3 model.
测试了一下, DDR3 model 会实时记录动作的log,但看起来写入的数据/地址和我们预计的不同. 如图, 地址0 写了两次相同的数据, 地址8 也写了两次,又是不同的数据. 我们预计的应该是每个地址单独一次写入一次数据.
看了一下仿真的波形,似乎时序没有问题, 每次写入和数据和地址都是明确且正常的. 如图,我们把关于时序的理解标注在了图上.
MIG IP 例化的相关部门也截取如下.
哪位有相关经验可以帮忙看看吗? 麻烦指导或提示一下,谢谢了.
mig.png

发表于 2024-1-15 17:12:33 | 显示全部楼层
try awaddr +=16
发表于 2024-1-15 17:32:18 | 显示全部楼层
128位数据的话地址每次+16吧
 楼主| 发表于 2024-1-15 22:21:59 | 显示全部楼层


感谢您的指导,改为16后,看起来是正常的. 之前应该是混淆了如图16和8的含义.

addr.png
 楼主| 发表于 2024-1-15 22:22:55 | 显示全部楼层


xjtudddwww 发表于 2024-1-15 17:32
128位数据的话地址每次+16吧


感谢您的指导,改为16后,看起来是正常的.
 楼主| 发表于 2024-1-19 15:36:05 | 显示全部楼层
Hi sir,
根据 上述讨论,修改为awaddr+16, 则除了前两次写入,后续的log看起来和理解的一致. 但我这边仿真前两次的写入一直有问题. 请参考附图. 可以看到修改为awadder+16后, 后面的写入地址数据看起来符合规律,但前两次写入了两次0数据(本来应该只写入一次才对吧?) 。从地址08 开始就应该写入数据01,但是又写了一次数据0. 没找到第一次/第二次写入为何如此. 您觉得会是哪方面的问题? 需要再检查一下哪一部分?
2.png

 楼主| 发表于 2024-1-19 15:38:26 | 显示全部楼层


您可以再看下吗?

Hi sir,  
根据 上述讨论,修改为awaddr+16, 则除了前两次写入,后续的log看起来和理解的一致. 但我这边仿真前两次的写入一直有问题. 请参考附图. 可以看到修改为awadder+16后, 后面的写入地址数据看起来符合规律,但前两次写入了两次0数据(本来应该只写入一次才对吧?) 。从地址08 开始就应该写入数据01,但是又写了一次数据0. 没找到第一次/第二次写入为何如此. 您觉得会是哪方面的问题? 需要再检查一下哪一部分?
2.png

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /1 下一条

小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2025-5-16 03:15 , Processed in 0.022792 second(s), 8 queries , Gzip On, MemCached On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表