以FPGA為橋梁的FIFO設(shè)計(jì)方案及其應(yīng)用
在該設(shè)計(jì)中,攝像頭采用640×480的屏幕分辨率,圖像深度為8,每秒為25幀,圖像數(shù)據(jù)量的大小為圖像中像素總數(shù)與圖像深度的乘積,由此可以得出每幀圖像的大小為2.457 Mb,每秒鐘視頻產(chǎn)生數(shù)據(jù)的大小為61.44 Mb。因?yàn)橄到y(tǒng)向SDRAM控制器寫入和讀出數(shù)據(jù)的速度比較低,約為62 MHz,FPGA的外接晶振CLK為27 MHz,FPGA和SDRAM的工作時(shí)鐘由鎖相環(huán)4倍頻后生成,即為108 MHz,所以SDRAM控制器向SDRAM寫入和讀出數(shù)據(jù)的速率為108 MHz,因此二者屬于不同的時(shí)鐘域,需要用緩沖器作為輸入和輸出的緩存。
SDRAM控制器的模塊結(jié)構(gòu)如圖2所示,其中SDRAM控制器內(nèi)部包括:初始化模塊、模式寄存器、控制模塊和狀態(tài)機(jī)。SDRAM的接口設(shè)計(jì)是極其關(guān)鍵的,可根據(jù)SDRAM內(nèi)部操作狀態(tài)之間的聯(lián)系,通過狀態(tài)機(jī)來實(shí)現(xiàn)接口設(shè)計(jì)。初始化模塊負(fù)責(zé)SDRAM的初始化,在上電和時(shí)鐘穩(wěn)定后等待100 ms,至少執(zhí)行一條空操作,然后對(duì)所有頁執(zhí)行預(yù)充電操作,使所有頁處于空閑狀態(tài),接著向各頁發(fā)出兩條刷新操作指令,最后發(fā)出一個(gè)模式寄存器裝載命令,使SDRAM有確定的狀態(tài)進(jìn)行讀寫操作。模式寄存器可根據(jù)要求對(duì)SDRAM的突發(fā)長度、突發(fā)類型、CAS延時(shí)的時(shí)鐘數(shù)、運(yùn)行模式和寫突發(fā)模式進(jìn)行設(shè)置,確定SDRAM在讀寫操作時(shí)的工作狀態(tài)。模式寄存器M0~M2用于規(guī)定突發(fā)長度,可以為1,2,4,8。M3用于規(guī)定突發(fā)類型,當(dāng)M3=0時(shí),突發(fā)類型是連續(xù)的;當(dāng)M3=1時(shí),突發(fā)類型是交錯(cuò)的。M4~M6用于規(guī)定CAS延遲的時(shí)鐘周期數(shù),可以分為1,2,3。M7,M8用于規(guī)定運(yùn)行模式。M9用于規(guī)定寫突發(fā)模式,當(dāng)M9=0時(shí),按實(shí)際編程的突發(fā)長度存??;當(dāng)M9=1時(shí),按單個(gè)存取單元寫入,但可按實(shí)際編程的突發(fā)長度讀出。
狀態(tài)機(jī)是SDRAM控制器的核心控制模塊,其作用主要有兩個(gè)方面:其一是對(duì)各模塊發(fā)出的操作請(qǐng)求進(jìn)行仲裁,在適當(dāng)?shù)臅r(shí)刻作出反映,發(fā)出對(duì)SDRAM適當(dāng)?shù)目刂泼?;其二是協(xié)調(diào)各模塊之間的時(shí)序關(guān)系,滿足對(duì)SDRAM讀寫所必需的時(shí)序要求。狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移如圖3所示。
評(píng)論