本文介紹一個(gè)FPGA開源項(xiàng)目:DDR3讀寫。該工程基于MIG控制器IP核對(duì)FPGA DDR3實(shí)現(xiàn)讀寫操作。
MIG控制器支持兩種接口:(1)簡(jiǎn)單用戶控制邏輯接口;(2)AXI接口。該工程采用前者,后面會(huì)整理DDR3的AXI總線訪問方法。
下面簡(jiǎn)單介紹一下MIG控制器IP核的使用以及FPGA板上測(cè)試結(jié)果。
01軟硬件平臺(tái)
02IP核參數(shù)配置
MIG(Memory Interface Generator)IP核提供了用戶接口邏輯,以便于實(shí)現(xiàn)對(duì)DDR的訪問。有關(guān)MIG的詳細(xì)描述,可以參考官方文檔:ug586。這里不展開介紹。
接口配置界面,保持默認(rèn)選項(xiàng)。
- Clock Period:配置主時(shí)鐘頻率,這里選擇400M。由于DDR是雙沿工作,所以讀寫速率為400M2Data Width(16bits);
- 主時(shí)鐘頻率和用戶時(shí)鐘頻率比例:4:1,因此生成的用戶時(shí)鐘為100M;
- Memory Part:配置DDR參數(shù),根據(jù)實(shí)際情況選擇;
- Data Mask:如果選用的DDR帶有data mask就選上,并將信號(hào)拉低,表示不屏蔽數(shù)據(jù)接口;
Input Clock Period:輸入時(shí)鐘,這里選擇200M。
- System Clock:No Buffer;
- Reference Clock:使用系統(tǒng)時(shí)鐘;
- 系統(tǒng)復(fù)位信號(hào):低電平有效;
讀取XDC文件管腳配置,并點(diǎn)擊validate,進(jìn)行校驗(yàn)。
系統(tǒng)信號(hào)選擇不用配置,保持默認(rèn)選項(xiàng)即可。
03用戶接口 & 讀寫時(shí)序
MIG IP產(chǎn)生的用戶接口信號(hào)是以app_*格式命名:
input [127:0] app_rd_data; //讀數(shù)據(jù)
input app_rd_data_end; //讀數(shù)據(jù)結(jié)束
input app_rd_data_valid;//讀數(shù)據(jù)有效
input app_rdy; //MIG控制器準(zhǔn)備好讀寫
input app_wdf_rdy; //MIG控制器準(zhǔn)備好寫
output [27:0] app_addr; //讀寫地址
output [2:0] app_cmd; //讀寫命令
output app_en; //控制命令使能
output [127:0] app_wdf_data; //寫數(shù)據(jù)
output app_wdf_end; //寫數(shù)據(jù)結(jié)束
output app_wdf_wren; //寫數(shù)據(jù)使能
DDR寫時(shí)序如下圖所示。邏輯比較簡(jiǎn)單,將所有信號(hào)嚴(yán)格對(duì)齊即可。但有一個(gè)需要注意的地方,就是當(dāng) app_rdy 和 app_wdf_rdy 都為高的時(shí)候,才能同時(shí)拉高 app_en ,這時(shí)寫入的數(shù)據(jù)才有效。
DDR讀時(shí)序如下圖所示。app_cmd、app_addr、app_en、app_rdy信號(hào)嚴(yán)格對(duì)齊即可,但是同樣需要在 app_rdy 拉高的情況下,才能拉高 app_en 。另外,數(shù)據(jù)讀出會(huì)略有延遲。
04Vivado工程源碼結(jié)構(gòu)
本工程源碼結(jié)構(gòu)如下圖所示。
- ddr_ctrl:ddr用戶接口讀寫控制模塊;
- clk_wiz_0:產(chǎn)生200M時(shí)鐘供MIG IP使用;
- time_ref:系統(tǒng)時(shí)間基準(zhǔn)模塊,以1s為周期計(jì)數(shù);
05實(shí)現(xiàn)功能 & 測(cè)試結(jié)果
該Vivado工程主要用于FPGA DDR3讀寫功能測(cè)試。基于用戶控制邏輯接口,以1s為周期,每周期內(nèi)完成1次讀寫操作。板上測(cè)試1次讀寫操作的結(jié)果如下圖所示。
-
FPGA
+關(guān)注
關(guān)注
1630文章
21796瀏覽量
605996 -
控制器
+關(guān)注
關(guān)注
112文章
16445瀏覽量
179447 -
DDR3
+關(guān)注
關(guān)注
2文章
276瀏覽量
42386 -
接口
+關(guān)注
關(guān)注
33文章
8691瀏覽量
151915 -
AXI
+關(guān)注
關(guān)注
1文章
128瀏覽量
16711
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
基于FPGA的DDR3多端口讀寫存儲(chǔ)管理系統(tǒng)設(shè)計(jì)
![基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>DDR3</b>多端口<b class='flag-5'>讀寫</b>存儲(chǔ)管理系統(tǒng)設(shè)計(jì)](https://file1.elecfans.com//web2/M00/A6/80/wKgZomUMPiCAX02MAAEC-l8cc-4085.png)
基于Digilent的Arty Artix-35T FPGA開發(fā)板的DDR3讀寫控制
![基于Digilent的Arty Artix-35T <b class='flag-5'>FPGA</b>開發(fā)板的<b class='flag-5'>DDR3</b><b class='flag-5'>讀寫</b>控制](https://file.elecfans.com/web1/M00/C8/60/pIYBAF9uEieAIrp1AAViErRYsfQ950.png)
基于Arty Artix-35T FPGA開發(fā)板的DDR3和mig介紹
![基于Arty Artix-35T <b class='flag-5'>FPGA</b>開發(fā)板的<b class='flag-5'>DDR3</b>和mig介紹](https://file.elecfans.com/web1/M00/C8/61/pIYBAF9uE2qAHIVbAAHS4dqArOU295.png)
【紫光同創(chuàng)國(guó)產(chǎn)FPGA教程】【第十章】DDR3讀寫測(cè)試實(shí)驗(yàn)
![【紫光同創(chuàng)國(guó)產(chǎn)<b class='flag-5'>FPGA</b>教程】【第十章】<b class='flag-5'>DDR3</b><b class='flag-5'>讀寫</b><b class='flag-5'>測(cè)試</b>實(shí)驗(yàn)](https://file.elecfans.com//web1/M00/DE/66/pIYBAGAY4smAMWsUAACPlHSC9pk323.jpg)
基于FPGA的DDR3多端口讀寫存儲(chǔ)管理設(shè)計(jì)
基于FPGA的DDR3六通道讀寫防沖突設(shè)計(jì)
基于FPGA的DDR3 SDRAM控制器的設(shè)計(jì)與優(yōu)化
基于FPGA的DDR3多端口讀寫存儲(chǔ)管理的設(shè)計(jì)與實(shí)現(xiàn)
關(guān)于FPGA外部的DDR3 DRAM怎么回事
基于FPGA的DDR3多端口讀寫存儲(chǔ)管理的設(shè)計(jì)與實(shí)現(xiàn)
![基于<b class='flag-5'>FPGA</b>的<b class='flag-5'>DDR3</b>多端口<b class='flag-5'>讀寫</b>存儲(chǔ)管理的設(shè)計(jì)與實(shí)現(xiàn)](https://file1.elecfans.com//web2/M00/A6/EC/wKgZomUMQUmAeBNVAABqXZtsUKo943.png)
評(píng)論