0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

SDRAM控制器詳解

FPGA設(shè)計(jì)論壇 ? 來源:FPGA設(shè)計(jì)論壇 ? 作者:FPGA設(shè)計(jì)論壇 ? 2022-05-09 10:09 ? 次閱讀

SDRAM的基本概念

SDRAM憑借其極高的性價(jià)比,廣泛應(yīng)用于高速數(shù)據(jù)存儲(chǔ)、實(shí)時(shí)圖像處理等設(shè)計(jì)當(dāng)中,但是相對(duì)于SRAM、FIFO等其他存儲(chǔ)器件,SDRAM的控制相對(duì)復(fù)雜。雖說是復(fù)雜,但也不代表沒辦法實(shí)現(xiàn),仔細(xì)梳理一下,發(fā)現(xiàn)SDRAM的控制其實(shí)也沒這么難。本文就SDRAM的基本概念以及其工作流程做簡(jiǎn)要介紹。

SDRAM 的基本信號(hào)

SDRAM 的基本信號(hào)(電源以及地線在這里不討論)可以分成以下三類,分別是控制信號(hào)、地址選擇信號(hào)以及數(shù)據(jù)信號(hào):

(1)控制信號(hào):包括片選(CS)、同步時(shí)鐘(CLK)、時(shí)鐘有效(CLKE)、讀寫選擇(/WE)、

數(shù)據(jù)有效(DQM)等;

(2)地址選擇信號(hào):包括行地址選擇(/RAS)、列地址選擇(/CAS)、行/列地址線(A0-A12)分時(shí)復(fù)用、Bank 塊地址線(BA0-BA1);

(3)數(shù)據(jù)信號(hào):包括雙向數(shù)據(jù)端口(DQ0-DQ15)、接收數(shù)據(jù)有效信號(hào)(DQM)控制等。DQM 為低時(shí),寫入/讀出有效。

c65e4cfe-cf3b-11ec-bce3-dac502259ad0.png

圖1 SDRAM 管腳基本信息

SDRAM相關(guān)指令以及關(guān)鍵參數(shù)解析

c67891b8-cf3b-11ec-bce3-dac502259ad0.png

圖2 SDRAM相關(guān)指令

上圖中,把SDRAM用到的所有指令都羅列出來了,其實(shí)我們?cè)谶\(yùn)用SDRAM的時(shí)候,只用到其中部分指令。例如其中write/write with autoprecharge,這兩個(gè)指令我們都可以對(duì)SDRAM進(jìn)行寫操作,只是說在” writewith autoprecharge”指令,我們每寫完一個(gè)突發(fā)長(zhǎng)度的數(shù)據(jù)之后,SDRAM會(huì)自動(dòng)跳出這個(gè)狀態(tài)進(jìn)行刷新,而在”write”指令,是需要給相應(yīng)的指令之后才會(huì)跳出”WRITE”狀態(tài)的,所以為了提高SDRAM的運(yùn)行速度,我們一般采用write指令來提高速度。當(dāng)然”read”和”read with autoprecharge”這兩個(gè)指令的區(qū)別也是這樣的。

常用指令:

讀(read)

在發(fā)送列讀寫命令時(shí)必須要與行有效命令有一個(gè)間隔,這個(gè)間隔被定義為tRCD,即

RAS to CAS Delay(RAS 至CAS 延遲),大家也可以理解為行選通周期,這應(yīng)該是根據(jù)芯片存儲(chǔ)陣列電子元件響應(yīng)時(shí)間(從一種狀態(tài)到另一種狀態(tài)變化的過程)所制定的延遲。下圖3中給出了,SDRAM讀的相關(guān)時(shí)序。

c69bc1a6-cf3b-11ec-bce3-dac502259ad0.png

圖3 SDRAM讀時(shí)序

SDRAM讀時(shí)序,簡(jiǎn)單概括起來就是:1.激活行--à2.選通列-à3.預(yù)充電,關(guān)閉所在行--à下一次指令。

寫(write)

c6bd9042-cf3b-11ec-bce3-dac502259ad0.png

圖4 SDRAM寫時(shí)序

