《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 解決方案 > 采用FPGA IP實現DDR的讀寫控制的設計與驗證

采用FPGA IP實現DDR的讀寫控制的設計與驗證

2012-07-05
關鍵詞: FPGA LattcieXP DDR RAM IP

前言

隨著高速處理器的不斷發展,嵌入式系統應用的領域越來越廣泛,數字信號處理的規模也越來越大,系統中RAM規模不斷增加,比如視頻監控、圖像數據采集等領域,圖像處理的實時性對RAM帶寬的要求不斷增加,傳統的SDRAM在帶寬上已經逐漸無法滿足應用要求,DDR SDRAM(雙倍速率SDRAM)采用在時鐘CLK信號的上升和下降沿,雙沿做數據傳輸;比傳統的SDRAM只在時鐘上升沿傳輸的方式,傳輸帶寬增加了一倍。DDR RAM已開始廣泛應用于嵌入式系統中,正逐步取代傳統的SDRAM。

DDR RAM操作速度的提高,對設計者來說,對控制時序的設計有了更高的要求;并且,DDR內存采用的是支持2.5V電壓的SSTL-Ⅱ標準,不再是SDRAM使用的3.3V電壓的LVTTL標準。在很多的處理器上面并不帶有DDR RAM控制器,這對設計者來說,使用DDR RAM難度增加。往往需要在設計中插入控制器實現微處理器或DSP對存儲器的控制。

現場可編程門陣列(FPGA)已廣泛應用于嵌入式系統中。現在很多FPGA都提供了針對DDR SDRAM的接口特性:其輸入輸出引腳與SSTL-Ⅱ電氣特性兼容,內部提供了DDR觸發器、鎖相環等硬件資源。使用這些特性,可以比較容易地設計性能可靠的高速DDR RAM控制器。本文針對這一問題,介紹一種采用Lattice FPGA與IP來實現DDR RAM控制和驗證的方法。

LatticeXP

LatticeXP器件將非易失的FLASH單元和SRAM技術組合在一起,支持瞬間啟動和無限可重構的單芯片解決方案。FLASH單元陣列中保存用戶配置文件。上電時,配置文件在1毫秒內從FLASH存儲器中被傳送到配置SRAM中,完成瞬時上電。

器件內部分為:PIC (可編程的I/O單元),非易失的FLASH MEMORY,SYSCONFIG配置端口,PFU(可編程功能單元),PLL(模擬鎖相環),PFF(非RAM/ROM功能可編程邏輯單元),EBR(嵌入式RAM塊),JTAG口等幾部分(見圖1)。



圖1 LatticeXP內部結構圖

DDR controller IP的生成

IPExpress是Lattice開發軟件中生成IP模塊的工具,可根據用戶設定的參數生成IP模塊,使用非常方便。

點擊啟動IPexpress進入生成界面(見圖2)。在左邊選取DDR SDRAM工程,在右邊設置工程名稱和文件保存地址。



圖2 IPexpress界面

點擊下一步,開始進入參數設置(見圖3)。這里面進行設置DDR RAM的行、列的參數,以及Bank。這些參數都是根據DDR RAM芯片手冊進行設置。本文中采用的DDR RAM顆粒是現代公司的HY5DU561622,16M x16,4bank顆粒。



圖3 DDR RAM的行、列的參數配置

下一步,進行時序延時上面的設置(見圖4)。



圖4 DDR RAM顆粒時序參數配置

在這里設置tRAC(行訪問周期,RAS Access Cycle/Delay)、tCAC(列訪問周期,CAS Access Cycle/ Delay)等參數。這些參數,在DDR RAM顆粒芯片的手冊中都有詳細的列表。需要特別指出的是,由于芯片提供商會針對不同的DDR標準,例如DDR400,DDR333等,給出不同的延時參數,會是以ns為單位的幾個不同的列表,需要根據設計的不同,參考不同的表格。因為IP生成器中采用的是單一參數設置,單位采用了CLK為單位,這就需要根據設計標準以及時鐘頻率來轉換一下,進行設定。本文采用的是DDR266標準,時鐘為133MHz,對應的時鐘周期為1/133MHz,大約為7.5ns。這樣,芯片在DDR266標準的TRCD為20ns(最小值),對應到IP的參數中就是3。其他參數也是類似的換算。

