




已閱讀5頁(yè),還剩15頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
DDR SDRAM技術(shù)專題DDRSDRAM是“雙倍數(shù)據(jù)速率同步動(dòng)態(tài)隨機(jī)訪問存儲(chǔ)器”double date rate synchronous dynamic random access memory的縮寫,是一種低成本、高容量的存儲(chǔ)器,在計(jì)算機(jī)、消費(fèi)類電子、通信等領(lǐng)域中一些要求高容量存儲(chǔ)空間的場(chǎng)合有著廣泛的應(yīng)用。本技術(shù)專題試圖以從事DDRSDRAM使用及其控制器設(shè)計(jì)的電子工程師的角度對(duì)DDRSDRAM進(jìn)行較為詳細(xì)的討論。我們希望本技術(shù)專題能夠?yàn)閺V大電子設(shè)計(jì)工程師提供有益的參考。1. DDR SDRAM概述SDRAM是同步動(dòng)態(tài)隨機(jī)訪問存儲(chǔ)器的縮寫,是一種低成本、高容量的存儲(chǔ)器。它在計(jì)算機(jī)、消費(fèi)類電子、通信等領(lǐng)域中一些要求高容量存儲(chǔ)空間的場(chǎng)合有著廣泛的應(yīng)用。傳統(tǒng)的SDRAM采用一種單倍數(shù)據(jù)速率(SDR)的結(jié)構(gòu)執(zhí)行訪問操作,它在每個(gè)時(shí)鐘周期的上升沿傳輸數(shù)據(jù),因此SDRSDRAM的帶寬等于其時(shí)鐘其頻率乘以其數(shù)據(jù)總線寬度 w=f*bus。例如,如果SDRSDRAM的操作頻率為100MHz,其數(shù)據(jù)總線寬度為16位,則其總線帶寬為100MHzx16bit=1600Mbit/S,也就是1.6Gbps。而對(duì)帶寬的需求是無(wú)休止的!為了增加總線帶寬,如果使用傳統(tǒng)的方法,我們要么增加數(shù)據(jù)總線寬度,要么提高其操作頻率。那么,有沒有可能在既不增加數(shù)據(jù)總線寬度也不提高工作頻率的條件下增加總線帶寬呢?為適應(yīng)這種需求,DDRSDRAM出現(xiàn)了!DDRSDRAM使用一種雙倍數(shù)據(jù)速率的結(jié)構(gòu)來(lái)獲得高性能的操作。雙倍數(shù)據(jù)速率結(jié)構(gòu)本質(zhì)上是一種2n預(yù)取結(jié)構(gòu),在輸入/輸出管腳上,每個(gè)時(shí)鐘周期可以傳輸兩個(gè)字。對(duì)于一次DDRSDRAM的訪問操作(寫操作、讀操作),在芯片的內(nèi)部,一個(gè)時(shí)鐘周期執(zhí)行一個(gè)位寬為2n的數(shù)據(jù)傳輸,而在DDRSDRAM器件的管腳上則每半個(gè)時(shí)鐘周期執(zhí)行一次n位的數(shù)據(jù)傳輸。因此,DDRSDRAM的總線帶寬為:工作頻率數(shù)據(jù)總線寬度2可見,在相同的數(shù)據(jù)總線寬度和工作頻率下,DDRSDRAM的總線帶寬比SDRSDRAM的總線帶寬提高了一倍。概括起來(lái),DDRSDRAM具有如下特點(diǎn): 雙倍數(shù)據(jù)速率結(jié)構(gòu),每個(gè)時(shí)鐘周期完成兩次數(shù)據(jù)傳輸; 雙向的數(shù)據(jù)選通信號(hào)(DQS)伴隨數(shù)據(jù)一起傳輸。在接收側(cè),它用來(lái)捕獲數(shù)據(jù); 在讀操作過程中,DQS與數(shù)據(jù)沿對(duì)齊,在寫操作過程中,DQS與數(shù)據(jù)中央對(duì)齊; 差分的時(shí)鐘輸入(CK與/CK); DLL將DQ和DQS的躍變與CK的躍變對(duì)齊; 在每個(gè)CK的上升沿接收命令字;數(shù)據(jù)和數(shù)據(jù)掩碼參考于DQS的上升沿和下降沿; 內(nèi)部的四個(gè)BANK可以并發(fā)操作; 寫數(shù)據(jù)時(shí)支持?jǐn)?shù)據(jù)掩碼(DM); 支持的突發(fā)長(zhǎng)度:2、4、或8; CAS潛伏期:2或2.5,DDR400還包括CL=3 為每一次突發(fā)訪問提供了AUTOPRECHARGE選項(xiàng); 自動(dòng)刷新與自刷新模式; 2.5V(SSTL_2兼容)I/O; 對(duì)于DDR200、DDR266、DDR333:VDDQ為+2.5V0.2V;對(duì)于DDR400:+VDDQ為2.60.1V; 對(duì)于DDR200、DDR266、DDR333:VDD為+3.3V0.3V或+2.5V0.2V;對(duì)于DDR400:+VDDQ為2.60.1V;2. DDR SDRAM與SDR SDRAM的功能比較在對(duì)DDRSDRAM進(jìn)行詳細(xì)描述之前,我們首先對(duì)DDRSDRAM與SDRSDRAM的功能作一個(gè)簡(jiǎn)要的對(duì)比。下表列出了它們之間在外部接口上的一些不同之處:SDRSDRAM與DDRSDRAM的內(nèi)部存儲(chǔ)核本質(zhì)上是相同的。它們都具有相同的尋址和命令控制接口;都具有4個(gè)BANK的存儲(chǔ)陣列;都具有相同的刷新要求。它們之間基本的不同點(diǎn)在于數(shù)據(jù)接口。SDRSDRAM的數(shù)據(jù)接口是一個(gè)系統(tǒng)同步的設(shè)計(jì),它僅僅在時(shí)鐘的上升沿捕獲數(shù)據(jù)。它的內(nèi)、外部數(shù)據(jù)總線具有相同的寬度,當(dāng)數(shù)據(jù)穿越I/O緩沖器時(shí)被順序地鎖存到內(nèi)部存儲(chǔ)陣列。SDRSDRAM還支持一個(gè)DQM信號(hào),它在寫操作過程中作為數(shù)據(jù)掩碼使用;在讀操作過程中作為輸出使能使用。DDRSDRAM的數(shù)據(jù)接口是一個(gè)源同步的設(shè)計(jì),數(shù)據(jù)在每個(gè)時(shí)鐘周期被捕獲兩次,并伴隨一個(gè)雙向的數(shù)據(jù)選通信號(hào)。DDRSDRAM采用了一種2n預(yù)取結(jié)構(gòu),它的內(nèi)部數(shù)據(jù)總線寬度是外部數(shù)據(jù)總線寬度的兩倍。這就使得內(nèi)部存儲(chǔ)單元以成對(duì)的方式向I/O緩沖器傳遞數(shù)據(jù)。DDRSDRAM在讀操作時(shí)沒有輸出使能信號(hào),但它支持一個(gè)BURSTTERMINATE命令來(lái)快速中止正在執(zhí)行的READ命令。在WRITE操作過程中,DM信號(hào)被用來(lái)屏蔽無(wú)效的寫數(shù)據(jù)。DDRSDRAM的命令總線包括時(shí)鐘使能、芯片選擇、行地址、列地址、BANK地址、以及寫使能信號(hào)。DDRSDRAM采用一對(duì)差分時(shí)鐘(CK和CK#)進(jìn)行工作,DDRSDRAM的命令信號(hào)(地址和控制信號(hào))使用CK的上升沿鎖存。與SDRSDRAM不同,DDRSDRAM采用一個(gè)雙向的數(shù)據(jù)選通信號(hào)(DQS)伴隨著數(shù)據(jù)一起傳輸。DQS信號(hào)在DDRSDRAM的讀訪問操作中由DDRSDRAM輸出并與數(shù)據(jù)總線沿對(duì)齊,而在寫訪問操作中由DDRSDRAM控制器輸出,并與數(shù)據(jù)總線中央對(duì)齊。DDRSDRAM的輸入數(shù)據(jù)使用DQS的上升沿和下降沿進(jìn)行鎖存,而其輸出數(shù)據(jù)則以DQS的上升沿和下降沿作為參考時(shí)鐘。在CK的上升沿和下降沿進(jìn)行鎖存?接下來(lái),我們首先對(duì)DDRSDRAM的功能作一個(gè)簡(jiǎn)要的描述,然后我們會(huì)對(duì)DDRSDRAM的一些基本概念以及各種操作進(jìn)行詳細(xì)的描述。3. DDR SDRAM功能描述DDRSDRAM是一種高速CMOS動(dòng)態(tài)隨機(jī)訪問存儲(chǔ)器,它在內(nèi)部被配制成4個(gè)BANK的DRAM,外部數(shù)據(jù)具有X4位、X8位、X16位三種寬度。DDRSDRAM具有如下的容量: 64Mb(即67,108,864位):16MX4(4MX4X4banks)、8MX8(2MX8X4banks)、4MX16(1MX16X4banks); 128Mb(即134,217,728位):32MX4(4MX4X4banks)、16MX8(2MX8X4banks)、8MX16(1MX16X4banks); 256Mb(即268,435,456位):64MX4(4MX4X4banks)、32MX8(2MX8X4banks)、16MX16(1MX16X4banks); 512Mb(即536,870,912位):128MX4(4MX4X4banks)、64MX8(2MX8X4banks)、32MX16(1MX16X4banks); 1Gb(即1,073,741,824位):256MX4(4MX4X4banks)、128MX8(2MX8X4banks)、64MX16(1MX16X4banks);DDRSDRAM中每一個(gè)BANK中的存儲(chǔ)單元被組織成正方陣列,由若干行和若干列組成,這些存儲(chǔ)單元通過行和列的地址譯碼器來(lái)尋址。對(duì)于任何一個(gè)單元的讀操作,整個(gè)行均被讀出,然后重新寫回(刷新)。對(duì)于任何一個(gè)單元的寫操作,整個(gè)行均被讀出,然后改變其中一個(gè)單元的值,最后將整個(gè)行寫回。DDRSDRAM的功能框圖如下圖所示。DDRSDRAM的接口信號(hào)描述如下表所示:對(duì)DDRSDRAM不同容量、不同數(shù)據(jù)寬度的尋址信號(hào)如下圖所示:DDRSDRAM在上電后必須由一個(gè)初始化操作來(lái)配置DDRSDRAM的模式寄存器,模式寄存器的設(shè)置決定了DDRSDRAM的工作模式。 為了減少IO引腳的數(shù)量,DDRSDRAM的行地址和列地址復(fù)用相同的地址引腳。因此,在訪問DDRSDRAM的時(shí)候,要先由ACTIVE命令來(lái)激活需要訪問的BANK、并鎖存行地址(BA0、BA1用來(lái)選擇BANK;A0A13用來(lái)選擇行),然后才能發(fā)布READ或WRITE命令。對(duì)應(yīng)于READ或WRITE命令的地址信號(hào)用來(lái)選擇突發(fā)訪問的起始列地址。 DDRSDRAM使用雙倍數(shù)據(jù)速率結(jié)構(gòu)來(lái)獲得高速操作。雙倍數(shù)據(jù)速率結(jié)構(gòu)本質(zhì)上是一個(gè)2n預(yù)取結(jié)構(gòu),在I/O管腳上,它每個(gè)時(shí)鐘周期傳輸兩個(gè)數(shù)據(jù)字,也就是每半個(gè)時(shí)鐘周期傳輸一個(gè)數(shù)據(jù)字。而對(duì)應(yīng)DDRSDRAM內(nèi)部的DRAM核,則每個(gè)時(shí)鐘周期執(zhí)行2n位寬度的數(shù)據(jù)傳輸。在沒有數(shù)據(jù)傳輸?shù)臅r(shí)候,DQ、DQS、DM可以處于懸浮態(tài)。對(duì)DDRSDRAM的讀訪問和寫訪問都是面向突發(fā)的,訪問操作從一個(gè)選定的位置開始,以可編程的順序持續(xù)幾個(gè)可編程數(shù)目的位置。 DDRSDRAM的存儲(chǔ)單元由電容組成,我們知道,電容總是趨向于釋放電荷,因此DDRSDRAM還需要周期性的刷新操作,只有這樣才能保證其存儲(chǔ)的數(shù)據(jù)不會(huì)丟失。DDRSDRAM的生產(chǎn)廠商規(guī)定,DDRSDRAM的每一行都必須在64ms以內(nèi)刷新一次。 在以后的章節(jié)中,我們會(huì)對(duì)DDRSDRAM的初始化、模式寄存器定義、DDRSDRAM操作的一些基本概念、命令描述和操作進(jìn)行詳細(xì)的描述。4. DDR SDRAM的初始化DDRSDRAM是一種易失性存儲(chǔ)器器件,也就是說(shuō),當(dāng)器件掉電后,存儲(chǔ)在DDRSDRAM中的所有內(nèi)容及其配置信息將會(huì)丟失。DDRSDRAM每次上電后,必須按一定的順序來(lái)初始化其內(nèi)部狀態(tài)機(jī)并配置用戶定義的操作參數(shù),否則會(huì)引起不可預(yù)料的操作結(jié)果。在本節(jié)中,我們會(huì)對(duì)DDRSDRAM的初始化順序進(jìn)行詳細(xì)描述(有關(guān)模式寄存器的具體含義我們會(huì)在下一節(jié)中詳細(xì)描述)。我們首先討論DDRSDAM的上電順序。DDRSDRAM的上電必須滿足下列之一的條件: VDD和VDDQ從同一個(gè)電源轉(zhuǎn)換器提供,并且 VTT被限制成1.35V,并且 VREF設(shè)置成VDDQ/2?;蛘撸?VDDQ在VDD之后或與VDD一起提供,并滿足VDDQVDD+0.3V,并且 VTT在VDDQ之后或與VDDQ一起提供,并滿足VTTVDDQ+0.3V,并且 VREF在VDDQ之后或與VDDQ一起提供,并滿足VREFVDDQ+0.3V。上述的兩個(gè)條件中,至少有一個(gè)必須被滿足。DDRSDRAM每次上電后,必須按下列順序進(jìn)行初始化。1. 將時(shí)鐘使能信號(hào)(CKE)驅(qū)動(dòng)成LVCMOS低電平LVCMOS低電平?SSTL_2電平?。CKE是一個(gè)SSTL_2電平的輸入信號(hào),但在施加了VDD電源后可以檢測(cè)一個(gè)LVCMOS低電平。在上電過程中將CKE保持為L(zhǎng)VCMOS低電平,能夠阻止DDRSDRAM接收不期望的命令,并能夠保證DQ和DQS輸出在正常操作之前保持為高阻狀態(tài);2. 在為DDRSDRAM提供了穩(wěn)定的電源供應(yīng)并將CKE保持為低后,我們就可以為DDRSDRAM提供一個(gè)穩(wěn)定的時(shí)鐘;3. 在向DDRSDRAM發(fā)布命令之前,必須等待至少200us;4. 為了初始化DDRSDRAM的內(nèi)部邏輯,將CKE置為SSTL_2邏輯高并在命令總線上發(fā)布一個(gè)NOP命令或一個(gè)DESELECT命令。注意,此時(shí)CKE輸入從LVCMOS輸入轉(zhuǎn)變?yōu)镾STL_2輸入并保持為SSTL_2輸入;5. 發(fā)布一個(gè)PRECHARGEALL命令;6. 在至少tRP的時(shí)間內(nèi)為DDRSDRAM發(fā)布NOP或DESELECT命令(也就是說(shuō)至少tRP時(shí)間后才能發(fā)布其它命令);7. 使用LMR命令編程擴(kuò)展模式寄存器。此時(shí),必須配置DLL(將E0設(shè)置為0以便使能DLL)和I/O驅(qū)動(dòng)強(qiáng)度(將E1設(shè)置為1提供標(biāo)準(zhǔn)驅(qū)動(dòng),或者將E1設(shè)置為0來(lái)提供縮減驅(qū)動(dòng)強(qiáng)度),所有其它的位必須設(shè)置成0;8. 在至少tMRD的時(shí)間內(nèi)為DDRSDRAM發(fā)布NOP或DESELECT命令(也就是說(shuō)至少tMRD時(shí)間后才能發(fā)布其它命令);9. 使用LMR命令將DDRSDRAM的模式寄存器設(shè)置為期望的操作模式。注意,除了M0到M7之外的所有其它MR位必須被設(shè)置成0。在這一步驟還執(zhí)行一個(gè)DLL復(fù)位。只要DLL被復(fù)位,那么需要至少等待200個(gè)時(shí)鐘周期才能發(fā)布可執(zhí)行命令(例如READ命令);10. 在至少tMRD的時(shí)間內(nèi)為DDRSDRAM發(fā)布NOP或DESELECT命令(也就是說(shuō)至少tMRD時(shí)間后才能發(fā)布其它命令);11. 發(fā)布一個(gè)PRECHARGEALL命令并將A10設(shè)置成邏輯高電平,這一命令將所有BANK置入空閑態(tài);12. 在至少tRP的時(shí)間內(nèi)為DDRSDRAM發(fā)布NOP或DESELECT命令(也就是說(shuō)至少tRP時(shí)間后才能發(fā)布其它命令);13. 發(fā)布一個(gè)AUTOREFRESH命令。注意,作為DDRSDRAM初始化的一部分,必須發(fā)布兩個(gè)AUTOREFRESH命令:在本步驟時(shí)發(fā)布一個(gè),在第15步時(shí)再發(fā)布一個(gè);14. 在至少tRFC的時(shí)間內(nèi)為DDRSDRAM發(fā)布NOP或DESELECT命令(也就是說(shuō)至少tRRF時(shí)間后才能發(fā)布其它命令);15. 發(fā)布第二個(gè)AUTOREFRESH命令;16. 在至少tRFC的時(shí)間內(nèi)為DDRSDRAM發(fā)布NOP或DESELECT命令(也就是說(shuō)至少tRRF時(shí)間后才能發(fā)布其它命令);17. 發(fā)布一個(gè)LMR命令來(lái)清除DLL位(將M8設(shè)置為0);18. 在至少tMRD的時(shí)間內(nèi)為DDRSDRAM發(fā)布NOP或DESELECT命令(也就是說(shuō)至少tMRD時(shí)間后才能發(fā)布其它命令);至此,DDRSDRAM的初始化過程就結(jié)束了,此后,我們可以發(fā)布任何有效的命令。注意:從第9步的DLL復(fù)位到任何后續(xù)命令之間至少需要200個(gè)時(shí)鐘周期。上述的初始化過程可以用下面的簡(jiǎn)化流程圖表示:DDRSDRAM初始化的時(shí)序圖如下圖所示:在上面所描述的初始化操作中,一個(gè)很重要的命令就是加載模式寄存器命令,在接下來(lái)的一節(jié)中我們會(huì)對(duì)DDRSRAM的模式寄存器進(jìn)行詳細(xì)的描述。5. DDR SDRAM的模式寄存器在DDRSDRAM的初始化過程中,我們必須配置DDRSDRAM的操作參數(shù)。操作參數(shù)是通過DDRSRAM的兩個(gè)內(nèi)部寄存器進(jìn)行配置的,這兩個(gè)內(nèi)部寄存器分別為:模式寄存器(ModeRegister,MD)和擴(kuò)展模式寄存器(ExtendedModeRegister,EMR)。在上一節(jié)所提到的LMR(加載模式寄存器)命令就是用來(lái)編程這兩個(gè)寄存器。在發(fā)布LMR命令的時(shí)候需要與DDRSRAM的BANK地址(BA1:0)和行地址(A13:0)配合使用。其中BA1:0用來(lái)選擇MR或EMR;A13:0用來(lái)提供寫入的配置碼,A13:0的最低有效位對(duì)應(yīng)模式寄存器的最低有效位。其時(shí)序圖如圖5-1所示:模式寄存器DDRSDRAM模式寄存器的定義如圖5-2所示:模式寄存器用來(lái)定義DDRSDAM的特定操作模式,包括突發(fā)長(zhǎng)度、突發(fā)類型、CAS時(shí)延、以及復(fù)位DLL等。在發(fā)布LMR命令來(lái)編程模式寄存器時(shí)BA1:0必須設(shè)置為2B00來(lái)選擇模式寄存器,所加載的配置參數(shù)會(huì)一直保持(M8位除外,它是自清除的)直到模式寄存器被重新編程或DDRSDRAM掉電。模式寄存器只有在所有BANK都處于空閑狀態(tài)并且所有突發(fā)傳輸都已經(jīng)結(jié)束的情況下才能夠被加載,而且在發(fā)布完該命令后必須等待一個(gè)特定的時(shí)間才能執(zhí)行后續(xù)操作,否則會(huì)引起不可預(yù)料的操作結(jié)果。模式寄存器的M8位用來(lái)復(fù)位DDRSDRAM內(nèi)部的DLL,當(dāng)改位置位后會(huì)復(fù)位DLL,并且它是一個(gè)自清除的位,也就是說(shuō)當(dāng)DLL復(fù)位完成后改位會(huì)自動(dòng)清除成0。模式寄存器的M2:0用來(lái)指定突發(fā)長(zhǎng)度、M3用來(lái)指定突發(fā)類型(順序或交錯(cuò)的)、M6:4用來(lái)指定CAS時(shí)延、M13:7用來(lái)指定操作模式(M12在256Mb及以上的器件中使用、M13在1Gb容量的器件中使用)。有關(guān)突發(fā)長(zhǎng)度、突發(fā)類型、CAS時(shí)延的詳細(xì)描述我們將會(huì)在下一節(jié)中給出。擴(kuò)展模式寄存器DDRSDRAM擴(kuò)展模式寄存器的定義如圖5-3所示:擴(kuò)展模式寄存器用來(lái)控制DDRSDRAMDLL的使能/關(guān)閉以及輸出驅(qū)動(dòng)強(qiáng)度的選擇。在發(fā)布LMR命令來(lái)編程擴(kuò)展模式寄存器時(shí)BA1:0必須設(shè)置為2B01來(lái)選擇擴(kuò)展模式寄存器,所加載的配置參數(shù)會(huì)一直保持直到擴(kuò)展模式寄存器被重新編程或DDRSDRAM掉電。擴(kuò)展模式寄存器只有在所有BANK都處于空閑狀態(tài)并且所有突發(fā)傳輸都已經(jīng)結(jié)束的情況下才能夠被加載,而且在發(fā)布完該命令后必須等待一個(gè)特定的時(shí)間才能執(zhí)行后續(xù)操作,否則會(huì)引起不可預(yù)料的操作結(jié)果。 DLL的使能與關(guān)閉:DLL的使能/關(guān)閉通過E0位來(lái)控制。在正常操作模式下,DLL必須被使能。每次DLL被使能后必須緊跟一個(gè)DLL的復(fù)位操作(通過編程模式寄存器),并且必須在200個(gè)時(shí)鐘周期后才能發(fā)布其它可執(zhí)行命令(讀或?qū)懙龋?輸出驅(qū)動(dòng)強(qiáng)度選擇:DDRSDRAM所有輸出的正常驅(qū)動(dòng)強(qiáng)度是SSTL_2,某些器件制造商可能會(huì)支持一個(gè)較弱的驅(qū)動(dòng)強(qiáng)度來(lái)驅(qū)動(dòng)更輕的負(fù)載或者在點(diǎn)到點(diǎn)環(huán)境中使用。擴(kuò)展模式寄存器的E1位用來(lái)選擇驅(qū)動(dòng)強(qiáng)度,在使用時(shí)注意具體器件的數(shù)據(jù)手冊(cè)。接下來(lái)我們首先對(duì)DDRSDRAM使用中的一些基本概念、術(shù)語(yǔ)進(jìn)行詳細(xì)描述。SDRAM操作小結(jié)前幾天在21IC上看到有一個(gè)家伙問SDRAM的問題,什么地址線連接啊,操作啊,看完后,只能輕嘆一聲,菜鳥啊,估計(jì)SDRAM從來(lái)沒使用過,只會(huì)使用普通的一些存儲(chǔ)器的家伙?;叵胍幌伦约哼@3年來(lái)做過的系統(tǒng),用了各種各樣的存儲(chǔ)器,想想是不是要小結(jié)一下,以至紀(jì)念我的技術(shù)歲月,因?yàn)橐院蟠蛩汩_始混日子了。1,SDRAM的地址線在我們一般用的什么SRAM啊,PSRAM啊,RAM啊,一般而言都是有多少根地址線,然后可以算出尋址空間,比如有11根地址線,那尋址空間就是2的11次方減1。但是SDRAM是分列地址和行地址的,行、列地址線是復(fù)用的,所以有時(shí)候我們看到說(shuō)尋址空間有多大多大,但是看看地址線怎么就那么幾根啊,呵呵。SDRAM一般還有2根BANK的線,分成4個(gè)BANK,在有的處理器的SDRAM控制模塊中,這兩根線可能映射到地址線的某兩根去。一般芯片常按照以下方式寫芯片的配置,比如4Megx4x16,那這個(gè)芯片就是256Mbits。其中16指數(shù)據(jù)線是16根,中間一個(gè)4是只分4個(gè)BANK,每個(gè)BANK是4Meg。2,SDRAM的初始化SDRAM上電后使用前必須要經(jīng)過一段初始化操作才可以使用。這個(gè)操作過程是標(biāo)準(zhǔn)的過程。這個(gè)過程如下A:prechargeB:auto-refreshC:LoadModeRegisterD:NormalRead/Write在上電后輸入初始化命令之前,最少要100us延遲(這個(gè)其實(shí)很容易滿足,呵呵)。在輸入precharge命令后,因?yàn)楸仨毷菍?duì)所有BANK進(jìn)行Precharge,所以A10這個(gè)管腳要設(shè)置成高,因此在Precharge后面要做一個(gè)讀的操作,這個(gè)操作最主要的是在SDRAM的尋址空間里設(shè)置的地址必須是A10是高的。在輸入Auto-refresh命令后,一般要跟幾句空操作或者讀什么之類的,反正要達(dá)到延遲的目的,以使得SDRAM有時(shí)間來(lái)完成refresh。之后就是要設(shè)置SDRAM的模式寄存器,這個(gè)寄存器里一般設(shè)置了burst長(zhǎng)度,CAS,burst類型,操作模式,還有是設(shè)置SDRAM是工作在單個(gè)讀寫操作還是burst操作下。而這個(gè)寄存器的設(shè)置也是通過地址線來(lái)設(shè)置的,所以在發(fā)出LoadModeRegister命令后要做一個(gè)操作可是使得在SDRAM的地址線上出線的值就是你要設(shè)置的值。這里很有必要提醒的一下的是,這個(gè)操作是8位的操作,切記切記。設(shè)置完模式寄存器后就進(jìn)入正常操作模式。實(shí)際上具體的操作要跟選用的處理器的SDRAM控制模塊相結(jié)合來(lái)設(shè)置。對(duì)于這些初始化命令比較直觀的理解就是拿邏輯分析儀來(lái)分析。在這里需要提醒一下CAS這個(gè)參數(shù)很重要。還有SDRAM必須要刷新的,因此刷新頻率可以按照手冊(cè)算出來(lái)的,但是設(shè)置的高一點(diǎn)也是可以的。常常SDRAM都有工作頻率,但是也可以工作在低一點(diǎn)的頻率上,比如PC133的,你工作到100也是可以的,設(shè)置基本不需要修改。3,其他我們有時(shí)候看到有的原理圖上數(shù)據(jù)線有倒過來(lái)接的,其實(shí)這個(gè)無(wú)所謂的,反過接,寫進(jìn)去的就是反的,但是讀出又反了一下,反反兩次正好沒反。延伸一下到DDR,其實(shí)DDR就是SDRAM外面加了一個(gè)烏龜殼。因此初始化是一樣的。當(dāng)然DDR一是多了一個(gè)把時(shí)鐘頻率反相的時(shí)鐘,因此有2個(gè)相位差180度的時(shí)鐘。這兩個(gè)一般都是用同一個(gè)時(shí)鐘源產(chǎn)生,一致性會(huì)比較好。還有多了2個(gè)DQS,這個(gè)也是一個(gè)時(shí)序要求,一般CPU的控制模塊都有設(shè)置好了。如果你使用的CPU不含有控制模塊,那用FPGA去做一個(gè)控制模塊的話,那就要好好研究時(shí)序了。在有些處理器的控制模塊中,由于EMI的設(shè)置,地址線映射關(guān)系復(fù)雜,因此推算會(huì)比較麻煩,一般如果沒有什么映射的話,還是很容易操作的。DDR SDRAM在嵌入式系統(tǒng)中的應(yīng)用 引言 很多嵌入式系統(tǒng),特別是應(yīng)用于圖像處理與高速數(shù)據(jù)采集等場(chǎng)合的嵌入式系統(tǒng),都需要高速緩存大量的數(shù)據(jù)。DDR(Double Data Rate,雙數(shù)據(jù)速率)SDRAM由于其速度快、容量大,而且價(jià)格便宜,因此能夠很好地滿足上述場(chǎng)合對(duì)大量數(shù)據(jù)緩存的需求。但DDR SDRAM的接口不能直接與現(xiàn)今的微處理器和DSP的存儲(chǔ)器接口相連,需要在其間插入控制器實(shí)現(xiàn)微處理器或DSP對(duì)存儲(chǔ)器的控制。 隨著密度與性能的不斷提升,現(xiàn)場(chǎng)可編程門陣列(FPGA)已被廣泛應(yīng)用于各種嵌入式系統(tǒng)中。而且,現(xiàn)在很多的FPGAs都提供了針對(duì)DDR SDRAM的接口特性:其輸入輸出引腳都與SSTL電氣特性兼容,內(nèi)部提供了DDR觸發(fā)器、鎖相環(huán)等硬件資源。使用這些特性,可以更加容易地設(shè)計(jì)性能可靠的高速DDR SDRAM存儲(chǔ)器控制器。 1 DDR SDRAM 在嵌入式系統(tǒng)中的應(yīng)用圖1是DDR SDRAM在高速信號(hào)源系統(tǒng)中的應(yīng)用實(shí)例。 在該系統(tǒng)中,由FPGA的完成各模塊之間的接口控制。FPGA接收從前端傳送過來(lái)的高速數(shù)字信號(hào),并將其存儲(chǔ)在DDR SDRAM中;DSP通過FPGA讀取DDR中的數(shù)據(jù),處理后再送回到DDR SDRAM,最后由FPGA負(fù)責(zé)將數(shù)據(jù)分兩路輸出。 該系統(tǒng)對(duì)存儲(chǔ)器的要求是能夠高速地存儲(chǔ)大量的數(shù)據(jù),DDR SDRAM正好能滿足這一要求,此時(shí),F(xiàn)PGA是否能對(duì)DDR SDRAM進(jìn)行有效控制就成為影響系統(tǒng)性能的關(guān)鍵。最后的試驗(yàn)結(jié)果表明,F(xiàn)PGA是能夠勝任這一任務(wù)的。 2 DDR SDRAM的工作方式 在DDR SDRAM能夠被存取數(shù)據(jù)之前,需要先對(duì)其初始化。該初始化流程是預(yù)先定義好的。不正確的操作將導(dǎo)致無(wú)法預(yù)料的結(jié)果。初始化的過程中將設(shè)置DDR SDRAM的普通模式寄存器和擴(kuò)展模式寄存器,用來(lái)制定DDR SDRAM的工作方式,這些設(shè)置包括突發(fā)長(zhǎng)度、突發(fā)類型、CAS潛伏期和工作模式以及擴(kuò)展模式寄存器中的對(duì)DDR SDRAM內(nèi)部DLL的使能與輸出驅(qū)動(dòng)能力的的設(shè)置。模式寄存器可以被再編程,這時(shí)需要DDR SDRAM的各個(gè)區(qū)(bank)處于空閑狀態(tài),從而改變存儲(chǔ)器的工作模式。如果操作正確,對(duì)模式寄存器的再編程不會(huì)改變存儲(chǔ)器內(nèi)存儲(chǔ)的數(shù)據(jù)。 初始化完全之后,DDR SDRAM便進(jìn)入正常的工作狀態(tài),此時(shí)便可對(duì)存儲(chǔ)器進(jìn)行讀寫和刷新。DDR SDRAM在一對(duì)差分時(shí)鐘(CLK與CLKn;CLK的上升沿與CLKn的下降沿的交點(diǎn)被認(rèn)為是CLK的上升沿)的控制下工作。命令(地址和控制信號(hào))在每個(gè)時(shí)鐘(CLK)的上升沿被觸發(fā)。隨著數(shù)據(jù)一起傳送的還包括一個(gè)雙向的數(shù)據(jù)選通信號(hào),接收方通過該信號(hào)來(lái)接收數(shù)據(jù)。DQS作為選通信號(hào)在讀周期中由DDR SDRAM來(lái)產(chǎn)生,寫周期中由存儲(chǔ)器控制器來(lái)產(chǎn)生。該選通信號(hào)與數(shù)據(jù)相關(guān),其作為類似于一個(gè)獨(dú)立的時(shí)鐘,因此也需要滿足相應(yīng)的時(shí)序要求。讀周期中,DQS與數(shù)據(jù)是邊沿對(duì)齊的;寫周期中,DQS與數(shù)據(jù)是中心對(duì)齊的。存儲(chǔ)器輸入的數(shù)據(jù)在DQS的兩個(gè)沿都觸發(fā),輸出的數(shù)據(jù)也是以DQS的兩個(gè)沿作為參考,同時(shí)還要以時(shí)鐘CLK的兩個(gè)沿作為參考。不單單以CK邊沿為參考么?因此,由于接口在時(shí)鐘的兩個(gè)沿的觸發(fā)下工作。其數(shù)據(jù)寬度(n)是存儲(chǔ)器數(shù)據(jù)寬度(2n)的一半。圖2描述了DDR SDRAM的工作方式。 對(duì)DDR SDRAM的讀和寫操作是基于突發(fā)的:從一個(gè)選定的地址單元開始,連續(xù)存取設(shè)置好長(zhǎng)度的地址單元。該長(zhǎng)度就是所謂的突發(fā)長(zhǎng)度。DDR SDRAM提供的可編程的讀或?qū)懙耐话l(fā)長(zhǎng)度為2,4或8。數(shù)據(jù)的存取以一個(gè)激活命令(ACTIVE command,RAS_n low)開始,接著便是讀(CAS_n low)或?qū)懀–AS_n low and WE_n low)命令。與激活命令一起被觸發(fā)的地址位用來(lái)選擇將要存取的區(qū)(bank)和頁(yè)(或行);與讀或?qū)懨钜黄鹩|發(fā)的地址位用來(lái)選擇突發(fā)存取的起始列單元。使用控制器讀取DDR SDRAM的仿真波形示意圖如圖2所示。讀命令被觸發(fā)后,數(shù)據(jù)將在1.53個(gè)時(shí)鐘周期之后觸發(fā)在數(shù)據(jù)總線上。這個(gè)延遲就是所謂的CAS潛伏期(CL, CAS latency),即從DRAM內(nèi)核讀出數(shù)據(jù)到數(shù)據(jù)出現(xiàn)在數(shù)據(jù)總線上所需要的時(shí)間 。CAS潛伏期的大小與SDRAM的速度和存儲(chǔ)器的時(shí)鐘頻率有關(guān)。 當(dāng)要存取一個(gè)不同行的地址單元時(shí),需要通過一個(gè)預(yù)充電(PRECHARGE)操作關(guān)閉當(dāng)前行。自動(dòng)刷新(AUTOREFRESH)命令用來(lái)周期性地刷新DDR SDRAM,以保持其內(nèi)部的數(shù)據(jù)不丟失。 3 DDR SDRAM控制器的設(shè)計(jì) DDR SDRAM控制器的功能就是初始化DDR SDRAM;將DDR SDRAM復(fù)雜的讀寫時(shí)序轉(zhuǎn)化為用戶方簡(jiǎn)單的讀寫時(shí)序,以及將DDR SDRAM接口的雙時(shí)鐘沿?cái)?shù)據(jù)轉(zhuǎn)換為用戶方的單時(shí)鐘沿?cái)?shù)據(jù),使用戶像操作普通的RAM一樣控制DDR SDRAM;同時(shí),控制器還要產(chǎn)生周期性的刷新命令來(lái)維持DDR SDRAM內(nèi)的數(shù)據(jù)而不需要用戶的干預(yù)。 3.1 DDR SDRAM控制器的控制流程 DDR SDRAM提供了多種命令,整個(gè)控制狀態(tài)機(jī)非常復(fù)雜。但很多應(yīng)用場(chǎng)合中,并不需要用到所有的命令我們需要實(shí)現(xiàn)哪些命令呢?,因此為了簡(jiǎn)化設(shè)計(jì),但同時(shí)又兼顧盡可能多的應(yīng)用場(chǎng)合,在控制器的設(shè)計(jì)中制定了如下幾種功能:DDR SDRAM的初始化、可變長(zhǎng)度的突發(fā)讀寫,自動(dòng)刷新功能,預(yù)充電以及模式寄存器的重置(reload)。圖3是控制器整個(gè)狀態(tài)轉(zhuǎn)移圖。 系統(tǒng)上電后,DDR SDRAM處于空閑狀態(tài)(Idle),在對(duì)存儲(chǔ)器進(jìn)行讀寫操作之前,需要先對(duì)其進(jìn)行初始化。初始化的過程中,將設(shè)置突發(fā)長(zhǎng)度,突發(fā)類型,CAS潛伏期等參數(shù)。DDR SDRAM的初始化有一個(gè)固定的步驟,錯(cuò)誤的操作將導(dǎo)致DDR SDRAM進(jìn)入不確定狀態(tài)。在控制器中使用了一個(gè)專門的初始化狀態(tài)機(jī)來(lái)對(duì)DDR SDRAM進(jìn)行初始化。 初始化完之后便可對(duì)DDR SDRAM進(jìn)行讀、寫或其他操作。在執(zhí)行讀(寫)命令之前,先要激活(Active)將要讀(寫)的行,之后便可對(duì)該行進(jìn)行突發(fā)讀(寫),在控制器的設(shè)計(jì)中,所有的讀寫命令都是不帶預(yù)充電的,因此,某一行被激活之后將一直處于激活狀態(tài),直到用戶發(fā)送突發(fā)終止命令,此時(shí)控制器將自動(dòng)產(chǎn)生一個(gè)預(yù)充電命令來(lái)關(guān)閉當(dāng)前行。這樣,某一行被激活之后用戶便可進(jìn)行連續(xù)的突發(fā)讀(寫)操作,從而節(jié)省了每次突發(fā)讀寫所需要的激活時(shí)間,提高了系統(tǒng)的數(shù)據(jù)吞吐率。 控制器同時(shí)提供了一個(gè)自動(dòng)刷新(auto refresh)計(jì)數(shù)器,每隔一定的時(shí)間間隔(即DDR SDRAM的刷新周期,根據(jù)所使用的存儲(chǔ)器而定,可在控制器中設(shè)定),便會(huì)產(chǎn)生一個(gè)刷新請(qǐng)求,如果此時(shí)DDR SDRAM處于空閑狀態(tài),控制器便會(huì)發(fā)生一個(gè)自動(dòng)刷新命令來(lái)對(duì)DDR SDRAM進(jìn)行刷新;如果此時(shí)DDR SDRAM正在進(jìn)行讀(寫)操作,控制器將會(huì)等到當(dāng)前的讀(寫)操作完全之后再發(fā)送新命令。在刷新過程中,用戶如果有讀(寫)請(qǐng)求,控制器將在當(dāng)前的刷新周期完成之后再響應(yīng)用戶的請(qǐng)求。 正常的操作過程中,當(dāng)DDR SDRAM處于空閑狀態(tài)時(shí),用戶還可以根據(jù)實(shí)際的需要來(lái)重置存儲(chǔ)器的控制寄存器,重新設(shè)定存儲(chǔ)器的突發(fā)長(zhǎng)度、突發(fā)類型、CAS潛伏期等參數(shù)。 3.2 控制器數(shù)據(jù)通道的結(jié)構(gòu) 圖4是DDR SDRAM控制器數(shù)據(jù)通道的結(jié)構(gòu)圖。圖4中完整的顯示了控制器讀和寫數(shù)據(jù)通道上DQ與DQS的結(jié)構(gòu)關(guān)系。前面提到過,Cyclone系列FPGA沒有帶DDR觸發(fā)器的輸入輸出單元什么結(jié)構(gòu)才是DDR觸發(fā)器輸入輸出單元?是不是在時(shí)鐘的兩個(gè)邊沿都對(duì)D觸發(fā)器進(jìn)行觸發(fā)來(lái)得到類似的雙倍速率的結(jié)構(gòu)?如圖中所示的兩個(gè)D觸發(fā)器,第一個(gè)是用clk_90,第二個(gè)是用clk,這樣的話,輸入的數(shù)據(jù)對(duì)于每一個(gè)時(shí)鐘來(lái)說(shuō)都只是保持了半個(gè)周期,從而達(dá)到一個(gè)時(shí)鐘周期傳送兩次數(shù)據(jù)的目的?,但完全可以用靠近輸入輸出引腳處的邏輯資源來(lái)實(shí)現(xiàn)DDR觸發(fā)器,而
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 盥洗水龍頭批發(fā)企業(yè)縣域市場(chǎng)拓展與下沉戰(zhàn)略研究報(bào)告
- 婚姻家庭咨詢合同
- 媒介資源對(duì)接分包合同
- 二零二五年度影視明星對(duì)賭協(xié)議執(zhí)行合同
- 二零二五年度酒店管理行業(yè)學(xué)徒合同協(xié)議書模板
- 2025年度高端商業(yè)街區(qū)廣告位租用協(xié)議
- 2025年度路燈工程合同售后服務(wù)條款
- 2025年度物流企業(yè)融資借款合同
- 二零二五年度車輛運(yùn)輸安全風(fēng)險(xiǎn)評(píng)估與風(fēng)險(xiǎn)控制合同范本
- 二零二五年度醫(yī)療健康產(chǎn)業(yè)貸款擔(dān)保合同
- 2025年雙方協(xié)商一致自愿離婚協(xié)議書范本
- 眼科與視功能檢查屈光參差課件
- GB/T 6433-2025飼料中粗脂肪的測(cè)定
- 2025年湖南司法警官職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)學(xué)生專用
- 2025年呼和浩特職業(yè)學(xué)院?jiǎn)握新殬I(yè)傾向性測(cè)試題庫(kù)及參考答案
- 2025山西國(guó)際能源集團(tuán)有限公司所屬企業(yè)社會(huì)招聘258人筆試參考題庫(kù)附帶答案詳解
- 四川德陽(yáng)歷年中考語(yǔ)文文言文閱讀試題12篇(含答案與翻譯)(截至2024年)
- 合唱之美知到智慧樹章節(jié)測(cè)試課后答案2024年秋山東航空學(xué)院
- 中國(guó)卒中學(xué)會(huì)急性缺血性卒中再灌注治療指南+2024解讀
- 中國(guó)心力衰竭診斷和治療指南2024解讀(完整版)
評(píng)論
0/150
提交評(píng)論