預(yù)充電(precharge)

由于SDRAM 的尋址具有獨(dú)占性,所以在進(jìn)行完讀寫操作后,如果要對(duì)同一L-Bank 的另一行進(jìn)行尋址,就要將原來有效(工作) 的行關(guān)閉,重新發(fā)送行/列地址。L-Bank 關(guān)閉現(xiàn)有工作行,準(zhǔn)備打開新行的操作就是預(yù)充電(Precharge)。在發(fā)出預(yù)充電命令之后,要經(jīng)過一段時(shí)間才能允許發(fā)送RAS 行有效命令打開新的工作行,這個(gè)間隔被稱為tRP(Precharge command Period,預(yù)充電有效周期)。和tRCD、CL 一樣,tRP的單位也是時(shí)鐘周期數(shù),具體值視時(shí)鐘頻率而定。

自動(dòng)刷新(auto refresh)

之所以稱為DRAM,就是因?yàn)樗粩噙M(jìn)行刷新(Refresh)才能保留住數(shù)據(jù),因此它是DRAM 最重要的操作。刷新操作與預(yù)充電中重寫的操作一樣,都是用S-AMP 先讀再寫。但為什么有預(yù)充電操作還要進(jìn)行刷新呢?因?yàn)轭A(yù)充電是對(duì)一個(gè)或所有L-Bank 中的工作行操作,并且是不定期的,而刷新則是有固定的周期,依次對(duì)所有行進(jìn)行操作,以保留那些久久沒經(jīng)歷重寫的存儲(chǔ)體中的數(shù)據(jù)。

關(guān)鍵參數(shù):

tRCD:

從行有效到讀/寫命令發(fā)出之間的間隔被定義為tRCD,即RAS to CAS Delay(RAS至CAS延遲,RAS就是行地址選通脈沖,CAS就是列地址選通脈沖),大家也可以理解為行選通周期。廣義的tRCD以時(shí)鐘周期(tCK,Clock Time)數(shù)為單位,比如tRCD=2,就代表延遲周期為兩個(gè)時(shí)鐘周期,具體到確切的時(shí)間,則要根據(jù)時(shí)鐘頻率而定。

c6d540f2-cf3b-11ec-bce3-dac502259ad0.png

圖5 tRCD=3

CL:

相關(guān)的列地址被選中之后,將會(huì)觸發(fā)數(shù)據(jù)傳輸,但從存儲(chǔ)單元中輸出到真正出現(xiàn)在內(nèi)存芯片的 I/O 接口之間還需要一定的時(shí)間(數(shù)據(jù)觸發(fā)本身就有延遲,而且還需要進(jìn)行信號(hào)放大),這段時(shí)間就是非常著名的 CL(CAS Latency,列地址脈沖選通潛伏期)。CL 的數(shù)值與 tRCD 一樣,以時(shí)鐘周期數(shù)表示。如DDR-400,時(shí)鐘頻率為 200MHz,時(shí)鐘周期為 5ns,那么 CL=2 就意味著 10ns 的潛伏期。不過,CL 只是針對(duì)讀取操作,對(duì)于 SDRAM,寫入是沒有潛伏期的。

c6eac71a-cf3b-11ec-bce3-dac502259ad0.png

圖6 CL=2

BL:

突發(fā)(Burst)是指在同一行中相鄰的存儲(chǔ)單元連續(xù)進(jìn)行數(shù)據(jù)傳輸?shù)姆绞?,連續(xù)傳輸?shù)闹芷跀?shù)就是突發(fā)長(zhǎng)度(Burst Lengths,簡(jiǎn)稱BL)。在進(jìn)行突發(fā)傳輸時(shí),只要指定起始列地址與突發(fā)長(zhǎng)度,內(nèi)存就會(huì)依次地自動(dòng)對(duì)后面相應(yīng)數(shù)量的存儲(chǔ)單元進(jìn)行讀/寫操作而不再需要控制器連續(xù)地提供列地址(SDRAM與DDR SDRAM的突發(fā)傳輸對(duì)列尋址的操作數(shù)量有所不同,在此不再細(xì)說)。這樣,除了第一筆數(shù)據(jù)的傳輸需要若干個(gè)周期(主要是之前的延遲,一般的是tRCD+CL)外,其后每個(gè)數(shù)據(jù)只需一個(gè)周期的即可獲得。

