問(wèn):如何操作SDRAM的自刷新命令而不影響正常讀寫(xiě)操作?
眾所周知,SDRAM從開(kāi)始工作伊始,一直伴隨著64ms刷新一遍的最基本規(guī)定(假設(shè)該SDRAM有4096行,那么必須大約15us的時(shí)間就要發(fā)出一次自刷新命令),這是為了保持SDRAM內(nèi)數(shù)據(jù)能夠在上電以后一直保持的原因,具體原因就不多解釋了,我們還是以實(shí)際操作為主。
正常情況下,我們要不斷地對(duì)SDRAM進(jìn)行讀或者寫(xiě)操作,這樣才能實(shí)現(xiàn)fpga和SDRAM之間的數(shù)據(jù)交流傳遞。假如我們?cè)谶M(jìn)行寫(xiě)操作時(shí),15us的時(shí)間計(jì)時(shí)已經(jīng)到了,發(fā)出了自刷新使能信號(hào),這時(shí)候難道我們要打斷寫(xiě)操作嗎?顯然這是不文明的野蠻的,理想的操作就是等待本次的寫(xiě)操作完成,SDRAM的內(nèi)部狀態(tài)機(jī)進(jìn)入到了休閑狀態(tài),這時(shí)候才正式發(fā)出自刷新命令。
可能大家會(huì)認(rèn)為這樣實(shí)際經(jīng)過(guò)的時(shí)間是超過(guò)15us的,假如4096次每次都是超過(guò)15us的話(huà),那么總時(shí)間豈不是超過(guò)64ms了,現(xiàn)在想起來(lái)感覺(jué)當(dāng)初自己的問(wèn)題真傻。因?yàn)閷?shí)際上每發(fā)出一次刷新命令的周期是64ms/4096=15.625us,當(dāng)初設(shè)置15us為周期就已經(jīng)考慮到了這個(gè)余量,而一個(gè)寫(xiě)周期(假如突發(fā)長(zhǎng)度=4)本身的時(shí)間遠(yuǎn)遠(yuǎn)小于0.625us,所以這樣設(shè)計(jì)是合理的。
但是,如果突發(fā)寫(xiě)長(zhǎng)度是全頁(yè)的話(huà),要考慮SDRAM的工作頻率、突發(fā)長(zhǎng)度重新計(jì)算這個(gè)寫(xiě)周期時(shí)間,那么設(shè)置15us的計(jì)時(shí)時(shí)間是有問(wèn)題的,應(yīng)該調(diào)的更小一點(diǎn)。
總結(jié):自刷新要保證64ms內(nèi)一遍,合理設(shè)置自刷新周期計(jì)時(shí)器,考慮讀寫(xiě)一個(gè)周期所花的時(shí)間,使得在發(fā)出自刷新信號(hào)的時(shí)候,等待本次正在進(jìn)行的讀寫(xiě)周期完成后,再寫(xiě)入自刷新命令。
以上內(nèi)容是我如何對(duì)自刷新操作和讀寫(xiě)操作進(jìn)行合理安排的一種解決方案,后來(lái)細(xì)想其實(shí)可以更加的合理,微調(diào)后的方案::15us的定時(shí)計(jì)數(shù)器不斷地進(jìn)行,沒(méi)計(jì)到15us發(fā)出刷新請(qǐng)求信號(hào),同時(shí)計(jì)數(shù)器重新計(jì)數(shù)(上個(gè)方案是等到正式發(fā)出刷新命令以后才開(kāi)始重新計(jì)數(shù)),本次微調(diào)的技巧應(yīng)該更加理想些(因?yàn)樽x寫(xiě)周期即使是全頁(yè)的,也就是10us以?xún)?nèi)完全在15us的范圍以?xún)?nèi))。
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。
舉報(bào)投訴
相關(guān)推薦
。 設(shè)置完模式寄存器后就進(jìn)入正常操作模式。 實(shí)際上具體的操作要跟選用的處理器的SDRAM控制模塊相結(jié)合來(lái)設(shè)置。對(duì)于這些初始化命令比較直觀的理
發(fā)表于 10-24 10:38
對(duì)于SDRAM刷新操作, 手冊(cè)是寫(xiě)64ms/8192行, 是要求每 64ms/8192 內(nèi)產(chǎn)生一個(gè)刷新請(qǐng)求嗎, 這樣效率會(huì)不會(huì)有點(diǎn)低啊?還是在64ms內(nèi)只產(chǎn)生一次
發(fā)表于 12-16 19:00
大家好,我使用的DSP是tms320c6701,在操作時(shí),配置emif中的SDRAM控制器后,在SDRAM不翻頁(yè)的情況下,讀寫(xiě)操作沒(méi)有問(wèn)題,
發(fā)表于 05-16 08:06
的數(shù)據(jù)就出來(lái)了。大家也不要忘了,在給相關(guān)命令的時(shí)候,千萬(wàn)不要忘記其他信號(hào)線(xiàn)上的信號(hào)。SDRAM的自動(dòng)刷新操作Kevin已經(jīng)在前面多次提到了SDRAM
發(fā)表于 01-16 18:06
進(jìn)行讀寫(xiě)控制操作。自刷新控制時(shí)間是7.5μs,設(shè)置了自動(dòng)預(yù)充電。當(dāng)前情況:寫(xiě)入情況: 讀出情況: 問(wèn)題:1、這款片外SDRAM芯片手冊(cè)里
發(fā)表于 04-24 10:38
時(shí)間向SDRAM發(fā)預(yù)充電(precharge)命令,以關(guān)閉已經(jīng)激活的頁(yè)。等待tRP時(shí)間后開(kāi)始下一次的讀寫(xiě)。讀操作支持突發(fā)模式,突發(fā)長(zhǎng)度為1、2、4、8可選。
發(fā)表于 06-27 04:15
Memory)因其容量大、讀寫(xiě)速度快、支持突發(fā)式讀寫(xiě)及相對(duì)低廉的價(jià)格而得到了廣泛的應(yīng)用。SDRAM的控制比較復(fù)雜,其接口電路設(shè)計(jì)是關(guān)鍵。本文首先介紹
發(fā)表于 12-03 15:20
和BANK地址,然后在給“READ”指令,經(jīng)過(guò)設(shè)定好的潛伏期之后,咱們的數(shù)據(jù)就出來(lái)了。大家也不要忘了,在給相關(guān)命令的時(shí)候,千萬(wàn)不要忘記其他信號(hào)線(xiàn)上的信號(hào)。SDRAM的自動(dòng)刷新操作Kev
發(fā)表于 01-14 06:35
和BANK地址,然后在給“READ”指令,經(jīng)過(guò)設(shè)定好的潛伏期之后,咱們的數(shù)據(jù)就出來(lái)了。大家也不要忘了,在給相關(guān)命令的時(shí)候,千萬(wàn)不要忘記其他信號(hào)線(xiàn)上的信號(hào)。SDRAM的自動(dòng)刷新操作Kev
發(fā)表于 01-24 06:35
對(duì)Bank進(jìn)行預(yù)充電,在此期間所有的Bank處于空閑狀態(tài)。預(yù)充電之后會(huì)有至少兩個(gè)自刷新,完成自刷新便可以對(duì)SDRAM進(jìn)行模式寄存器配置。圖1
發(fā)表于 01-04 19:20
突發(fā)完成之后才能進(jìn)行刷新操作;那么一次讀突發(fā)為7拍,寫(xiě)突發(fā)為6拍,時(shí)間是60ns或者70ns (SDRAM工作時(shí)鐘是100MHz,1拍是10ns),同時(shí)考慮到讀寫(xiě)
發(fā)表于 04-15 14:43
?! ?b class='flag-5'>SDRAM支持的操作命令有初始化配置、預(yù)充電、行激活、讀操作、寫(xiě)操作、自動(dòng)刷新、
發(fā)表于 10-09 15:22
?4942次閱讀
眾所周知,SDRAM從開(kāi)始工作伊始,一直伴隨著64ms刷新一遍的最基本規(guī)定(假設(shè)該SDRAM有4096行,那么必須大約15us的時(shí)間就要發(fā)出一次自刷
發(fā)表于 12-12 14:04
?5321次閱讀
?! ?b class='flag-5'>SDRAM支持的操作命令有初始化配置、預(yù)充電、行激活、讀操作、寫(xiě)操作、自動(dòng)刷新、
發(fā)表于 07-15 15:35
?3965次閱讀
評(píng)論