Verilog 入门之ddr3读写遇到的那些坑!(新人报道

FPGA ddr3 踩过的那些坑!(流泪


1.从另一个模块中请求数据的时候,一般间隔一个周期再采集数据。(因为另一个模块在这周期收到数据请求,在下一个周期才能给出数据)

例如图中在3519-3520时间段内,wr_burst_req拉高,向用户请求数据,而有效的数据是从3520时刻才开始的,相当于滞后一周期,相应地,数据通道的使能也应滞后一周期打开,如图中app_wdf_wren和app_wdf_end。

 

2.向别的模块请求数据的信号一般可以直接将写入端是否已准备好的信号(在本项目中是app_wdf_rdy)直接引过来。这个时候需要注意一点:如果该被引信号突然离线,上述通道使能信号也会滞后一周期关闭,但是由于滞后的这一周期写入端并未准备好,所以这个时间所对应的数据不会被写入;又因为没有请求新的数据,这个数据会被保持住。在被引信号恢复时,由于通道使能信号滞后一周期的缘故,刚刚保持的数据还来不及写入就会被覆盖。

对于这个问题,一个解决方案是:通道使能信号在被引信号非正常离线的情况下保持住,这样在被引信号恢复的时候,可以立即将保持的数据带走,不会出现漏数据的情况。

 


参考资料:Zynq-7000 SoC and 7Series Devices Memory Interface Solutions v4.2 User Guide(赛灵思官网可下载)

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值