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