本文開源一個(gè)FPGA項(xiàng)目:基于AXI總線的DDR3讀寫。之前的一篇文章介紹了DDR3簡(jiǎn)單用戶接口的讀寫方式:《DDR3讀寫測(cè)試》,如果在某些項(xiàng)目中,我們需要把DDR掛載到AXI總線上,那就要通過(guò)MIG IP核提供的AXI接口來(lái)讀寫DDR。
下面圍繞Vivado BD工程的搭建以及各個(gè)IP的使用簡(jiǎn)單介紹一下該項(xiàng)目。
01軟硬件平臺(tái)
- 軟件平臺(tái):Vivado 2017.4;
- 硬件平臺(tái):XC7A35TFTG256-1;
02創(chuàng)建Vivado BD工程
2.1 Clocking Wizard
首先在BD工程中添加Clocking Wizard IP核,用于給MIG IP核提供200M時(shí)鐘以及復(fù)位信號(hào)。
2.2 MIG IP
添加MIG IP核,接口已經(jīng)默認(rèn)配置成AXI接口。
- Clock Period:這里配置成400Mhz;
- Data Width:采用16bits;
- AXI參數(shù)配置:Data Width 配置成128 bits。DDR3是雙沿工作,并且工作頻率和用戶時(shí)鐘頻率為4:1,因此這里AXI總線位寬最大可配置為16bits42=128bits;
- MIG IP核輸入時(shí)鐘:200MHz;
- 系統(tǒng)時(shí)鐘:No Buffer;
- 參考時(shí)鐘:選擇Use System Clock;
配置好MIG IP后,將其與時(shí)鐘模塊(Clocking Wizard)進(jìn)行連接。
2.3 FDMA
FDMA 是米聯(lián)客基于AXI4總線協(xié)議設(shè)計(jì)的一個(gè)DMA控制器,將其掛載到AXI4總線上,可以方便地對(duì)PL或者PS端DDR進(jìn)行讀寫。
- FDMA寫時(shí)序
FDMA寫時(shí)序如下圖所示。將fdma_wready拉高,當(dāng)fdma_wbusy為低的時(shí)候表示總線空閑,此時(shí)可以拉高fdma_wreq,同時(shí)設(shè)置起始地址和數(shù)據(jù)長(zhǎng)度。當(dāng)fdma_wvalid為高時(shí),寫入有效數(shù)據(jù)。最后一個(gè)數(shù)據(jù)寫完,fdma_wvalid和fdma_wbusy會(huì)拉低。
- FDMA讀時(shí)序
FDMA讀時(shí)序如下圖所示。將fdma_rready拉高,當(dāng)fdma_rbusy為低的時(shí)候表示總線空閑,此時(shí)可以拉高fdma_rreq,同時(shí)設(shè)置起始地址和數(shù)據(jù)長(zhǎng)度。當(dāng)fdma_rvalid為高時(shí),輸出有效數(shù)據(jù)。最后一個(gè)數(shù)據(jù)讀完,fdma_rvalid和fdma_rbusy會(huì)拉低。
對(duì)FDMA IP參數(shù)進(jìn)行配置:這里采用32位寬地址線以及64位寬數(shù)據(jù)線進(jìn)行測(cè)試。
然后,將FDMA連接到AXI總線上,并通過(guò)axi_smc IP進(jìn)行數(shù)據(jù)位寬轉(zhuǎn)換。將需要調(diào)用的接口接出來(lái),得到以下BD工程。
配置起始地址為0x0000_0000,令DDR的讀寫地址從0開始。
最后在頂層文件中添加用戶邏輯,并生成bit文件。
03功能測(cè)試
該Vivado工程實(shí)現(xiàn)的功能是基于AXI總線對(duì)DDR3進(jìn)行連續(xù)讀寫測(cè)試,每次突發(fā)讀寫長(zhǎng)度為512*64bits,地址范圍為0~100M。FPGA板上測(cè)試結(jié)果如下圖所示。
-
FPGA
+關(guān)注
關(guān)注
1643文章
21983瀏覽量
614798 -
DDR3
+關(guān)注
關(guān)注
2文章
283瀏覽量
42989 -
接口
+關(guān)注
關(guān)注
33文章
8962瀏覽量
153308 -
IP核
+關(guān)注
關(guān)注
4文章
338瀏覽量
50529 -
AXI總線
+關(guān)注
關(guān)注
0文章
66瀏覽量
14511
發(fā)布評(píng)論請(qǐng)先 登錄
基于FPGA的DDR3多端口讀寫存儲(chǔ)管理系統(tǒng)設(shè)計(jì)

【紫光同創(chuàng)國(guó)產(chǎn)FPGA教程】【第十章】DDR3讀寫測(cè)試實(shí)驗(yàn)

使用AXI-Full接口的IP進(jìn)行DDR的讀寫測(cè)試

cyclone V控制DDR3的讀寫,quartusII配置DDR3 ip核后,如何調(diào)用實(shí)現(xiàn)DDR3的讀寫呢,謝謝
玩轉(zhuǎn)Zynq連載37——[ex56] 基于Zynq的AXI HP總線讀寫實(shí)例
如何避免AXI_hp總線鎖死?
【FPGA DEMO】Lab2:DDR3讀寫實(shí)驗(yàn)
紫光同創(chuàng)FPGA入門指導(dǎo):DDR3 讀寫——紫光盤古系列50K開發(fā)板實(shí)驗(yàn)教程
基于FPGA的DDR3多端口讀寫存儲(chǔ)管理的設(shè)計(jì)與實(shí)現(xiàn)

關(guān)于期貨行情數(shù)據(jù)加速處理中基于FPGA的DDR3六通道讀寫防沖突設(shè)計(jì)詳解

Virtex7上DDR3的測(cè)試例程
基于FPGA的DDR3讀寫測(cè)試

評(píng)論