c6ff6ff8-cf3b-11ec-bce3-dac502259ad0.png

圖7 突發(fā)BL=4

tRP:

由于SDRAM 的尋址具有獨(dú)占性,所以在進(jìn)行完讀寫操作后,如果要對(duì)同一L-Bank 的另一行進(jìn)行尋址,就要將原來有效(工作) 的行關(guān)閉,重新發(fā)送行/列地址。L-Bank 關(guān)閉現(xiàn)有工作行,準(zhǔn)備打開新行的操作就是預(yù)充電(Precharge)。在發(fā)出預(yù)充電命令之后,要經(jīng)過一段時(shí)間才能允許發(fā)送RAS 行有效命令打開新的工作行,這個(gè)間隔被稱為tRP(Precharge command Period,預(yù)充電有效周期)。

c717fe60-cf3b-11ec-bce3-dac502259ad0.png

圖8 tRP=2

SDRAM的工作流程

c7338a4a-cf3b-11ec-bce3-dac502259ad0.png

圖9 SDRAM基本工作流程

啟動(dòng)初始化:

1、同時(shí)啟動(dòng)設(shè)備核心電源VDD和設(shè)備I/O電源VDDQ。聲明并維持CKE引腳為高電平(CKE引腳為Clock Enable,時(shí)鐘使能信號(hào),高電平表示啟動(dòng)內(nèi)部時(shí)鐘信號(hào))。

2、等到VDD和VDDQ穩(wěn)定后并且CKE設(shè)為高電平,應(yīng)用穩(wěn)定時(shí)鐘。

3、等待200μs執(zhí)行空操作命令。

4、precharge:預(yù)充電命令。SDRAM執(zhí)行一條預(yù)充電命令后,要執(zhí)行一條空操作命令,這兩個(gè)操作會(huì)使所有的存儲(chǔ)單元進(jìn)行一次預(yù)充電,從而使所有陣列中的器件處于待機(jī)狀態(tài)。引腳A10(=AP Auto Precharge)可以對(duì)預(yù)充電的模式進(jìn)行選擇,當(dāng)A10=LOW時(shí),給單個(gè)bank pre-charge,bank由BA0和BA1引腳進(jìn)行選擇;當(dāng)A10=HIGH時(shí),給所有的bank進(jìn)行precharge。

5、auto-refresh:自刷新命令。SDRAM要執(zhí)行兩條自刷新命令,每一條刷新命令之后,都需要執(zhí)行一條空操作命令。這些操作會(huì)使 SDRAM內(nèi)部的刷新及計(jì)數(shù)器進(jìn)入正常運(yùn)行狀態(tài),以便為SDRAM模式寄存器編程做好準(zhǔn)備。

6、load mode register:設(shè)置模式寄存器。Mode Register一般被用于定義SDRAM運(yùn)行的模式,寄存器里一般設(shè)置了讀取延遲,burst長(zhǎng)度,CAS,burst類型,操作模式,還有是設(shè)置SDRAM是工作在單個(gè)讀寫操作還是burst操作下。Mode Register通過LOAD MODE REGISTER命令進(jìn)行編程,這組信息將會(huì)一直保存在Mode Register中直到內(nèi)存掉電之后才會(huì)消失。而這個(gè)寄存器的設(shè)置也是通過地址線來設(shè)置的,所以在發(fā)出Load Mode Register命令后要做一個(gè)操作是使得在SDRAM的地址線上的值就是你要設(shè)置的值。注意!這個(gè)操作是8位的操作。Mode Register中的M0-M2是用來定義突發(fā)長(zhǎng)度(burst length)的,M3定義突發(fā)類型(sequential或者interleaved),M4-M6定義CAS延遲,M7和M8定義運(yùn)行模式,M9定義寫入突發(fā)模式(write burst mode),M10和 M11目前保留。Mode Register必須在所有的bank都處于idle狀態(tài)下才能被載入,在所有初始化工組都進(jìn)行完畢之前,控制器必須等待一定的時(shí)間。在初始化過程中發(fā)生了任何非法的操作都可能導(dǎo)致初始化失敗從而導(dǎo)致整個(gè)計(jì)算機(jī)系統(tǒng)不能啟動(dòng)。

