zedboard如何從PL端控制DDR讀寫(六)


  上一節說到了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  ,感興趣的可以參考一下


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM