基于FPGA的高速SDRAM控制器的視頻應用
當要求寫SDRAM時,控制狀態(tài)機的狀態(tài)由c_tRCD2跳變到c_WR狀態(tài),發(fā)出寫命令。SDRAM控制器會在發(fā)寫命令的同時將本次突發(fā)數據的第一個數據送到總線上,接著是三個周期的狀態(tài):c_tDAL1、c_DAL2、c_tDAL3,之后回到c_idle狀態(tài)。這樣完成了寫數據的一次循環(huán),剛好需要 8個周期。在回到c_idle狀態(tài)后即可啟動下一次寫數據傳輸,這時狀態(tài)機跳到c_ACT狀態(tài),發(fā)出激活另一個bank的某一行的命令,然后經過兩個周期后,此時上一次寫操作的數據突發(fā)長度剛好結束。下一個周期狀態(tài)變成c_WR,發(fā)下一次的寫命令,同時將這一次突發(fā)長度的第一個數據放到SDRAM數據總線上……如此循環(huán),可以完成長度是1280的連續(xù)數據的寫入。這個循環(huán)如何結束呢?當發(fā)了最后一個突發(fā)寫命令后,狀態(tài)機回到c_idle時,即可停止循環(huán),不再進入激活狀態(tài)??傊ㄟ^控制這個狀態(tài)機可以完成長度是8的倍數的連續(xù)數據讀寫。控制狀態(tài)機還有實現(xiàn)刷新操作的功能,當要求對SDRAM進行刷新操作時,控制狀態(tài)機的狀態(tài)會跳變到c_AR,SDRAM控制器會依此發(fā)出刷新命令。然后狀態(tài)機跳變到c_tRFC狀態(tài)等待刷新操作的結束。當刷新操作結束后,狀態(tài)機將恢復到c_idle。這樣就完成了一次刷新操作。如果需要多次刷新,就可以連續(xù)進行多次這樣的循環(huán)。
2.3 SDRAM控制器的綜合
本設計使用的SDRAM芯片是MT48LC2M3282,FPGA芯片是cyclone的EP1C6Q240C6。綜合工具是QuartusII 6.0。綜合的結果是邏輯單元使用了170個,占總資源的3%;工作頻率最高可以達到240.10 MHz,滿足項目要求。本文引用地址:http://m.butianyuan.cn/article/191928.htm
3 代碼的仿真測試
本設計的仿真工具是Modelsim6.1f,部分仿真測試波形見圖5。圖中描述了讀一行數據的時序圖,在開始突發(fā)寫數據后,SDRAM的數據總線sdr_DQ上的數據沒有被中斷。這個表示整個設計達到了能夠支持超長數據突發(fā)讀寫功能,能滿足設計要求。
4 結束語
本文介紹了一種實現(xiàn)超長數據突發(fā)讀寫的設計。此設計采用切換Bank操作節(jié)約了激活命令所花費的時間;采用自動預沖命令節(jié)約了預沖命令所花費的時間;采用集中刷新完成了足夠的刷新操作。通過對上面操作的組合設計,能夠很好地完成超長數據的突發(fā)讀寫。在設計中,成功地實現(xiàn)了突發(fā)長度是1280的數據讀寫,滿足了項目需求。
評論