設(shè)置完模式寄存器之后就進(jìn)入了正常讀寫操作模式。

c74f35d8-cf3b-11ec-bce3-dac502259ad0.png

圖10SDRAM初始化

SDRAM的基本讀寫操作

SDRAM的基本讀操作需要控制線和地址線相配合地發(fā)出一系列命令來完成。先發(fā)出BANK激活命令(ACTIVE),并鎖存相應(yīng)的BANK地址(BA0、 BA1給出)和行地址(A0~A12給出)。BANK激活命令后必須等待大于tRCD(SDRAM的RAS到CAS的延遲指標(biāo))時(shí)間后,發(fā)出讀命令字。CL(CAS延遲值)個(gè)工作時(shí)鐘后,讀出數(shù)據(jù)依次出現(xiàn)在數(shù)據(jù)總線上。在讀操作的最后,要向SDRAM發(fā)出預(yù)充電(PRECHARGE)命令,以關(guān)閉已經(jīng)激活的頁(yè)。等待tRP時(shí)間(PRECHAREG命令后,相隔tRP時(shí)間,才可再次訪問該行)后,可以開始下一次的讀、寫操作。SDRAM的讀操作只有突發(fā)模式(Burst Mode),突發(fā)長(zhǎng)度為1、2、4、8可選。

c717fe60-cf3b-11ec-bce3-dac502259ad0.png

圖11SDRAM基本讀操作

SDRAM的基本寫操作也需要控制線和地址線相配合地發(fā)出一系列命令來完成。先發(fā)出BANK激活命令(ACTIVE),并鎖存相應(yīng)的BANK地址(BA0、BA1給出)和行地址(A0~A12給出)。BANK激活命令后必須等待大于tRCD的時(shí)間后,發(fā)出寫命令字。寫命令可以立即寫入,需寫入數(shù)據(jù)依次送到DQ(數(shù)據(jù)線)上。在最后一個(gè)數(shù)據(jù)寫入后延遲tWR時(shí)間。發(fā)出預(yù)充電命令,關(guān)閉已經(jīng)激活的頁(yè)。等待tRP時(shí)間后,可以展開下一次操作。寫操作可以有突發(fā)寫和非突發(fā)寫兩種。突發(fā)長(zhǎng)度同讀操作。

SDRAM刷新過程:

由于SDRAM是利用其內(nèi)部的電容來存儲(chǔ)數(shù)據(jù),所以需要不斷進(jìn)行刷新(Refresh)才能保留住數(shù)據(jù)。刷新操作有固定的周期,以行為單位進(jìn)行刷新,依次對(duì)所有行進(jìn)行操作,以保留那些久久沒經(jīng)歷重寫的存儲(chǔ)體中的數(shù)據(jù)。與所有L-Bank預(yù)充電不同的是,這里的行是指所有L-Bank中地址相同的行,而預(yù)充電中各L-Bank中的工作行地址并不是一定是相同的。存儲(chǔ)體中電容的數(shù)據(jù)有效保存期上限是64ms(毫秒,1/1000秒),也就是說每一行刷新的循環(huán)周期是64ms。這樣刷新速度就是:行數(shù)量/64ms。刷新命令一次對(duì)一行有效,發(fā)送間隔也是隨總行數(shù)而變化。

刷新操作分為兩種:自動(dòng)刷新(Auto Refresh,簡(jiǎn)稱AR)與自刷新(Self Refresh,簡(jiǎn)稱SR)。不論是何種刷新方式,都不需要外部提供行地址信息,因?yàn)檫@是一個(gè)內(nèi)部的自動(dòng)操作。