設置完畢以后,點擊generate,可以生成IP代碼文件,如圖5。



圖5 IP生成

DDR controller IP的使用與驗證

生成的DDR Controller IP的接口結構如圖6所示。



圖6 DDR Controller接口

RAM接口根據信號的定義,對應DDR RAM接口信號。另一端是用戶接口,包括復位、時鐘、地址、數據、讀寫、狀態信號等。數據通過用戶接口送入,通過IP控制時序送到DDR RAM對用的地址當中。

對IP的測試,采用數據寫入與讀出進行校驗的方式來實現。測試框圖如圖7所示。



圖7 測試原理框圖

在FPGA內部做兩個RAM區域,用于數據的保存。這里使用FPGA內部的RAM塊,做了兩塊256×32b大小的RAM存儲區。編寫FPGA代碼,做一個簡單的偽隨機序列發生器,通過簡單的異或算法,產生32位隨機數據序列。產生的數據存入其中一塊RAM當中,同時也送到IP的用戶接口端,寫入DDR RAM。

在256深度的存儲區域寫滿以后,開始從DDR RAM回讀數據。并把讀取的數據送到FPGA內部另外一塊RAM當中。兩塊RAM中對用地址的數據作比較。如果數據一致,說明DDR RAM讀寫正常;如果不同,說明DDR RAM讀寫操作有錯誤。

由于本設計采用的是DIMM內存條512Mb容量,因此測試時,數據地址采用基址加變址的方式。每一次測試256×32b的數據完成后,循環進入下一次測試時,將起始基地址加256,再進行數據操作。這樣最終完整可以掃描512M的數據地址空間,使測試更加完整。這種測試的方法,采用小塊地址,多次操作,可以減少FPGA內部RAM的使用量。

本文中編寫的測試代碼采用Verilog語言編寫,邏輯如圖8。



圖8 測試代碼邏輯狀態機

硬件測試結果

本實驗是在Lattice的XP ADVANCED版demo板上進行的。

采用的FPGA為LFXP10C-5F384,內存條為Kingston 512M筆記本內存條,RAM顆粒為現代HY5DU561622。測試DDR266連續運行2小時,數據無異常,DDR讀寫操作完全正常。

結語

在嵌入式系統中應用DDR RAM的越來越多,在設計當中采用FPGA,不僅設計靈活,而且還可以將周邊的數字器件綜合設計進入FPGA,大大提高系統設計的性價比。

參考文獻:
1. 胡為,DDR SDRAM在嵌入式系統中的應用,單片機與嵌入式系統應用,2006.3
2. LatticeXP family handbook. Lattice SEMICONDUCTOR Co.,2006.6
3. Lattice DDR1/2 controller user guide.Lattice SEMICONDUCTOR Co.,2006.6

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 无码人妻久久一区二区三区免费丨| 波多野结衣在线一区二区| 国产影片中文字幕| 香蕉视频黄在线观看| 大西瓜pron| 一本色道久久综合亚洲精品高清 | 日本高清免费观看| 亚洲gv白嫩小受在线观看| 永久免费毛片在线播放| 免费人妻无码不卡中文字幕系| 美女被免费看视频网站| 国产亚洲真人做受在线观看| 99久热任我爽精品视频| 国产精品久久久久一区二区| 97se色综合一区二区二区| 女人张开腿让男人做爽爽| 中文字幕a∨在线乱码免费看| 日本高清中文字幕| 九九精品99久久久香蕉| 欧美亚洲另类视频| 亚洲无圣光一区二区| 涩涩涩在线视频| 偷炮少妇宾馆半推半就激情| 精品免费AV一区二区三区| 又粗又硬免费毛片| 美女把尿口扒开让男人桶| 国产三级一区二区三区| 风间由美在线亚洲一区| 国产在线高清一级毛片| 国产精品喷水在线观看| 国产无遮挡吃胸膜奶免费看视频| 中文在线天堂网| 国产精品国产精品国产专区不卡 | 亚洲激情视频网站| 波多野结衣bd| 亚洲首页在线观看| 波多野结衣家庭教师奇优| 亚洲精品成人网站在线播放| 爽爽影院在线免费观看| 亚洲视频一区在线| 激性欧美激情在线aa|