<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于FPGA的DDR內存條的控制研究

基于FPGA的DDR內存條的控制研究

作者: 時(shí)間:2017-06-05 來(lái)源:網(wǎng)絡(luò ) 收藏

1 的工作原理

本文引用地址:http://dyxdggzs.com/article/201706/349333.htm

  是由多顆粒的 SDKAM芯片互連組成, SDRAM是雙數據率同步動(dòng)態(tài)隨機存儲器的縮寫(xiě)。DDR SDRAM采用雙數據速率接口,也就是在時(shí)鐘的正沿或負沿都需要對數據進(jìn)行采樣。在本設計中采用的內存是hynix公司的lGB的HYMD564M646CP6-J。的工作原理與單顆粒內存芯片的工作原理一樣,主要的控制信號以及控制信號完成的主要功能如表1所示。

  以上的控制信號及地址信號都是由差分時(shí)鐘信號中CK的正沿觸發(fā)。DDR SDRAM必須按照一定的工作模式來(lái)完成初始化,完成初始化后才能進(jìn)入到讀寫(xiě)過(guò)程。DDR SDRAM的控制流程如圖1所示。

  初始化的過(guò)程為:(1)上電后,延時(shí)200us等待時(shí)鐘穩定,然后將CKE拉高,執行一次NOP或者DESELECT操作。(2)執行一次precharge all操作。(3)設置擴展模式寄存器(BAl為低電平BA0為高電平)使能DLL。(4)設置模式寄存器(BAl,BA0均為低電平)復位DLL。(5)執行一次pre-charge all指令。(6)再經(jīng)過(guò)2個(gè)自刷新(Auto refresh)指令后再次設置模式寄存器設置操作模式。(7)延時(shí)200個(gè)周期才能進(jìn)行讀操作。DDR SDRAM的擴展模式寄存器和模式寄存器的定義如圖2和圖3所示。

  完成初始化后進(jìn)入圖1中的IDEL狀態(tài),此時(shí)可以進(jìn)行讀寫(xiě)操作。在進(jìn)行寫(xiě)操作時(shí),首先要進(jìn)入Row active狀態(tài),此時(shí)選中要操作的bank與row。然后執行NOP操作等待tRCD的時(shí)間后可以進(jìn)入寫(xiě)狀態(tài)。

  2 內存條電路設計

  由于DDR SDRAM采用的時(shí)鐘頻率較高,加上DDRSDRAM的數據率為時(shí)鐘速率的兩倍,DDR SDRAM對時(shí)鐘質(zhì)量的要求很高,必須保證時(shí)鐘上升沿的時(shí)間小于5%的時(shí)鐘周期。DDR SDRAM的數據線(xiàn)與相對應的數據采樣信號(DQS)的長(cháng)度要盡量相等,來(lái)保證數據的采樣窗口盡量要大一些。由于信號質(zhì)量要求高,我們將所有的信號線(xiàn)都采用微電線(xiàn)和帶狀線(xiàn)來(lái)傳輸。使用和內存條的IBIS模型進(jìn)行仿真來(lái)保證設計中信號的完整性,我們將信號分為3類(lèi),第一類(lèi),由到DDR SDRAM的時(shí)鐘差分信號;第二類(lèi),由到DDR SDRAM的控制線(xiàn);第三類(lèi),FPGA與DDR SDRAM之間的雙向傳輸線(xiàn)。對三類(lèi)IBIS模型的herperlinx仿真如圖4:

  通過(guò)仿真我們可以確定3類(lèi)信號線(xiàn)中帶狀線(xiàn)和微帶線(xiàn)板厚,銅厚,以及信號線(xiàn)的線(xiàn)寬,線(xiàn)長(cháng)等參數。

  3 FPGA對DDR SDRAM的控制

  本設計中使用的FPGA是ALTERA公司的cyclone II系列的EP2C20F484C6。對內存條的工作模式設置為BL=4,CL=3,如圖7為FPGA對DDR SD-RAM的控制模塊框圖。


  其中,Clkin為外部輸入的時(shí)鐘信號,為了使FPGA到DDR SDRAM的兩對時(shí)鐘信號的質(zhì)量盡量好,使用FPGA內部的兩個(gè)鎖相環(huán)輸出差分時(shí)鐘信號。為了保證鎖相環(huán)輸出的兩路差分信號相位一致,在設計PCB時(shí)我們使晶振輸出到FPGA兩個(gè)PLL輸入的布線(xiàn)距離相等,為了保證兩個(gè)鎖相環(huán)輸出信號到達DDR SDRAM接口時(shí)相位一致,由FPGA鎖相環(huán)輸出到DDR SDRAM的接口布線(xiàn)長(cháng)度相等。

  控制模塊采用的工作模式是按照圖2所示的狀態(tài)來(lái)跳轉,上電以后首先是對DDR SDRAM進(jìn)行初始化,初始化完成以后就可以進(jìn)出等待工作的狀態(tài)。此時(shí)刷新計數器開(kāi)始計數,等待7.8 us后給出刷新請求,在空閑狀態(tài)時(shí)(IDEL)刷新請求的優(yōu)先級最高,響應刷新請求后執行REFR-ESH指令同時(shí)復位刷新計數器。初始化后如果FIF00的讀空標志為O說(shuō)明FIF00中有數據,此時(shí)可以進(jìn)入到寫(xiě)狀態(tài)。由于采用的是BL=4的工作狀態(tài),寫(xiě)操作每次都寫(xiě)入4個(gè)64位的數。所以,我們將輸入的數據進(jìn)行并位成256位的數,每次寫(xiě)操作只需要從FIF00中讀出一個(gè)256位的數。假設我們采用1OOMHz的時(shí)鐘,每寫(xiě)4個(gè)64位的數大概需要10個(gè)時(shí)鐘周期。如果輸入的數據位寬為16位,那么由外部傳給FPGA的數據率要小于160 MHz。寫(xiě)操作完成的時(shí)候進(jìn)入空閑狀態(tài),等待刷新標志或者讀空標志。讀的時(shí)候需要等待系統發(fā)出讀命令(read),然后進(jìn)入讀狀態(tài),讀出的數據由Ddrout[127:O]送到FIF01和FIF02中。通過(guò)控制FIF01和FIF02的寫(xiě)請求信號來(lái)實(shí)現將數據分別寫(xiě)入。讀的時(shí)候BL=4每次讀出4個(gè)64位數,執行一次讀操作大約需要10個(gè)時(shí)鐘周期。如果輸出的數據位寬為16位,那么數據由FPGA向外傳輸的速率要小于160 MHzo控制模塊在讀寫(xiě)內存條的時(shí)候控制數據模塊來(lái)實(shí)現數據率為時(shí)鐘速度的兩倍,數據模塊使用兩個(gè)時(shí)鐘一個(gè)是系統時(shí)鐘一個(gè)是2倍的系統時(shí)鐘。

  因為DDR SDRAM的控制相對復雜,我們可以使用內存條的vefilog模型,通過(guò)對內存條的vefilog仿真,我們可以知道自己程序的正確性,圖8為modelsim中的仿真波形。如果仿真過(guò)程正確,我就可以對程序進(jìn)行編譯,布局布線(xiàn),然后下載到FPGA中,由于布局布線(xiàn)的延時(shí),輸出的信號波形與仿真波形不一致,此時(shí),可以通過(guò)調整FPGA內部的鎖相環(huán)來(lái)調整時(shí)序,實(shí)現對內存條的控制。


  4 結束語(yǔ)

  通過(guò)介紹內存條的工作原理,以及內存條電路設計時(shí)的注意事項的介紹,我們可以更合理的實(shí)現FPGA與內存條的互連。最后,給出FPGA內部對內存條控制的方法,以及給出仿真波形,實(shí)現對內存條的控制。實(shí)現FPGA對DDRSDRAM內存條的控制,可以實(shí)現大容量高速的數據存儲,在工程中的得到廣泛的應用



關(guān)鍵詞: DDR 內存條 FPGA

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>