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

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

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 3083|回复: 2

[原创] 【xilinx DDR3 初探3】黑金A7101 DDR3例程中数据和地址对齐问题测试

[复制链接]
发表于 2020-2-24 17:50:07 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 南竹轩 于 2020-2-24 17:56 编辑



黑金例程中,数据先写完,地址后写完,总感觉有点风险
比如数据已经写完,但是地址系统还没有写完,这个时候由于某些因素对men_burst.v模块进行了复位,数据写了128个地址只写了不到128个,那后面的读写还是否正常?

【现象描述】

一、第一次少写6个数据
笔者在这里做了一个测试
1.按键复位men_burst模块,发现对模块进行随机复位之后,即使后面的数据读写步骤正常,但是读出来的数就是不对,一般会发生一些错位现象;

2. 在app_wdf_wren的最后一段时间内,强制拉低6个时钟,让数据故意少写几个;结果紧接着读的过程中,前面128-6=122个数据正常,后面六个数据不正常(确实没有写入)

然后接着写128个地址,再读128个数据,发现数据从06开始,也就是前面写的00-05的数据很可能写到了前面六个没有写的地址里面去了

A01.PNG

A02.PNG


详见图片
蓝色标签位置,wren强制拉低6Tclk,紧接着读数据,27000000,,27代表这一行为27行,00代表数据,前面的数据是对的
然后再写128个数据,再读128个数据,发现第一个数据是28060606,其中28代表这一行为第28行的数据,06代表读出 的数据是第六个数据

二、第二次少写六个数据
再强制一次wren拉低6Tclk,相当于再少些6个数据,再开始读,发现开始的度的数据是上一行最后四个数,已经看不明白了
A03.PNG


【现象分析】DDR3 IP核内部,地址系统和数据系统应该是通过两个FIFO接入的。如果写的是back-to-back的数据,数据和地址对 对齐的要求 比单个数据写入的要求还要低。
但是以上的情况,结论是,一旦某次操作,数据少了几个,或者多了几个,后面的数据及时读写正常,读出来的数都不正常了。这个很奇怪了。

【例程中的处理过程】
这里的men_burst信号的rst信号只在初始化的时候进行了一次复位,没有在其他地方复位,所以wr_addr_cnt和wr_data_cnt在读写过程中计数,每次理论上都可以保证写的地址的个数和数据的个数是一致的,也就是不会出问题。

【隐藏bug】
如果在这个版本上进行修改代码,同时又用了rst信号,在某个时候对这个模块进行了复位,那就悲催了。只有多复位几次,碰巧再让men_burst中的两个计数器回归
正常状态了。如果用了这个rst信号,要小心。

将这个rst信号加入按键使能功能,也就是按键按一下模块复位一下,读出来的数据就有问题了。。

【解决办法】

笔者个人觉得这里有风险。一个比较好的办法就是,将地址系统和数据系统严格对齐,这样即使中途复位,地址和数据也能保证同时给DDR,并且给的数据永远是一样的,永远是对齐的


采用app_rdy&app_wdf_rdy信号来指导数据和地址的写入,也就是两个信号同时有效的时候,才望里面写地址和数据。在这里只需要对men_burst稍作修改即可。

【示例代码】
笔者简单修改了几个地方,发现采用按键对men_burst模块进行复位,没有影响后面的ddr的读写流程,ojbk

稍微修改应该很简单,这里不放代码了。


欢迎交流。

20200224







补充内容 (2020-3-7 20:27):
【注意】严格对齐似乎无法实现:当app_wdf_rdy为0 的时候,将app_en同时置0,会导致IP核出问题;
请参考https://blog.csdn.net/CAOXUN_FPGA/article/details/101750420
发表于 2020-2-24 20:14:56 | 显示全部楼层
最好还是放下代码吧。
 楼主| 发表于 2020-2-24 21:40:20 | 显示全部楼层


gdutchen 发表于 2020-2-24 20:14
最好还是放下代码吧。




没人搞被迫上阵。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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


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

GMT+8, 2024-11-21 21:02 , Processed in 0.017588 second(s), 8 queries , Gzip On, Redis On.

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