基于FPGA的高速SDRAM控制器的視頻應用
0 引言
SDRAM(同步動(dòng)態(tài)存儲器)是一種應用廣泛的存儲器,具有容量大、數據讀寫(xiě)速度快、價(jià)格低廉等優(yōu)點(diǎn),特別適合那些需要海量存儲器的應用領(lǐng)域,例如視頻方面。
這里有一個(gè)視頻項目要求將非標準的ITU-R BT.656視頻格式的數據轉換成VGA格式,直接用于顯示器顯示。如圖1,輸入的視頻格式是非標準的ITU-R BT.656格式,圖像分辨率是1280×1024,幀速是15幀/秒,每一個(gè)像素點(diǎn)是24bit;輸出的視頻格式是VGA格式,圖像分辨率是1280× 1024,幀速是60幀/秒,每一個(gè)像素點(diǎn)還是24bit。
本項目使用SDRAM來(lái)存儲視頻數據。在設計中,要求能夠將一幅完整的圖像(1280×1024×24bit)存儲在SDRAM中。并且要求讀寫(xiě)突發(fā)長(cháng)度是1280,即一行視頻數據(1280×24bit)。SDRAM突發(fā)長(cháng)度最高只能達到256(即SDRAM芯片的一列的長(cháng)度),為此需要使用FPGA專(zhuān)門(mén)實(shí)現一個(gè)SDRAM控制器。在控制器的設計中通過(guò)采用切換bank操作、自動(dòng)預沖、集中刷新等技術(shù)實(shí)現了這種超長(cháng)突發(fā)長(cháng)度的數據讀寫(xiě)。同樣通過(guò)適當地修改此控制器,可以實(shí)現任意突發(fā)長(cháng)度的數據讀寫(xiě)。
1 SDRAM基本特性
本設計中采用的SDRAM芯片的型號是MT48LC2M3282-7。SDRAM的主要操作包括初始化、讀寫(xiě)和刷新操作。SDRAM的初始化操作過(guò)程如下:上電后等待100 μs;然后依次完成預沖,兩次刷新操作;接下來(lái)就可以配置寄存器了。至此整個(gè)初始化工作結束,SDRAM進(jìn)入正常工作狀態(tài)。SDRAM進(jìn)入正常工作狀態(tài)后,就可以根據命令來(lái)工作。這些命令包括:預沖(Precharge)和自動(dòng)預沖(AutoPrecharge)、激活(Active)、讀 (read)、寫(xiě)(write)、自動(dòng)刷新(Auto Refresh)和自刷新(Self Refresh)等。根據本設計的需要,這里詳細介紹設計中相關(guān)的命令:自動(dòng)預沖、激活、讀寫(xiě)、自動(dòng)刷新。自動(dòng)預沖命令是SDRAM芯片在一次突發(fā)讀/寫(xiě)結束后自動(dòng)發(fā)出預沖命令,將讀寫(xiě)的行關(guān)閉。它與預沖命令有著(zhù)相同的功能,但是發(fā)起命令的方式不一樣。預沖命令是SDRAM控制器發(fā)起的命令,它需要占據 SDRAM的總線(xiàn),在這段時(shí)間不能讀寫(xiě)數據。而自動(dòng)預沖命令是SDRAM自動(dòng)的行為,不需要占據SDRAM的總線(xiàn)。這個(gè)命令是在發(fā)起讀寫(xiě)命令時(shí)設置的。
激活命令是對SDRAM的某一行激活,這樣才能對這一行數據發(fā)起讀寫(xiě)操作。讀寫(xiě)命令是對某一激活的行進(jìn)行突發(fā)讀寫(xiě)操作。具體的突發(fā)讀寫(xiě)的數據長(cháng)度在初始化時(shí)配置寄存器時(shí)設置了。
評論