99在线精品免费视频九九视-99在线精品视频-99在线精品视频免费观里-99在线精品视频在线观看-99在线免费播放



官方論壇
官方淘寶
官方博客
微信公眾號(hào)
點(diǎn)擊聯(lián)系吳工 點(diǎn)擊聯(lián)系周老師
您的當(dāng)前位置:主頁(yè) > FPGA原創(chuàng) >

SDRAM讀寫時(shí)序介紹(配時(shí)序圖)

發(fā)布時(shí)間:2019-12-27   作者:魚丸粗面 瀏覽量:


本文為明德?lián)P原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處!

SDRAM即同步動(dòng)態(tài)隨機(jī)存儲(chǔ)單元,主要用來(lái)存儲(chǔ)較大容量的數(shù)據(jù)。我們都知道,數(shù)據(jù)在處理的過(guò)程中一般都需要進(jìn)行存儲(chǔ),開(kāi)發(fā)板上常見(jiàn)的存儲(chǔ)方式有FPGA內(nèi)部芯片RAM資源、外部Flash存儲(chǔ)器和外部SDRAM存儲(chǔ)器。除了Flash,其他兩種存儲(chǔ)器都是掉電即丟失數(shù)據(jù),由于Flash掉電能夠保持內(nèi)部數(shù)據(jù),因此Flash主要用來(lái)固化程序或者固化參數(shù)。FPGA片內(nèi)的RAM資源稀少而且珍貴,在大容量存儲(chǔ)場(chǎng)合如圖像數(shù)據(jù)緩存時(shí),只能選擇外部存儲(chǔ)如SDRAM、DDR3等存儲(chǔ)器。在MP801開(kāi)發(fā)板上就含有三塊SDRAM芯片,可以滿足較大數(shù)據(jù)的高速讀取。作為新手進(jìn)階過(guò)程中所面對(duì)的一個(gè)較復(fù)雜的接口,很多人對(duì)SDRAM的工作方式及接口時(shí)序不是很清楚。經(jīng)過(guò)查閱數(shù)據(jù)手冊(cè)與搜集相關(guān)的技術(shù)文檔,我整理了一篇有關(guān)SDRAM接口讀寫時(shí)序的文章,希望能夠幫助不了解的同學(xué)對(duì)SDRAM數(shù)據(jù)讀寫有更進(jìn)一步的認(rèn)識(shí)。

一、SDRAM初始化

SDRAM內(nèi)部有一個(gè)邏輯控制單元,并且有一個(gè)模式寄存器為其提供控制參數(shù)。每次開(kāi)機(jī)時(shí)SDRAM都要先對(duì)這個(gè)控制邏輯核心進(jìn)行初始化,關(guān)鍵階段就在于模式寄存器(MR, Mode Register)的設(shè)置,簡(jiǎn)稱MRS(MR Set)。

SDRAM必須以預(yù)定義的方式啟動(dòng)和初始化。在電源同時(shí)作用于Vdd和Vddq后開(kāi)始初始化SDRAM,此時(shí)的時(shí)鐘穩(wěn)定并且將DQM和CKE信號(hào)拉高。在向SDRAM發(fā)命令之前需要有100us的延時(shí),此時(shí)SDRAM不執(zhí)行任何操作。在100us延時(shí)滿足后,需要對(duì)Bank進(jìn)行預(yù)充電,在此期間所有的Bank處于空閑狀態(tài)。預(yù)充電之后會(huì)有至少兩個(gè)自刷新,完成自刷新便可以對(duì)SDRAM進(jìn)行模式寄存器配置。

1 SDRAM初始化時(shí)序

SDRAM模式寄存器所控制的操作參數(shù):地址線提供不同的0/1信號(hào)來(lái)獲得不同的參數(shù)。在設(shè)置到MR之后,就開(kāi)始了進(jìn)入正常的工作狀態(tài)。

二、激活

初始化完成后,在向SDRAM發(fā)送讀或?qū)懨钪氨仨毚蜷_(kāi)該Bank中的一行,通過(guò)ACTIVE命令來(lái)確定要激活的Bank和行。要想對(duì)一個(gè)L-Bank中的陣列進(jìn)行尋址,首先要確定行(Row),然后確定列。片選信號(hào)與L-Bank選擇信號(hào)與行有效同時(shí)進(jìn)行。

2 行有效時(shí)序

