本文開源一個FPGA項目:基于AXI總線的DDR3讀寫。之前的一篇文章介紹了DDR3簡單用戶接口的讀寫方式:《DDR3讀寫測試》,如果在某些項目中,我們需要把DDR掛載到AXI總線上,那就要通過MIG IP核提供的AXI接口來讀寫DDR。
下面圍繞Vivado BD工程的搭建以及各個IP的使用簡單介紹一下該項目。
01軟硬件平臺
- 軟件平臺:Vivado 2017.4;
- 硬件平臺:XC7A35TFTG256-1;
02創建Vivado BD工程
2.1 Clocking Wizard
首先在BD工程中添加Clocking Wizard IP核,用于給MIG IP核提供200M時鐘以及復位信號。
2.2 MIG IP
添加MIG IP核,接口已經默認配置成AXI接口。
- Clock Period:這里配置成400Mhz;
- Data Width:采用16bits;
- AXI參數配置:Data Width 配置成128 bits。DDR3是雙沿工作,并且工作頻率和用戶時鐘頻率為4:1,因此這里AXI總線位寬最大可配置為16bits42=128bits;
- MIG IP核輸入時鐘:200MHz;
- 系統時鐘:No Buffer;
- 參考時鐘:選擇Use System Clock;
配置好MIG IP后,將其與時鐘模塊(Clocking Wizard)進行連接。
2.3 FDMA
FDMA 是米聯客基于AXI4總線協議設計的一個DMA控制器,將其掛載到AXI4總線上,可以方便地對PL或者PS端DDR進行讀寫。
- FDMA寫時序
FDMA寫時序如下圖所示。將fdma_wready拉高,當fdma_wbusy為低的時候表示總線空閑,此時可以拉高fdma_wreq,同時設置起始地址和數據長度。當fdma_wvalid為高時,寫入有效數據。最后一個數據寫完,fdma_wvalid和fdma_wbusy會拉低。
- FDMA讀時序
FDMA讀時序如下圖所示。將fdma_rready拉高,當fdma_rbusy為低的時候表示總線空閑,此時可以拉高fdma_rreq,同時設置起始地址和數據長度。當fdma_rvalid為高時,輸出有效數據。最后一個數據讀完,fdma_rvalid和fdma_rbusy會拉低。
對FDMA IP參數進行配置:這里采用32位寬地址線以及64位寬數據線進行測試。
然后,將FDMA連接到AXI總線上,并通過axi_smc IP進行數據位寬轉換。將需要調用的接口接出來,得到以下BD工程。
配置起始地址為0x0000_0000,令DDR的讀寫地址從0開始。
最后在頂層文件中添加用戶邏輯,并生成bit文件。
03功能測試
該Vivado工程實現的功能是基于AXI總線對DDR3進行連續讀寫測試,每次突發讀寫長度為512*64bits,地址范圍為0~100M。FPGA板上測試結果如下圖所示。
-
FPGA
+關注
關注
1630文章
21801瀏覽量
606359 -
DDR3
+關注
關注
2文章
276瀏覽量
42421 -
接口
+關注
關注
33文章
8712瀏覽量
152014 -
IP核
+關注
關注
4文章
331瀏覽量
49660 -
AXI總線
+關注
關注
0文章
66瀏覽量
14319
發布評論請先 登錄
相關推薦
基于FPGA的DDR3多端口讀寫存儲管理系統設計
![基于FPGA的<b class='flag-5'>DDR3</b>多端口<b class='flag-5'>讀寫</b>存儲管理系統設計](https://file1.elecfans.com//web2/M00/A6/80/wKgZomUMPiCAX02MAAEC-l8cc-4085.png)
【紫光同創國產FPGA教程】【第十章】DDR3讀寫測試實驗
![【紫光同創國產FPGA教程】【第十章】<b class='flag-5'>DDR3</b><b class='flag-5'>讀寫</b><b class='flag-5'>測試</b>實驗](https://file.elecfans.com//web1/M00/DE/66/pIYBAGAY4smAMWsUAACPlHSC9pk323.jpg)
cyclone V控制DDR3的讀寫,quartusII配置DDR3 ip核后,如何調用實現DDR3的讀寫呢,謝謝
玩轉Zynq連載37——[ex56] 基于Zynq的AXI HP總線讀寫實例
【FPGA DEMO】Lab2:DDR3讀寫實驗
紫光同創FPGA入門指導:DDR3 讀寫——紫光盤古系列50K開發板實驗教程
基于FPGA的DDR3多端口讀寫存儲管理的設計與實現
![基于FPGA的<b class='flag-5'>DDR3</b>多端口<b class='flag-5'>讀寫</b>存儲管理的設計與實現](https://file1.elecfans.com//web2/M00/A6/EC/wKgZomUMQUmAeBNVAABqXZtsUKo943.png)
關于期貨行情數據加速處理中基于FPGA的DDR3六通道讀寫防沖突設計詳解
![關于期貨行情數據加速處理中基于FPGA的<b class='flag-5'>DDR3</b>六通道<b class='flag-5'>讀寫</b>防沖突設計詳解](https://file.elecfans.com/web1/M00/58/EC/o4YBAFthYc-AWTu0AAATrM5qW_k227.gif)
評論