對(duì)于AR,SDRAM內(nèi)部有一個(gè)行地址生成器(也稱刷新計(jì)數(shù)器)用來自動(dòng)的依次生成行地址。由于刷新是針對(duì)一行中的所有存儲(chǔ)體進(jìn)行,所以無需列尋址,或者說CAS在RAS之前有效。所以,AR又稱CBR(CAS Before RAS,列提前于行定位)式刷新。由于刷新涉及到所有L-Bank,因此在刷新過程中,所有L-Bank都停止工作,而每次刷新所占用的時(shí)間為9個(gè)時(shí)鐘周期(PC133標(biāo)準(zhǔn)),之后就可進(jìn)入正常的工作狀態(tài),也就是說在這9個(gè)時(shí)鐘期間內(nèi),所有工作指令只能等待而無法執(zhí)行。64ms之后則再次對(duì)同一行進(jìn)行刷新,如此周而復(fù)始進(jìn)行循環(huán)刷新。顯然,刷新操作肯定會(huì)對(duì)SDRAM的性能造成影響,也是DRAM相對(duì)于SRAM(靜態(tài)內(nèi)存,無需刷新仍能保留數(shù)據(jù))取得成本優(yōu)勢(shì)的同時(shí)所付出的代價(jià)。

SR則主要用于休眠模式低功耗狀態(tài)下的數(shù)據(jù)保存,這方面最著名的應(yīng)用就是STR(Suspend to RAM,休眠掛起于內(nèi)存)。在發(fā)出AR命令時(shí),將CKE置于無效狀態(tài),就進(jìn)入了SR模式,此時(shí)不再依靠系統(tǒng)時(shí)鐘工作,而是根據(jù)內(nèi)部的時(shí)鐘進(jìn)行刷新操作。在 SR期間除了CKE之外的所有外部信號(hào)都是無效的(無需外部提供刷新指令),只有重新使CKE有效才能退出自刷新模式并進(jìn)入正常操作狀態(tài)。

審核編輯 :李倩

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 控制器
    +關(guān)注

    關(guān)注

    112

    文章

    15885

    瀏覽量

    175364
  • SDRAM
    +關(guān)注

    關(guān)注

    7

    文章

    420

    瀏覽量

    55047

原文標(biāo)題:FPGA學(xué)習(xí)-細(xì)說SDRAM控制器