從上圖中可以看出,在片選信號(hào)、Bank地址選定的同時(shí),RAS(Row Address Strobe,行地址選通脈沖)也處于有效狀態(tài),此時(shí)An地址線發(fā)送具體的行地址。行地址位寬為12,共可以指示2^12=4096個(gè)具體的行地址。當(dāng)行地址被激活后,相應(yīng)的Bank也被激活,因此行激活又叫L-Bank激活。

三、列讀寫

行地址確定以后,就要對(duì)列地址進(jìn)行尋址了。地址線仍使用A0-A11,即行地址與列地址共用地址線。當(dāng)列地址選通后,就需要對(duì)SDRAM進(jìn)行讀寫,而SDRAM讀命令還是寫這就WE#信號(hào)來(lái)決定。當(dāng)WE#信號(hào)拉低時(shí),SDRAM接收到的是寫命令;當(dāng)WE#拉高,SDRAM接收讀命令。列尋址信號(hào)與讀寫命令是同時(shí)發(fā)出的。雖然地址線與行尋址共用,但CAS(Column Address Strobe,列地址選通脈沖)信號(hào)則可以區(qū)分開(kāi)行與列尋址的不同,配合A0-A9,A11來(lái)確定具體的定址。

在發(fā)送列讀寫命令時(shí)必須要與行有效命令有一個(gè)時(shí)間間隔,這個(gè)時(shí)間間隔被定義為tRCD,即RAS to CAS Delay(RAS至CAS延遲)。比如tRCD=3,就代表延遲周期為3個(gè)時(shí)鐘周期,即在行有效命令發(fā)出后,經(jīng)過(guò)3個(gè)時(shí)鐘周期的延時(shí),才能發(fā)送列讀寫命令,SDRAM進(jìn)入數(shù)據(jù)讀寫操作。

3 tRCD=3的列讀寫時(shí)序圖

四、讀操作

讀命令從輸入信號(hào)BA0、BA1中選取要進(jìn)行讀數(shù)據(jù)操作的BANK,并在已激活的行中進(jìn)行突發(fā)讀操作。輸入的A0-A7用來(lái)進(jìn)行列尋址。在選定列地址后,就已經(jīng)確定了具體的存儲(chǔ)單元,剩下的事情就是數(shù)據(jù)通過(guò)數(shù)據(jù)I/O通道(DQ)輸出到內(nèi)存總線上了。但是在CAS (列地址選通脈沖)發(fā)出之后,仍要經(jīng)過(guò)一定的時(shí)間才能有數(shù)據(jù)輸出,從CAS與讀取命令發(fā)出到第一個(gè)數(shù)據(jù)輸出的這段時(shí)間,被定義為CL(CAS Latency,CAS潛伏期)。由于CL只在讀取時(shí)出現(xiàn),所以CL又被稱為讀取潛伏期(RL,ReadLatency)。CL的單位與tRCD一樣,為時(shí)鐘周期數(shù),具體耗時(shí)由時(shí)鐘頻率決定。CAS并不是在經(jīng)過(guò)CL 周期之后才送達(dá)存儲(chǔ)單元。實(shí)際上CAS與RAS一樣是瞬間到達(dá)的,但CAS的響應(yīng)時(shí)間要更快一些。下圖展示了CAS=3時(shí)的讀時(shí)序:



4 CAS Latency=3的示意圖

由于存儲(chǔ)體中晶體管存在反應(yīng)時(shí)間,從而造成數(shù)據(jù)不可能與CAS在同一上升沿觸發(fā),因此要延后至少一個(gè)時(shí)鐘周期??紤]到芯片體積較小的因素,存儲(chǔ)單元中的電容容量很小,所以信號(hào)要經(jīng)過(guò)放大來(lái)保證其有效的識(shí)別性,這個(gè)放大/驅(qū)動(dòng)工作由S-AMP負(fù)責(zé),一個(gè)存儲(chǔ)體對(duì)應(yīng)一個(gè)S-AMP通道。但它要有一個(gè)準(zhǔn)備時(shí)間才能保證信號(hào)的發(fā)送強(qiáng)度(事前還要進(jìn)行電壓比較以進(jìn)行邏輯電平的判斷),因此從數(shù)據(jù)I/O總線上有數(shù)據(jù)輸出之前的一個(gè)時(shí)鐘上升沿開(kāi)始,數(shù)據(jù)即已傳向S-AMP,也就是說(shuō)此時(shí)數(shù)據(jù)已經(jīng)被觸發(fā),經(jīng)過(guò)一定的驅(qū)動(dòng)時(shí)間最終傳向數(shù)據(jù)I/O 總線進(jìn)行輸出,這段時(shí)間我們稱之為tAC(Access-Time-from-CLK,時(shí)鐘觸發(fā)后的訪問(wèn)時(shí)間),單位是ns。在突發(fā)讀操作完成后,如果選擇了自動(dòng)預(yù)充電模式,那么該行就會(huì)直接進(jìn)入充電。如果沒(méi)有選擇此模式,那么該行將保持打開(kāi)狀態(tài),供后續(xù)訪問(wèn)。自動(dòng)預(yù)充電模式的選擇與A10的值有關(guān),A10為高時(shí)為自動(dòng)預(yù)充電命令模式。

