關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 多端口SDRAM控制器的設(shè)計(jì)與實(shí)現(xiàn)

多端口SDRAM控制器的設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2009-10-15 來(lái)源:網(wǎng)絡(luò) 收藏

  將數(shù)據(jù)采集模塊得到的兩組數(shù)據(jù)同時(shí)存貯到各自的寫緩存FIFO 里,只要寫緩存里的數(shù)據(jù)達(dá)到了 每頁(yè)的數(shù)據(jù)大小,就產(chǎn)生對(duì) 的寫請(qǐng)求,因?yàn)槊總€(gè)緩存的大小是兩頁(yè) ,所以此時(shí)數(shù)據(jù)采集模塊還可以繼續(xù)存數(shù)據(jù)。類似的,VGA 所顯示的數(shù)據(jù)也是從兩個(gè)讀緩存 FIFO 得到的,只要讀緩存里的數(shù)據(jù)小于SDRAM 每頁(yè)的數(shù)據(jù),就產(chǎn)生對(duì)SDRAM 的讀請(qǐng)求,這樣每個(gè)緩存里的兩頁(yè)輪流操作。關(guān)鍵代碼如下:

  2.2 地址生成模塊:

  該模塊用來(lái)自動(dòng)生成對(duì)SDRAM進(jìn)行存取操作的Bank地址,起始地址和突發(fā)長(zhǎng)度。由于30位的像素?cái)?shù)據(jù)等分各存入兩個(gè)Bank里,所以在Bank里它們的對(duì)應(yīng)地址是相同變化的,這樣存取數(shù)據(jù)時(shí),對(duì)兩個(gè)Bank的讀寫地址的控制就是統(tǒng)一增減的,降低了使用一個(gè)Bank時(shí)讀寫控制的繁雜性。

  2.3 自動(dòng)刷新模塊:

  SDRAM需要不斷的刷新操作,同一行的存儲(chǔ)單元每隔64m s 需要刷新一次,對(duì)于本芯片的一個(gè)Bank 中的4096 行存儲(chǔ)單元,則每15. 625us 就需要發(fā)出一個(gè)刷新命令,由于本設(shè)計(jì)采取緩存的辦法,所以應(yīng)該按讀寫SDRAM到緩存FIFO的時(shí)間為準(zhǔn)來(lái)設(shè)計(jì)刷新計(jì)數(shù)器的初始值。以頁(yè)模式進(jìn)行讀寫,讀數(shù)據(jù)的整個(gè)時(shí)間過(guò)程是tRCD+ tCL+mLENGTH ,寫數(shù)據(jù)的整個(gè)時(shí)間過(guò)程是tRCD+mLENGTH ,其中tRCD是激活命令到讀或?qū)懨钇陂g的延遲,tCL是讀命令發(fā)出后到第一個(gè)有效數(shù)據(jù)之間的間隔,mLENGTH 是SDRAM 的頁(yè)長(zhǎng),本設(shè)計(jì)中tRCD =3, tCL=3,mLength=256 。因此刷新計(jì)數(shù)器的初始值設(shè)置為2X(256+3+3)+ 2X(256+3)=1042 ,經(jīng)計(jì)算遠(yuǎn)遠(yuǎn)小于所要求的刷新周期,初值設(shè)置合理。開(kāi)始工作后,每當(dāng)刷新計(jì)數(shù)器值減為0, 便會(huì)發(fā)出刷新命令,保證SDRAM內(nèi)的數(shù)據(jù)不丟失,自動(dòng)刷新之后直接進(jìn)行預(yù)充電來(lái)關(guān)閉工作行。

  2.4 命令產(chǎn)生模塊:該模塊主要負(fù)責(zé)命令仲裁、命令生成以及時(shí)序控制等。SDRAM 優(yōu)先級(jí)仲裁算法通常有兩種:一種是固定優(yōu)先級(jí)算法,另一種是循環(huán)優(yōu)先級(jí)算法。本文設(shè)計(jì)的SDRAM 是應(yīng)

  用在實(shí)時(shí)圖像處理系統(tǒng)中的,對(duì)數(shù)據(jù)處理效率要求很高,因此設(shè)計(jì)中選用固定優(yōu)先級(jí)算法。本文規(guī)定優(yōu)先級(jí)如下:初始化請(qǐng)求>刷新請(qǐng)求>讀請(qǐng)求>寫請(qǐng)求>其他。



關(guān)鍵詞: SDRAM 多端口 控制器

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