《SDRAM 設(shè)備操作》由會員分享,可在線閱讀,更多相關(guān)《SDRAM 設(shè)備操作(10頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、SDRAM設(shè)備操作1.上電時序SDRAM在上電時必須正確初始化,時序如下:1.加電和時鐘開始,在輸入端保持NOP狀態(tài);2保持穩(wěn)定的供電、時鐘和NOP狀態(tài)最少200us;3. 對所有BANK執(zhí)行預(yù)充命令;4. 執(zhí)行8個或更多個自動刷新命令;5. 執(zhí)行模式設(shè)置命令以初始化模式寄存器。2.模式寄存器設(shè)置tRPSDRAM有一個片上模式寄存器,用戶可以對其進(jìn)行編程,選擇讀/寫DRAM期間的讀延遲、突發(fā)長度和突發(fā)類型。在上電時序后,必須執(zhí)行MRS命令以初始化設(shè)備。寫數(shù)據(jù)到模式寄存器需要兩個時鐘周期,在MRS命令期間,其他命令無法執(zhí)行。tMFCLKCn-nr-fltIIHIIHG-Note:1.Allb日n
2、ksshouldbeprechangestatet:excuteMRScommandBurstTypeA9WriteMode03.i匚aiJDlil-LAi-1LlilLulk.CllUdhll*OPCodeA3BnjrtT爐巳i.EWcpentiN1nterleaveA6ASA4CASL自t色“吋r.r-r-crxcdcrIrvr/cdci-C111i:F.U-crtaJ1L1F.sitrvtd11:Reaa-|/ed111ReservedCASLatencyA2AlAOBuratLength於=DA3=lCJc1100122i.Li.4斗11Ss10匚IReservedReserved10
3、1keserkiedReserved110keservedReserved111FullpageReserv&dBurstLengthModeRegisterBA1BA0A12AllAIDA9A8A7A6ASA4A3A2AlAO1aIIa0O:,:r-kaCASLatencyBTBuratLength3.行有效使用BANK激活命令可以激活SDRAM空閑BANK的任意行。在行有效最少tRCD時間延遲后突發(fā)讀/寫命令可以執(zhí)行。激活另一BANK需要最少tRRD個延遲。已經(jīng)處于激活狀態(tài)的BANK不能再給予行有效命令,同樣,當(dāng)SDRAM正處于掉電、自刷新、自動刷新或時鐘掛起狀態(tài)時也不能給予行有效命令。4
4、. 讀BANK該命令用于對有效行的突發(fā)讀。第一個有效數(shù)據(jù)出現(xiàn)在CAS#時鐘延時后,CL只在讀取時出現(xiàn)。5. 寫B(tài)ANK第一個有效數(shù)據(jù)可以與寫命令和列地址同時輸入,不受CAS#的影響。ROWACTIVE,READANDWRITECLKl=!RD*rurun_rururL_ru1RCDTJra呂L罕ruhruAddress:卄V/1Xc.n|IM77二CommandtKII、K-jH畀AddBanEi-0ReaBanIa:卜HF乍k1WriklCjXQiKQi21LelJLelJLeLJLE3JBLM,CL=3andiRCD=36. 預(yù)充(PRECHARGE)預(yù)充命令用于釋放已打開的行貨打開新的行
5、。預(yù)充可以通過命令實現(xiàn),也可以通過具有預(yù)充功能的讀/寫命令實現(xiàn),即讀/寫操作后自動預(yù)充電。在發(fā)出預(yù)充命令后,要經(jīng)過tRP個時鐘發(fā)送行有效命令,如果超過這個延遲了,那么BANK會進(jìn)入Idle狀態(tài)。執(zhí)行讀命令、寫命令和預(yù)充命令時,A10決定預(yù)充模式。在執(zhí)行預(yù)充命令時,如果A10為高電平,則對所有BANK執(zhí)行預(yù)充,如果A10為低電平,則只對由BA1/BA0指定的存儲體進(jìn)行預(yù)充。在執(zhí)行讀/寫命令時,如果A10為高電平,則讀/寫操作后進(jìn)行自動預(yù)充,如果A10為低電平,則讀/寫后不進(jìn)行預(yù)充操作。7. 刷新(REFRESH)SDRSDRAM需要每64ms對所有行刷新一次,以保持存儲體中的數(shù)據(jù)。刷新方式分兩種
6、:自動刷新(AutoRefresh)和自刷新(SelfRefresh)。自動刷新用于正常操作模式,在自動刷新時,其他命令無法操作。而自刷新主要用于低功耗狀態(tài)下的數(shù)據(jù)保存。AlteraSDRSDRAM控制器Altera公司提供了一個符合工業(yè)標(biāo)準(zhǔn)的SDRSDRAM簡單控制接口,該控制器由VHDL實現(xiàn)。SDRSDRAM控制器系統(tǒng)框圖如下圖所示。CLKCMD1:0CMDACKADDRDATAINDMDATAOUTCLK.KCSNSDRSDRAMControllerRASNCAS_NWE_N.DQMSDRSDRAMSDRAM總線命令:命令縮寫RAS#CAS#WE#無操作NOPHHH激活A(yù)ctiveACT
7、LHH讀操作ReadRDHLH寫操作WriteWRHLL突發(fā)終止BurstTerminateBTHHL預(yù)充電PerchargePCHLHL自動刷新AutoRefreshARFLLH裝入模式寄存器LoadModeLMRLLLSDRAM存儲體在進(jìn)行讀/寫操作前必須打開,行地址和體的打開使用命令A(yù)CT。當(dāng)對某個存儲體進(jìn)行讀/寫操作時,如果行地址和當(dāng)前行地址不同,則需要先關(guān)閉存儲體,然后再打開它,關(guān)閉存儲體使用命令PCH。SDRAM控制器命令接口SDRAM控制器提供了一個和SDRAM之間的同步命令接口,以及幾個命令寄存器。命令值描述NOP000b空操作READA001b帶自動預(yù)充SDRAM讀操作WRI
8、TEA010b帶自動預(yù)充SDRAM寫操作REFRESH011bSDRAM自動刷新PERCHARGE100b對SDRAM所有存儲體預(yù)充電LOADMODE101bSDRAM模式寄存器裝入LOADREG1110b裝入控制器配置寄存器LOADREG2111b裝入控制器刷新周期寄存器讀命令(READA):該命令指示SDRAM控制器執(zhí)行帶有自動預(yù)充的突發(fā)讀命令,讀地址由ADDR決定,SDRAM控制器會先發(fā)一個ACTIVATEE命令,然后是READA命令。突發(fā)讀的首個數(shù)據(jù)在SDRAM控制器發(fā)出CMDACK后出現(xiàn)在DATAOUT上(RCD+CL+2),讀期間DM應(yīng)保持為低。當(dāng)控制器配置為滿頁操作時,READA
9、執(zhí)行為不帶自動預(yù)充突發(fā)讀命令。命令順序:發(fā)出READA、ADDR、DM; SDRAM控制器發(fā)出CMDACK響應(yīng)命令,同時向SDRAM器件發(fā)出命令;在CMDACK后的一個時鐘周期,發(fā)出NOP命令; CMDACK表示第一個突發(fā)讀數(shù)據(jù)出現(xiàn)在DATAOUT上,以后每個數(shù)據(jù)隨時鐘輸出。寫命令(WRITEA):該命令指示SDRAM控制器執(zhí)行帶有自動預(yù)充的突發(fā)寫命令,寫地址由ADDR決定??刂破鹘邮盏矫詈髸劝l(fā)送一個ACTIVATE命令,然后發(fā)出WRITEA。突發(fā)寫的首個數(shù)據(jù)必須同WRITEA、ADDR同時出現(xiàn),在控制器響應(yīng)WRITEA命令*RCD-2個時鐘周期后,主機發(fā)送數(shù)據(jù)、DM值到控制器。當(dāng)WRIT
10、EA處于滿頁操作模式時,無自動預(yù)充功能。命令順序: 發(fā)出WRITEA、ADDR、第一個數(shù)據(jù)和DM; SDRAM控制器發(fā)出CMDACK響應(yīng)命令,同時向SDRAM器件發(fā)出命令;在CMDACK后的一個時鐘周期,發(fā)出NOP命令;按照時鐘將數(shù)據(jù)和DM送到控制器。r;gu:-93.加護(hù)eCLKjAjIAjAJAjAJ屯CKECMD1JCP:-imTEA.NOPCMDACK廠AJXFDr:KD.GDATAINDC.:=hy3;:EiQDMDCKI1KV)!EiCSAA0lumnBAjQ5_NKFl5_N-LHEJJrOhl1JJL);111仁3bYFIebjftADQi!lEA/D.C.=DuritCare
11、刷新命令(REFRESH):REFRESH通知控制器執(zhí)行ARF命令,命令流程: 用戶在CMD上發(fā)出REFRESH命令; SDRAM控制器發(fā)出CMDACK響應(yīng)命令,同時向SDRAM器件發(fā)出命令;用戶在CMD上發(fā)出NOP命令。預(yù)充電命令(PERCHARGE):該命令用于通知SDRAM控制器執(zhí)行“PCH”命令,控制器以CMDACK應(yīng)答該命令,該命令也用來停止突發(fā)操作,但僅支持滿頁操作。注意:控制器在主機發(fā)送命令到控制器和控制器發(fā)送命令到SDRAM設(shè)備之間附加了4個時鐘的延遲。如需要停止突發(fā)讀操作,則應(yīng)在希望停止的前(4+CL-1)個時鐘發(fā)出預(yù)充命令。命令流程: 用戶在CMD上發(fā)出PERCHARGE命
12、令; SDRAM控制器發(fā)出CMDACK響應(yīng)命令,同時向SDRAM器件發(fā)出命令;用戶在CMD上發(fā)出NOP命令。模式裝入命令(LOAD_MODE):該命令通知控制器執(zhí)行LMR命令,在LOAD_MODE命令發(fā)出時,ADDR11:0上表示模式的值將裝入SDRAM模式寄存器中。命令流程: 用戶在CMD上發(fā)出LOAD_MODE命令,模式值在ADDR11:0上; SDRAM控制器發(fā)出CMDACK響應(yīng)命令,同時向SDRAM器件發(fā)出命令;用戶在CMD上發(fā)出NOP命令。寄存器1裝入(LOAD_REG1):該命令通知控制器裝入內(nèi)部配置寄存器1REG1位定義:LableADDR位描述CL1:0CAS延遲設(shè)置RCD3:
13、2RAS到CAS之間延遲時鐘數(shù)RRD7:4刷新命令持續(xù)時鐘數(shù)PM8SDRAM控制器模式:0-普通,1-頁模式BL12:9突發(fā)長度,有效值為:1、2、4、8其中,RCD=tRCD/clock_periodRRD=tRRD/clock_periodBL:0000-頁,0001-長度為1,0010-長度為2,0100-長度為4,1000-長度為8寄存器2裝入(LOAD_REG2):該命令通知控制器裝入內(nèi)部配置寄存器2,該寄存器表示了REFRESH的周期間隔。例如:SDRAM器件具有64ms、4096周期的刷新要求,貝I:SDRAM至少需要每64ms/4096=15.625us發(fā)送一次刷新命令。如果S
14、DRAM的工作時鐘為100MHz,則REG2的最大值為15.625us/0.01us=1562。SDRAM設(shè)備初始化和SDRAM控制器配置連接到控制器的SDRAM器件在使用前應(yīng)該先進(jìn)行初始化,初始化過程設(shè)置突發(fā)長度、CAS延遲、突發(fā)類型、操作模式。在SDRAM器件初始化結(jié)束后,SDRAM控制器的配置寄存器必須設(shè)置,SDRAM器件初始化和SDRAM控制器配置步驟如下: 執(zhí)行預(yù)充(PERCHARGE)命令執(zhí)行LOAD_MODE命令 執(zhí)行LOAD_REG2命令 執(zhí)行LOAD_REG1命令SDRSDRAM主機接口SDRAM控制器IP核提供了對SDRAM器件的控制接口,但是要使用該IP核,還需要設(shè)計一個
15、SDR主機接口,該接口可以與SDRAM控制器相連,實現(xiàn)對控制器的初始化、讀、寫等操作,而對外部提供通用的系統(tǒng)總線接口,方便單片機等控制器能使用SDRAM作為外部存儲器。外部總線從結(jié)構(gòu)框圖上看,設(shè)計一個方便易用的SDRSDRAM主機接口是用好SDRAM的關(guān)鍵,那么這個SDRSDRAM主機接口應(yīng)該具有哪些功能呢?在波形分析儀采集板上,系統(tǒng)時鐘為100MHz,FPGA與SDRAM之間也是100MHz同步,對于32位數(shù)據(jù)總線來說,在最高400MHz采樣時鐘下,可以實現(xiàn)單通道高深度采樣。SDRAM才工作中,會有刷新等可能產(chǎn)生的額外時鐘,為保證采樣的數(shù)據(jù)不丟失,應(yīng)該在外部總線與SDRAM設(shè)備之間加緩沖FI
16、FO。另,SDRAM的讀寫方式,可以采用突發(fā)頁模式。實驗1,編寫SDRSDRAM主機接口邏輯,通過IP核對SDRAM(HY57V641620-H)器件進(jìn)行讀寫。實驗方法,突發(fā)寫:接收到寫命令(外部按鍵)后,將數(shù)據(jù)寫入SDRAM中,突發(fā)長度為8;突發(fā)讀:接收到讀命令(外部按鍵)后,從SDRAM中讀出數(shù)據(jù),通過程序控制將需要的數(shù)據(jù)通過LED燈顯示出來,觀看結(jié)果。實驗結(jié)果,突發(fā)寫18共8個數(shù)據(jù)到SDRAM地址0x0中,然后讀出,讀出數(shù)據(jù)為1/2/3/4/5/6/7/7,最后一個數(shù)據(jù)有問題。初始化寫數(shù)據(jù)讀數(shù)據(jù)實驗2:頁突發(fā)讀寫模式將0255共256個數(shù)采用頁突發(fā)方式寫入SDRAM中,然后讀出求其累計和
17、,觀察實驗現(xiàn)象,通過結(jié)果判斷讀寫是否正確。頁突發(fā)寫流程:WRITEA(ADDR/DM/DATA)響應(yīng)CMDACK寫數(shù)據(jù)一PERCHARGE命令(在最后一個數(shù)據(jù)出現(xiàn)的前3個時鐘發(fā)出,結(jié)束頁突發(fā))一PERCHARGE-NOP(4個時鐘后)一發(fā)送第二個PERCHARGE(關(guān)閉當(dāng)前行)一響應(yīng)其CMDACK返回IDLE狀態(tài)。頁突發(fā)讀流程:READA(ADDR/DM)響應(yīng)CMDACK等待tRCD+CL+2個時鐘讀取第一個數(shù)一執(zhí)行PERCHARGE(讀取的最后一個數(shù)據(jù)出現(xiàn)前的CL-1+7個時鐘發(fā)出,用于結(jié)束頁突發(fā))一PERCHARGE-NOP(4個時鐘后發(fā)出)一執(zhí)行PERCHARGE(關(guān)閉當(dāng)前行)一響應(yīng)其命令CMDACK返回IDLE狀態(tài)。