五、寫操作

數(shù)據(jù)寫入的操作也是在tRCD之后進(jìn)行,但此時(shí)沒(méi)有CL(CL只出現(xiàn)在讀取操作中),行尋址與列尋址的時(shí)序一樣致,只是在列尋址時(shí),WE#為有效狀態(tài)。由于數(shù)據(jù)信號(hào)由控制端發(fā)出,輸入時(shí)芯片無(wú)需做任何調(diào)校,只需直接傳到數(shù)據(jù)輸入寄存器中,然后再由寫入驅(qū)動(dòng)器進(jìn)行對(duì)存儲(chǔ)電容的充電操作,因此數(shù)據(jù)可以與CAS同時(shí)發(fā)送,也就是說(shuō)寫入延遲為0。不過(guò),數(shù)據(jù)并不是即時(shí)地寫入存儲(chǔ)電容,因?yàn)檫x通三極管(就如讀取時(shí)一樣)與電容的充電必須要有一段時(shí)間,所以數(shù)據(jù)的真正寫入需要一定的周期。

六、突發(fā)讀寫

突發(fā)(Burst)是指在同一行中相鄰的存儲(chǔ)單元連續(xù)進(jìn)行數(shù)據(jù)傳輸?shù)姆绞剑B續(xù)傳輸所涉及到存儲(chǔ)單元(列)的數(shù)量就是突發(fā)長(zhǎng)度(Burst Lengths,簡(jiǎn)稱BL)。前文講到的讀/寫操作,都是一次對(duì)一個(gè)存儲(chǔ)單元進(jìn)行尋址,如果要想要連續(xù)的向SDRAM中讀數(shù)據(jù)或者寫數(shù)據(jù),就需要對(duì)當(dāng)前存儲(chǔ)單元的下一個(gè)單元進(jìn)行尋址,也即是需要不停給SDRAM列激活信號(hào)以及/寫命令(行地址不變,所以不用再對(duì)行尋址)。雖然由于讀/寫延遲相同可以讓數(shù)據(jù)的傳輸在I/O端是連續(xù)的,但它占用了大量的內(nèi)存控制資源,在數(shù)據(jù)進(jìn)行連續(xù)傳輸時(shí)無(wú)法輸入新的命令,效率很低。為此,人們開(kāi)發(fā)了突發(fā)傳輸技術(shù),只要指定起始列地址與突發(fā)長(zhǎng)度,SDRAM就會(huì)不再需要控制器連續(xù)地提供列地址,依次地自動(dòng)對(duì)后面相應(yīng)數(shù)量的存儲(chǔ)單元進(jìn)行讀/寫操作。這樣,在突發(fā)模式讀寫中,除了第一個(gè)數(shù)據(jù)的傳輸需要若干個(gè)周期(主要是之前的延遲,一般的是tRCD+CL),其后每個(gè)數(shù)據(jù)只需一個(gè)周期的即可獲得。至于突發(fā)長(zhǎng)度BL的數(shù)值,也是不能隨便設(shè)或在數(shù)據(jù)進(jìn)行傳輸前臨時(shí)決定,而是在上文講到的SDRAM初始化過(guò)程中模式寄存器配置階段就要對(duì)突發(fā)長(zhǎng)度進(jìn)行設(shè)置。目前可用的選項(xiàng)是1、2、4、8、全頁(yè)(FullPage),常見(jiàn)的突發(fā)長(zhǎng)度設(shè)定是BL=4、BL=8或者全頁(yè)突發(fā)模式。

5 突發(fā)讀時(shí)序圖

七、預(yù)充電