文章出處:【微信號(hào):gh_9d70b445f494,微信公眾號(hào):FPGA設(shè)計(jì)論壇】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    DDR4 SDRAM控制器的主要特點(diǎn)

    DDR4 SDRAM(Double Data Rate Fourth Synchronous Dynamic Random Access Memory)控制器作為現(xiàn)代計(jì)算系統(tǒng)中的重要組成部分,其
    的頭像 發(fā)表于 09-04 12:55 ?209次閱讀

    國(guó)產(chǎn)控制器廠家 整車控制器 以太網(wǎng)控制器 CAN控制器 國(guó)產(chǎn)化替代

    控制器
    長(zhǎng)沙碩博電子科技股份有限公司
    發(fā)布于 :2024年09月03日 09:15:51

    車載智能控制器 工程機(jī)械控制器 CAN總線控制器 碩博電子 #控制器 #can總線 #國(guó)產(chǎn)化替代

    控制器總線
    長(zhǎng)沙碩博電子科技股份有限公司
    發(fā)布于 :2024年08月29日 10:43:57

    PLC控制器的工作原理和運(yùn)作方式詳解

    ? ? PLC控制器指的是可編程邏輯控制器(Programmable Logic Controller,簡(jiǎn)稱PLC),是一種具有微處理機(jī)的數(shù)字電子設(shè)備,用于自動(dòng)化控制的數(shù)字邏輯控制器,
    的頭像 發(fā)表于 08-16 09:02 ?368次閱讀

    移動(dòng)工程機(jī)械控制器,車載智能控制器,碩博電子

    控制器
    長(zhǎng)沙碩博電子科技股份有限公司
    發(fā)布于 :2024年08月08日 10:18:12

    移動(dòng)機(jī)械控制器 車載智能控制器 CAN總線控制器

    控制器機(jī)械
    長(zhǎng)沙碩博電子科技股份有限公司
    發(fā)布于 :2024年06月13日 17:02:51

    PID控制器與PWM控制器的區(qū)別

    在工業(yè)自動(dòng)化和控制系統(tǒng)設(shè)計(jì)中,PID控制器(比例-積分-微分控制器)和PWM控制器(脈沖寬度調(diào)制控制器)是兩種常用的
    的頭像 發(fā)表于 06-05 18:25 ?1778次閱讀

    PID控制器與開關(guān)控制器的區(qū)別

    在工業(yè)自動(dòng)化控制系統(tǒng)中,PID控制器和開關(guān)控制器是兩種常見的控制策略。它們各自具有獨(dú)特的工作原理、應(yīng)用場(chǎng)景和優(yōu)缺點(diǎn)。本文旨在詳細(xì)探討PID控制器
    的頭像 發(fā)表于 06-05 15:50 ?422次閱讀

    全文詳解X-in-1功率系統(tǒng)的控制器

    當(dāng)前的系統(tǒng)架構(gòu)通常涉及3個(gè)獨(dú)立的電子控制單元(ECUs)/系統(tǒng),使用多達(dá)7個(gè)微控制器(MCUs)、數(shù)字信號(hào)處理(DSPs)或現(xiàn)場(chǎng)可編程門陣列(FPGAs)。
    發(fā)表于 04-29 10:54 ?359次閱讀
    全文<b class='flag-5'>詳解</b>X-in-1功率系統(tǒng)的<b class='flag-5'>控制器</b>

    測(cè)功機(jī)控制器測(cè)量?jī)x詳解

    測(cè)功機(jī)控制器是一種用于測(cè)量和控制發(fā)動(dòng)機(jī)、電動(dòng)機(jī)等動(dòng)力設(shè)備輸出功率的設(shè)備。其原理基于對(duì)動(dòng)力設(shè)備輸出的轉(zhuǎn)矩和轉(zhuǎn)速的測(cè)量,進(jìn)而計(jì)算出設(shè)備的實(shí)時(shí)功率,并對(duì)設(shè)備進(jìn)行閉環(huán)控制。 一、測(cè)功機(jī)控制器
    的頭像 發(fā)表于 03-19 13:05 ?335次閱讀
    測(cè)功機(jī)<b class='flag-5'>控制器</b>測(cè)量?jī)x<b class='flag-5'>詳解</b>

    smt32h750擴(kuò)展sdram

    STM32H750是STMicroelectronics推出的一款高性能微控制器,其特點(diǎn)之一是可擴(kuò)展的SDRAM(同步動(dòng)態(tài)隨機(jī)存儲(chǔ))接口。本文將詳細(xì)介紹STM32H750擴(kuò)展SDRAM
    的頭像 發(fā)表于 01-04 14:09 ?1113次閱讀

    基于FPGA的一種SDRAM控制器簡(jiǎn)易化設(shè)計(jì)方法

    電子發(fā)燒友網(wǎng)站提供《基于FPGA的一種SDRAM控制器簡(jiǎn)易化設(shè)計(jì)方法.pdf》資料免費(fèi)下載
    發(fā)表于 10-26 09:08 ?0次下載
    基于FPGA的一種<b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>簡(jiǎn)易化設(shè)計(jì)方法

    AT32 MCU SDRAM應(yīng)用說明

    AT32 MCU SDRAM Application Note本文主要講解AT32 SDRAM 控制器的使用。
    發(fā)表于 10-25 06:37

    #控制器 #閥門# 無線傳輸# 脈沖閥門控制器灌溉控制器

    控制器無線傳輸
    pgz1234
    發(fā)布于 :2023年10月10日 11:03:13

    PIC32系列參考手冊(cè)之DDR SDRAM控制器

    電子發(fā)燒友網(wǎng)站提供《PIC32系列參考手冊(cè)之DDR SDRAM控制器.pdf》資料免費(fèi)下載
    發(fā)表于 09-25 11:39 ?0次下載
    PIC32系列參考手冊(cè)之DDR <b class='flag-5'>SDRAM</b><b class='flag-5'>控制器</b>