码迷,mamicode.com
首页 > 数据库 > 详细

zedboard如何从PL端控制DDR读写(六)

时间:2016-07-20 22:44:25      阅读:828      评论:0      收藏:0      [点我收藏+]

标签:

  上一节说到了DDR寻址的问题,如下图:

技术分享

  从官方文档上我们看到了DDR的地址是从0008_0000开始的,那么我们开始修改Xilinx给我们提供的IP核代码。其实很简单,上一节已经分析了地址停留在0000_1000的原因,现在我们只需要把write_burst_counter的位宽变大就可以了。

  从上表看到地址范围由全0到全1,计算一下就知道需要的宽度为27,即 C_NO_BURSTS_REQ = 26;

  重新打包IP核,生成比特流。开始调试

 技术分享技术分享

由于从0003_0000开始的地址是保留位,理论上来说当我们写到这里了应该会报错,但实际上并没有,有上面两张图看出报错是从0003_07c0开始的,具体是什么原因还得以后继续深挖

技术分享

技术分享

 同样的,理论上从0008_0000开始的地址应该返回正常,但实际上是从0008_07c0开始正常的。

 

到这里从PL控制DDR的读写基本就已经成功了,但是两个地方都是07c0,到底是为什么?还有待进一步研究,文档全是英文的,看起来有点吃力,进度可能会比较慢

 

  by the way , Jeff Johnson also has a good tutorial on using AXI DMA: http://www.fpgadeveloper.com/2014/08/using-the-axi-dma-in-vivado.html  ,感兴趣的可以参考一下

zedboard如何从PL端控制DDR读写(六)

标签:

原文地址:http://www.cnblogs.com/christsong/p/5689750.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!