SDR SDRAM(理論篇)
由于SDRAM本身就是一個(gè)比較復(fù)雜的東西,之前小墨在學(xué)這方面東西的時(shí)候感覺很是吃力,于是那時(shí)候便暫時(shí)放下了,知道年后這段時(shí)間,小墨又重新拾起這個(gè)知識點(diǎn),想要一口氣把它調(diào)通了,再往下看其他的東西。學(xué)SDRAM,理論要懂,代碼設(shè)計(jì),仿真調(diào)試,時(shí)序分析,時(shí)序約束,都很重要。之前由于只是把代碼寫好了,對時(shí)序分析和時(shí)序約束這方面的知識還只是空白,所以怎么調(diào)都調(diào)不通。開學(xué)以來,小墨仔仔細(xì)細(xì)的研究了一下時(shí)序,也看了不少的資料,對時(shí)序也算是有所見解,摸透了倒是不敢說,至少是懂了那些公式的由來,輸入輸出延時(shí)的計(jì)算,相位偏移的計(jì)算,以及源同步時(shí)序模型的理解等等,也做了不少的筆記,親手將其數(shù)值計(jì)算過,然后再將其添加到我的SDRAM工程之中,經(jīng)過好幾天的調(diào)試,穩(wěn)定不穩(wěn)定倒是不敢說,因?yàn)橥粋€(gè)程序換到不同的開發(fā)板上,如果不經(jīng)過重新的時(shí)序約束,是很難跑起來的,小墨這幾天就親身經(jīng)歷過,同一段代碼在兩塊板子上不能同時(shí)跑,要換約束參數(shù),當(dāng)然這是受PCB板的布局,SDRAM和FPGA的型號的影響,所以這段代碼的穩(wěn)定性要具體情況具體分析。
代碼的編寫還是參考了啟蒙老師特權(quán)老師的代碼,感覺這段代碼寫的很經(jīng)典,借助特權(quán)老師推薦的《高手進(jìn)階,終極內(nèi)存技術(shù)》這一篇文章,可以很好的理解SDRAM的工作原理,我是這樣學(xué)習(xí)這段代碼的,首先將《高手進(jìn)階,終極內(nèi)存技術(shù)》看一遍,當(dāng)然第一遍不好看懂,然后結(jié)合代碼再一遍一遍的去看工作原理,慢慢的就會明白特權(quán)老師為什么要這么處理了,然后再自己親手將這段代碼敲出來,遇到不懂得可以再去參考源代碼,這樣從頭到尾敲完之后,工作原理這一塊大體上就算是熟悉了,然后是仿真調(diào)試,這是一個(gè)漫長的過程,要有耐心,再然后就是學(xué)習(xí)時(shí)序,親手將約束值算出來,再根據(jù)時(shí)序報(bào)告進(jìn)行微調(diào),直到有一天看到自己從頭到尾做出來的工程,能后順利的跑起來,心中便會產(chǎn)生極大的成就感,那么恭喜你,你在FPGA設(shè)計(jì)方面可以算是一個(gè)小高手了(和剛開始學(xué)的人相比)。
接下來的文章我打算這么安排,第一篇,也就是這一篇說一下理論,即SDRAM的工作原理和一些參數(shù)的含義,第二篇文章我要給SDRAM的設(shè)計(jì)做一個(gè)架構(gòu),就是用狀態(tài)機(jī)的方式,描述每一個(gè)過程,給代碼編寫做一個(gè)清晰的思路,同時(shí)解讀一下特權(quán)老師的代碼和其中比較難懂的設(shè)計(jì)方法,最后一篇文章我們從靜態(tài)時(shí)序分析寫起,一直寫到SDRAM的收斂,其中包括建立保持時(shí)間的余量問題,輸入輸出的延時(shí)的計(jì)算,SDRAM時(shí)鐘相位的計(jì)算,以及timequest的使用,時(shí)序報(bào)告的查看方法等,大概在一兩周的時(shí)間寫完,也希望大家多多支持,你們的支持,更是我前進(jìn)的最好動力!
一、從結(jié)構(gòu)說起
先來說一下SDRAM的結(jié)構(gòu)吧。當(dāng)然沒有人家講的那么專業(yè),只說說我的理解。
1、P-bank
SDRAM,也即我們的內(nèi)存,我們的電腦,手機(jī)等設(shè)備都離不開我們的內(nèi)存。一個(gè)設(shè)備運(yùn)行速度的快慢,內(nèi)存起到關(guān)鍵性的作用,就像我們的電腦,開機(jī)之后一般都是把一些應(yīng)用程序加載到內(nèi)存里運(yùn)行,因?yàn)镽AM的讀寫速度要遠(yuǎn)遠(yuǎn)大于ROM,而我們的SDRAM,即同步動態(tài)隨機(jī)存儲器,就是通過不斷地刷新,充電,防止電容電量的丟失,從而保留住數(shù)據(jù)。與CPU交換數(shù)據(jù),根據(jù)CPU位寬的不同,要相應(yīng)選擇不同的SDRAM芯片,SDRAM芯片的位寬不等,我們用的這片SDRAM是16位位寬,假設(shè)我們的CPU是64位的,那么我們要想與之匹配,就必須用到4片這樣的SDRAM,才能構(gòu)成64位的位寬,那么由這4片SDRAM 構(gòu)成的芯片集合,我們稱之為物理bank,即P-bank,CPU通過控制SDRAM的片選信號,控制相應(yīng)的芯片
2、L-bank
再往芯片里面看,每一片SDRAM里面,有幾個(gè)存儲陣列,我們開發(fā)板上的都是4個(gè)存儲陣列,這樣的存儲陣列,我們稱它為邏輯bank,即L-bank。每個(gè)存儲陣列里面有2^12行,2^8列,我們可以通過控制SDRAM的地址線,來選中相應(yīng)的行與列,進(jìn)而確定一個(gè)存儲單元,每個(gè)存儲單元里面就是我們的數(shù)據(jù)了,我們的芯片是16位的,所以我們的存儲單元也就是16位的。
這樣一來,CPU通過片選信號選中一片SDRAM,然后訪問某一個(gè)L-bank,通過行列地址確定某一個(gè)存儲單元,將存儲單元里的數(shù)據(jù)讀出來送到CPU。這樣看來,芯片的位寬就是我們的存儲單元的位寬,若是一同選中所有SDRAM芯片,那么輸出的也就是16X4=64位的CPU位寬了。
3、芯片容量 與 內(nèi)存容量
我們來算一下SDRAM的芯片容量,一片SDRAM芯片假設(shè)有4個(gè)L-bank,2^12行,2^8列,那么它就含有4 x 2^12 x 2^8個(gè)存儲單元,又因?yàn)槊總€(gè)存儲單元里面有16位數(shù)據(jù),因此,我們的芯片容量為 4 x 2^12 x 2^8 x 16 = 64Mbit = 16MB,如果是一個(gè)P-bank里面是4片SDRAM的話,那么我們的內(nèi)存容量就是4 x 16 = 64MB
我們再算一下,假如我們的SDRAM的芯片位寬是8位的但是芯片容量不變,即芯片位寬是8位,芯片容量是16MB,那么,要想與64位的CPU匹配,我們需要8片SDRAM,那么我們的內(nèi)存容量就是8 x 16 = 128MB,由此可見,在芯片容量相同的情況下,位寬越小,內(nèi)存容量越大。這就說明了,為什么我們的臺式電腦要用位寬小的芯片,因?yàn)榕_式電腦空間大,位寬越小,用的芯片越多,內(nèi)存也就越大,相反,我們的手機(jī)就必須用大位寬的芯片,從而節(jié)約空間,但是付出了內(nèi)存容量小的代價(jià),這也說明了為什么我們的手機(jī)或者筆記本電腦不如臺式機(jī)運(yùn)行速度快的原因,在內(nèi)存方面差了一大截
下面是我用畫圖做的一個(gè)框架,幫助大家理解
二、工作原理其實(shí)不難
這部分我們就按照代碼的順序開始講起
1、初始化
初始化開始,SDRAM需要經(jīng)過一個(gè)200us的穩(wěn)定延時(shí),這部分在代碼部分直接做一個(gè)計(jì)數(shù)器就好了,下面來講一下預(yù)充電
預(yù)充電
官方解釋是 L-Bank關(guān)閉現(xiàn)有工作行,準(zhǔn)備打開新行的操作就是預(yù)充電。也就是說,我們發(fā)送了一個(gè)行地址,有發(fā)送了一個(gè)列地址,找到了相應(yīng)的存儲單元之后,如果我們想訪問另一個(gè)地址,而這個(gè)地址不在這一行內(nèi),那么我們就需要先將這一工作行關(guān)閉,這個(gè)過程就是預(yù)充電,然而剛開始我們還沒有發(fā)送行列地址,只是先做一下初始化,以后等我們要發(fā)送行列地址的時(shí)候,為了手動設(shè)置預(yù)充電麻煩,我們可以告訴SDRAM在每次尋址完之后自動進(jìn)行預(yù)充電即可
自刷新
我們之所以叫DRAM,就是因?yàn)樗莿討B(tài)的,就是每隔一段時(shí)間進(jìn)行一次刷新,確保那些沒有被讀寫過的數(shù)據(jù)不會以為時(shí)間長導(dǎo)致電容漏電,從而導(dǎo)致數(shù)據(jù)丟失,因此,每隔一段時(shí)間要對存儲單元進(jìn)行一次自刷新,由于存儲體中電容的數(shù)據(jù)有效保存期上限是64ms,因此,我們需要每64ms對所有的存儲體進(jìn)行一次刷新,又因?yàn)槲覀冇?^12= 4096行,那么我們來算一下,每刷新一行所要的時(shí)間是64ms/4096 = 15us 也就是說,我們每15us需要發(fā)送一個(gè)自刷新命令
模式寄存器配置
模式寄存器的配置主要還是用于后面的讀寫操作的,我們先看上面,是地址總線,首先大家不要被他迷惑,我們的地址總線是12位的,行列共用,他前面的兩位bank地址不屬于地址總線范圍,只是在配置的時(shí)候需要用到那兩位,所以會將其加進(jìn)來,下面來一一解釋。
關(guān)于操作模式 : 操作模式可以分為突發(fā)讀,突發(fā)寫,單一寫等,突發(fā)讀就是我們在發(fā)送了行列地址后,找到了我們要的存儲單元地址,對它進(jìn)行讀,如果設(shè)置了突發(fā)讀的話,那么我們在讀取第一個(gè)數(shù)據(jù)之后,如果想讀取這個(gè)存儲單元后面的一個(gè)存儲單元的數(shù)據(jù)的話,就不必再次發(fā)送行列地址了,他會自動的讀取接下來的數(shù)據(jù),至于讀幾個(gè)存儲單元,就涉及到突發(fā)長度,一般是2,4,8,全頁的方式,全頁就是將這一行上的數(shù)據(jù)一連串的全部讀出或?qū)懭?,同時(shí)還涉及到突發(fā)傳輸方式,分為順序和交錯(cuò)傳輸,順序傳輸就是依次讀后面的幾個(gè)存儲單元,交錯(cuò)傳輸就是隔一個(gè)讀一個(gè)。
關(guān)于潛伏期 : 潛伏期就是我們發(fā)送了行列地址后,數(shù)據(jù)并不是馬上到達(dá)數(shù)據(jù)總線,而是要經(jīng)過一段潛伏期,一般為2到3個(gè)時(shí)鐘周期,注意潛伏期不是延遲,潛伏期是發(fā)送列地址后數(shù)據(jù)已經(jīng)有效,只是還沒有達(dá)到一定的高度,或者說是信號不夠強(qiáng),要經(jīng)過一定的放大才能輸出,所以說潛伏期不是延遲
2、工作狀態(tài)
初始化結(jié)束以后,SDRAM就可以正常工作了,這個(gè)時(shí)候,如果收到讀寫信號,并且收到地址,那么SDRAM就會進(jìn)行相應(yīng)的尋址,并將數(shù)據(jù)作相應(yīng)處理。
讀狀態(tài)
上面說了,SDRAM的地址是行列共用,也就是說行地址和列地址共用那條12位的地址線,假設(shè)某個(gè)時(shí)間我們要讀一個(gè)數(shù)據(jù),那么就先要發(fā)送12位地址線,就是行地址,當(dāng)然也要接著發(fā)送的是P-bank的地址,但是這個(gè)時(shí)候還沒有發(fā)送讀信號,讀信號要和列地址一起發(fā)送,我們稱這個(gè)狀態(tài)為行有效(RAS)
發(fā)送完行地址之后,就要發(fā)送列地址,但是不能馬上發(fā)送,要經(jīng)過一定的延時(shí),這個(gè)延時(shí)我們叫做行有效到列有效的延時(shí),即Trcd
經(jīng)過Trcd之后,我們需要發(fā)送列地址,即列有效(CAS),這樣我們就確定了我們邏輯單元所在的位置了,在發(fā)送列地址的同時(shí),給SDRAM發(fā)送讀命令。有人會問,既然地址線是行列共用,那么12位的地址線,列地址才占8位,其他的怎么用?沒錯(cuò),列地址是只占了8位,還有第8到11位地址線沒用,這個(gè)時(shí)候我們就將其補(bǔ)零就好了,湊夠12位地址發(fā)送給SDRAM,但是我們有一位地址很重要就是A10位,A10位置1的話,那么我們每次進(jìn)行完一次讀寫,SDRAM就會自動預(yù)充電,因此,我們一般把地址總線的第8到11位賦值0100,然后與列地址合并,再發(fā)給SDRAM。
發(fā)送完列地址后,也就是讀命令后,就要進(jìn)入潛伏期Tcl,剛剛說了,數(shù)據(jù)在潛伏期里,要經(jīng)過一定的放大驅(qū)動,達(dá)到一定的高度之后才會被輸出,這個(gè)放大的過程是在一個(gè)叫做S-AMP的通道里完成的,每一個(gè)存儲體都對應(yīng)一個(gè)S-AMP通道 ,因此從數(shù)據(jù)I/O總線上有數(shù)據(jù)輸出之前的一個(gè)時(shí)鐘上升沿開始,數(shù)據(jù)即已傳向S-AMP,也就是說此時(shí)數(shù)據(jù)已經(jīng)被觸發(fā),經(jīng)過一定的驅(qū)動時(shí)間最終傳向數(shù)據(jù)總線進(jìn)行輸出,這段時(shí)間稱之為tAC。在后面的時(shí)序分析中,我們會用到這個(gè)參數(shù),即數(shù)據(jù)在SDRAM芯片中的傳輸時(shí)間Tco,數(shù)據(jù)輸出到SDRAM數(shù)據(jù)總線上以后會有一個(gè)保持時(shí)間Toh,也是我們以后做時(shí)序分析要用到的參數(shù),這兩個(gè)參數(shù)告訴我們,數(shù)據(jù)從有效前的一個(gè)時(shí)鐘周期開始算起,最大要經(jīng)過Tac時(shí)間才會輸出到數(shù)據(jù)總線,最慢需要Toh時(shí)間因此,在后面的時(shí)序分析中我們要計(jì)算,數(shù)據(jù)在SDRAM芯片的傳輸時(shí)間 Toh Tco Tac
寫狀態(tài)
寫狀態(tài)跟讀狀態(tài)有一點(diǎn)不同,就是寫狀態(tài)沒有潛伏期,即行有效之后,等待Trcd后發(fā)送寫命令和列地址,數(shù)據(jù)直接會寫到數(shù)據(jù)總線上,也就是說,寫數(shù)據(jù)是零延時(shí)的,但是,即使寫數(shù)據(jù)是零延時(shí)的,但是數(shù)據(jù)要進(jìn)入SDRAM的存儲體還是需要時(shí)間的,這個(gè)時(shí)間叫做寫回延時(shí)Twr,試想,如果SDRAM工作在寫回延時(shí)狀態(tài),突然來了一個(gè)預(yù)充電,那么數(shù)據(jù)是不是就不能正確的被寫入了,因此,寫回延時(shí)不能和預(yù)充電同時(shí)進(jìn)行。
三、參數(shù)總結(jié)
好了,說了這么多,是不是感覺SDRAM的操作并不難,那么我們就來總結(jié)一下之前出現(xiàn)的一些參數(shù)吧,這些參數(shù)的消化,能夠幫我們更好的理解SDRAM的工作原理
1、RAS : 行有效
2、Trcd : 行地址到列地址的延時(shí)時(shí)間,單位是周期數(shù),一般為2到3個(gè)時(shí)鐘周期
3、CAS : 列有效,同時(shí)發(fā)送讀寫命令
4、 Tcl : 潛伏期,發(fā)生在讀狀態(tài),數(shù)據(jù)有效到出現(xiàn)在數(shù)據(jù)總線上的延時(shí),單位為周期數(shù)
5、 Tac : 數(shù)據(jù)從存儲單元里出來之后,已經(jīng)進(jìn)入S-AMP通道進(jìn)行驅(qū)動與放大,到出現(xiàn)在數(shù)據(jù)總線上的時(shí)間
6、 Toh : 數(shù)據(jù)出現(xiàn)在數(shù)據(jù)總線上,并保持一段時(shí)間
7、 Trp : 在發(fā)出預(yù)充電命令之后,要經(jīng)過一段時(shí)間才能允許發(fā)送RAS行有效命令打開新的工作行
8 、Twr : 寫狀態(tài)時(shí)的寫回延時(shí),寫入的數(shù)據(jù)進(jìn)入SDRAM存儲單元的時(shí)間
那么理論部分就到這里吧,下一篇文章將會寫一下整個(gè)操作SDRAM的架構(gòu)圖和代碼解析,寫了有好幾個(gè)小時(shí),謝謝大家~
您可能也感興趣:
今日熱點(diǎn)
為您推薦
8家險(xiǎn)企股權(quán)被掛牌轉(zhuǎn)讓,為何險(xiǎn)企股權(quán)不再被追捧?
深圳最低工資標(biāo)準(zhǔn)調(diào)整為2360元/月 失業(yè)保險(xiǎn)金為2124元/月
遼寧實(shí)施失業(yè)保險(xiǎn)省級統(tǒng)籌 對缺口核定等作出詳細(xì)規(guī)定
更多
- 蕪湖釋放創(chuàng)新“N次方”效應(yīng) 數(shù)字賦能驅(qū)動產(chǎn)業(yè)升級
- 重慶:激發(fā)人才創(chuàng)新活力,到2025年創(chuàng)新要素活躍度顯著增強(qiáng)
- 西寧加快知識產(chǎn)權(quán)強(qiáng)市建設(shè)步伐 去年兌現(xiàn)資助資金200萬元
- 無錫錫山區(qū)全面啟動實(shí)施“雙招雙引” 引進(jìn)高端創(chuàng)新資源
- 重慶巴南區(qū)落實(shí)創(chuàng)新驅(qū)動發(fā)展戰(zhàn)略 以科技創(chuàng)新引領(lǐng)五大產(chǎn)業(yè)集...
- 朝陽北票經(jīng)開區(qū)加快推進(jìn)數(shù)字經(jīng)濟(jì)發(fā)展 推動體制機(jī)制創(chuàng)新
- 湖北省先進(jìn)低碳冶金產(chǎn)業(yè)技術(shù)創(chuàng)新聯(lián)合體組建 打造五千億級產(chǎn)...
- 重慶渝北將優(yōu)化創(chuàng)新生態(tài)環(huán)境 培育打造一批引領(lǐng)型的科創(chuàng)載體
更多
- 山東抓投資抓項(xiàng)目 新興領(lǐng)域投資規(guī)模持續(xù)擴(kuò)大
- 2021年各地引資成績單亮眼 迸發(fā)出巨大經(jīng)濟(jì)活力
- 多地重大項(xiàng)目投資規(guī)模力度明顯加大 新基建項(xiàng)目成重要發(fā)力點(diǎn)
- 年內(nèi)湖北新開工城建項(xiàng)目160個(gè) 集中在道路交通等方面
- 去年我國對外投資合作平穩(wěn)發(fā)展 境外經(jīng)貿(mào)合作區(qū)建設(shè)成效顯著
- 荊州集中簽約39個(gè)項(xiàng)目 重點(diǎn)涵蓋高端裝備制造、電子信息等領(lǐng)域
- 廣東打出一系列穩(wěn)外貿(mào)政策“組合拳” 外貿(mào)逆勢創(chuàng)新高
- 蘭州新區(qū)再獲“最具投資吸引力新區(qū)” 去年新增市場主體5427戶
排行
最近更新
- 普通癥狀還是心梗預(yù)警?一眼識破
- 揭穿AI相面騙局 警惕迷信的高科技偽裝
- 蕪湖釋放創(chuàng)新“N次方”效應(yīng) 數(shù)字賦能驅(qū)動產(chǎn)業(yè)升級
- 去年快遞服務(wù)全程時(shí)限水平有較大提升 干線運(yùn)輸時(shí)限縮短
- 住建部:推動長江經(jīng)濟(jì)帶高質(zhì)量發(fā)展,打造區(qū)域協(xié)調(diào)發(fā)展新樣板
- 江蘇發(fā)布重大項(xiàng)目清單 增資擴(kuò)產(chǎn)項(xiàng)目明顯增多
- 山東抓投資抓項(xiàng)目 新興領(lǐng)域投資規(guī)模持續(xù)擴(kuò)大
- Gucci在2月將投放 10 個(gè)“SuperGucci”NFT
- 美國銀行:美國CBDC將保持美元作為世界儲備貨幣的地位
- 美股三大指數(shù)尾盤集體轉(zhuǎn)漲
- 光伏發(fā)電概念股有哪些?光伏發(fā)電概念龍頭股一覽
- The new iPad屏幕對比評測
- 電源接通延時(shí)器
- 汽車電子穩(wěn)定系統(tǒng)(ESP)詳解
- 聯(lián)想B520一體機(jī)拆解
- 焦炭相關(guān)股票有哪些?焦炭概念股票龍頭一覽
- 增強(qiáng)信號 3G無線上網(wǎng)卡改裝拆解全攻略
- 盤點(diǎn)全球五大智能手機(jī)生產(chǎn)商 華為聯(lián)想入圍
- 三星新平板 Galaxy Note 10.1全拆解
- 智能監(jiān)控防盜報(bào)警系統(tǒng)
- 格力電器未來三年股東回報(bào)規(guī)劃:每年累計(jì)分紅不低于當(dāng)年凈利潤50%
- 消息稱京東科技計(jì)劃2022年在港IPO,募資10億至20億美元
- 恒大集團(tuán):呼吁境外債權(quán)人不采取任何激進(jìn)的法律行動
- 海航董事長劉璐因個(gè)人原因辭職,在海航已近28年
- 青青稞酒預(yù)計(jì)2021年?duì)I收增長30%-40%,四季度凈虧損超1500萬
- 2022年在港上市募資10億美元?京東科技:不予置評
- 財(cái)政部修訂出臺《財(cái)政行政處罰聽證實(shí)施辦法》
- 賣房子需要交什么稅?賣房子必須攜帶哪些證件?
- 醫(yī)??ǖ氖褂梅秶心男??補(bǔ)牙可以使用醫(yī)保報(bào)銷嗎?
- 小產(chǎn)權(quán)房能過戶嗎?購買小產(chǎn)權(quán)房有什么風(fēng)險(xiǎn)?
今日要聞
- 蕪湖釋放創(chuàng)新“N次方”效應(yīng) 數(shù)字賦能驅(qū)動產(chǎn)業(yè)升級
- 去年快遞服務(wù)全程時(shí)限水平有較大提升 干線運(yùn)輸時(shí)限縮短
- 住建部:推動長江經(jīng)濟(jì)帶高質(zhì)量發(fā)展,打造區(qū)域協(xié)調(diào)發(fā)展新樣板
- 山東抓投資抓項(xiàng)目 新興領(lǐng)域投資規(guī)模持續(xù)擴(kuò)大
- Gucci在2月將投放 10 個(gè)“SuperGucci”NFT
- 美國銀行:美國CBDC將保持美元作為世界儲備貨幣的地位
- 美股三大指數(shù)尾盤集體轉(zhuǎn)漲
- The new iPad屏幕對比評測
- 電源接通延時(shí)器
- 汽車電子穩(wěn)定系統(tǒng)(ESP)詳解