在進(jìn)行完讀或?qū)懖僮骱?,接下?lái)如果要對(duì)同一個(gè)L-Bank的另一行進(jìn)行尋址,就要將原來(lái)有效的行關(guān)閉,重新發(fā)送行/列地址,這是由于SDRAM的尋址具有獨(dú)占性造成的。L-Bank關(guān)閉現(xiàn)有工作行,準(zhǔn)備打開(kāi)新行的操作就是預(yù)充電(Precharge)。實(shí)際上,預(yù)充電就是一種對(duì)工作行中所有存儲(chǔ)體進(jìn)行數(shù)據(jù)重寫,并對(duì)行地址進(jìn)行復(fù)位的操作。

地址線A10控制著是否進(jìn)行在讀或?qū)懖僮?/span>之后當(dāng)前L-Bank自動(dòng)進(jìn)行預(yù)充電。在單獨(dú)的預(yù)充電命令中,A10控制著是對(duì)指定的L-Bank還是所有的L-Bank(當(dāng)有多個(gè)L-Bank處于有效/活動(dòng)狀態(tài)時(shí))進(jìn)行預(yù)充電,前者需要提供L-Bank的地址,后者只需將A10信號(hào)置于高電平。在發(fā)出預(yù)充電命令之后,要經(jīng)過(guò)一段時(shí)間才能允許發(fā)送RAS行有效命令打開(kāi)新的工作行,這個(gè)間隔被稱為tRP(Precharge command Period,預(yù)充電有效周期),單位是時(shí)鐘周期數(shù),具體值視時(shí)鐘頻率而定。在實(shí)際的設(shè)計(jì)中,我們通常設(shè)計(jì)讓芯片每次讀寫操作后,自動(dòng)進(jìn)行預(yù)充電。這樣設(shè)計(jì)時(shí)就不需要再單獨(dú)考慮預(yù)充電的影響,只需要等待幾個(gè)時(shí)間周期即可。

6 讀數(shù)據(jù)預(yù)充電時(shí)序

上圖是突發(fā)長(zhǎng)度設(shè)置為4、列選通潛伏期設(shè)置為2時(shí),設(shè)置單獨(dú)預(yù)充電命令下的時(shí)序圖??梢钥闯觯?dāng)行激活后,需要兩個(gè)時(shí)鐘周期的等待時(shí)間(tRCD)接收讀命令,SDRAM在接收讀命令時(shí)A10拉低,即此時(shí)不允許預(yù)充電,在SDRAM接收到預(yù)充電命令的時(shí)候才會(huì)進(jìn)入預(yù)充電狀態(tài)。當(dāng)接收到讀命令后,經(jīng)過(guò)兩個(gè)周期的列地址選通(CAS)潛伏期從DQ數(shù)據(jù)線連續(xù)讀出4個(gè)數(shù)據(jù)。在預(yù)充電命令下,地址線A10拉高,SDRAM中所有L-Bank進(jìn)入預(yù)充電狀態(tài),從接收到行激活命令到接收預(yù)充電命令之間的時(shí)間間隔就是列選通脈沖拉高的周期數(shù),從接收一個(gè)行激活命令到接收下一個(gè)行激活命令之間的間隔叫做tRC。

  •   
  •   
  •   
  •  
  • FPGA教育領(lǐng)域第一品牌
  • 咨詢熱線:020-39002701
  • 技術(shù)交流Q群:544453837
主站蜘蛛池模板: 国产在线短视频 | 日韩精品午夜视频一区二区三区 | 91香蕉视频网 | 精品国产1000部91麻豆 | 国产精品视频自拍 | 在浴室边摸边吃奶边做视频 | 特a级毛片| 一级毛片在线全部免费播放 | 欧美xxxxxbbbbb毛片 | 免费一区二区 | 久久久久久午夜精品 | 久草在线免费福利资源站 | 在线免费国产视频 | 久久免费福利 | 99久久精品国产自免费 | 国产精品福利视频一区二区三区 | 美国特级a毛片免费网站 | xxx大片免费视频 | 欧美成人777| 欧美性野久久久久久久久 | 青青在线精品视频 | 久久www免费人成_看 | 香蕉爱视频 | 欧洲成人免费高清视频 | 高清国产天干天干天干不卡顿 | 国产精品久久久久久免费播放 | 伊人精品国产 | 欧美人在线 | 一级黄色毛片播放 | 成人毛片100部免费看 | 成人黄 在线播放 | 日韩精品久久久久久久电影 | 91视频会员 | 国产伦理播放一区二区 | 在线亚洲欧国产精品专区 | 成人欧美精品一区二区不卡 | 韩国精品一区二区久久 | 最新大黄网站免费 | 俄罗斯女人与公拘i交酡 | 中文字幕一级毛片视频 | 黑人巨大白妞出浆 |