DDR3:MIG控制器设计(vivado)
前言:DDR SDRAM 全稱為 Double Data Rate SDRAM,中文名為“雙倍數據流 SDRAM”。DDR SDRAM 在原有的 SDRAM 的基礎上改進而來。也正因為如此,DDR 能夠憑借著轉產成本優勢來打敗昔日的對手 RDRAM,成為當今的主流。DDR3為第四代SDRAM,第一代SDR SDRAM,第二代DDR SDRAM,第三代DDR2 SDRAM,第四代DDR3 SDRAM。 很多人將SDRAM錯誤的理解為第一代,也就是 SDR SDRAM,并且作為名詞解釋,皆屬誤導。
日常·嘮嗑:對于深入做項目來說,DDR是必不可少的,特別是在做圖像處理或者數據交互的時候。最近在做車牌識別的時候,就遇到了很多關于DDR數據讀寫的難題,好在查閱相關資料,以及在諸多大佬的幫助下,問題順利解決了。
進入正文:
MIG IP 控制器是 Xilinx 為用戶提供的一個 DDR 控制的 IP, 這樣用戶即使不了解 DDR 的控制和
讀寫時序也能通過 DDR 控制器方便的讀寫 DDR 存儲器。7 系列的 DDR 控制器的解決方案如下所
示:
DDR3 控制器包含 3 部分:用戶接口模塊(User interface Block), 存儲器控制模塊(Memory
Controller)和 DDR3 的物理接口(Physical Layer)。開發人員只需要開發用戶的邏輯設計跟 DDR 控制
器的用戶接口對接來讀寫 DDR3 的數據。關于 DDR3 控制器用戶端的接口定義和時序的更多介紹,
大家還是參考 Xilinx 提供的文檔(UG586),接下來為大家介紹如何生成和配置 DDR3 控制器吧!
1、首先在 Vivado 環境里新建一個項目,取名為 ddr3_test。再點擊 Project Manager 界面下的 IP
Catalog,打開 IP Catalog 界面。
2、在 IP Catalog 界面里雙擊 Memories & Storage Elements\Memory Interface Generators 下的
Memory Interface Generator (MIG 7 Series)。
3、點擊 Next, 如果有同學想了解更多的 MIG 的信息,可以點擊左邊的 User Guide 按鈕來打開 Xilinx
的相關文檔來查看。
4、修改 Component Name 為"ddr3",點擊 Next。
5、這里可以選擇兼容芯片,我們不需要,點 Next。
6、選擇默認的 DDR3 SDRAM。
7、我使用的板是黑金的AX7050 開發板。 Memory Part 選擇開發板上的型號"MT41J256m16xx-125", Data Width 數據寬度選擇 32 位。
8、 選擇 PLL 輸入時鐘的頻率為 200Mhz, 這個時鐘需要跟開發板上的時鐘頻率一致,其它設置輸出
阻抗值和內部的 ODT 內部上拉電阻值來改善 DDR3 的信號完整性,一般不需要修改。
9、 System Clock 選擇差分"No Buffer", Reference Clock 因為開發板上沒有提供單獨的 DDR 參考時鐘,所以選擇"Use System Clock"。System Reset Polarity 選擇"ACTIVE LOW"。
10、 HR bank 的內部端接阻抗,這里為 50 ohms,不用修改。這是由核心板的硬件設計決定的。
11、 點擊第二項,我們需要設定一下 DDR 的管腳,點擊 Next。
12.、在這個界面里設置 DDR3 的數據、地址和控制信號的 FPGA 管腳分配和 IO 電平。這個手工分配
起來還是比較費勁的,用戶可以使用點擊“Read XDC/UCF”按鍵直接導入管腳分配文件。導入后
ddr3 的管腳分配如下。
導入ucf文件就可以完成 ddr3 的管腳分配
再點擊"validate" 按驗證一下,通過后點擊 Next。
13、這里軟件默認設置,直接點擊 Next。
14、顯示 ddr3 IP 配置的概況,檢查一下,沒有問題就點擊 Next。
15、選擇 Accept, 點擊 Next。
16、 點擊 Generate 按鈕生成 MIG 控制器。
17、點擊 Generate 按鈕生成 MIG 相關的設計文檔。
18、 這時在項目中添加了一個 ddr3 的 IP。關于 MIG 7 Series 詳細介紹請大家參考 Xilinx 提供的文檔“ug586_7Series_MIS.pdf”。
總結:到第18步,MIG IP的設計就基本完成了,下次有時間再做一篇DDR3讀寫測試文章。
本文章參考了黑金AX7050使用手冊,以及black_pigeon的基于MIG IP核的DDR3控制器一文。
總結
以上是生活随笔為你收集整理的DDR3:MIG控制器设计(vivado)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 特洛伊木马程序开发技术
- 下一篇: npm查找依赖包版本