基于FPGA的DDR2 SDRAM存儲(chǔ)器用戶接口設(shè)計(jì)
接口控制模塊主要是接收寫(xiě)通路的寫(xiě)操作請(qǐng)求信號(hào)以及它對(duì)應(yīng)的地址信號(hào)和數(shù)據(jù)信號(hào),讀通路的讀操作請(qǐng)求信號(hào)以及它對(duì)應(yīng)的地址信號(hào),并將這些信號(hào)按照DDR2存儲(chǔ)控制器的時(shí)序要求發(fā)送給DDR2存儲(chǔ)控制器,之后再接收DDR2存儲(chǔ)控制器發(fā)回的讀數(shù)據(jù)。DDR2存儲(chǔ)控制器的讀寫(xiě)操作時(shí)序如圖3所示。本文引用地址:http://www.ex-cimer.com/article/189601.htm
3 仿真驗(yàn)證
對(duì)本設(shè)計(jì)的驗(yàn)證采用的是6路8位數(shù)據(jù)以27 MHz的頻率寫(xiě)入讀出操作。對(duì)其進(jìn)行整體讀寫(xiě)仿真的時(shí)序結(jié)果如圖4所示。
由該圖可知,當(dāng)將數(shù)據(jù)寫(xiě)入到DDR2中的數(shù)量到達(dá)一定程度時(shí),開(kāi)始向向外讀出數(shù)據(jù),寫(xiě)入的時(shí)序和讀出的時(shí)序整體上符合設(shè)計(jì)要求。
對(duì)讀寫(xiě)操作的具體仿真時(shí)序如圖5所示。
由該圖可知,寫(xiě)操作時(shí)的各種控制指令以及地址和數(shù)據(jù)的發(fā)送都是完全正確的;讀操作時(shí)的各種控制指令以及地址和數(shù)據(jù)的發(fā)送也是完全正確的。
對(duì)該設(shè)計(jì)采用XILINX Spartan6系列的xc6slx16—2ftg256器件進(jìn)行綜合,其結(jié)果如圖6所示。
由該圖可知該設(shè)計(jì)使用的邏輯資源相當(dāng)小,其中寄存器還不到總數(shù)的百分之一,查找表也只使用了總數(shù)的百分之二。
4 改進(jìn)
在一般情況下,DDR2的硬件存儲(chǔ)速率很快,其會(huì)等待存儲(chǔ)控制器發(fā)送下一個(gè)操作指令,而DDR2存儲(chǔ)控制器的操作指令是由用戶接口發(fā)出的,因此可以提出以下改進(jìn)方案??梢栽诖鎯?chǔ)控制器前端添加多個(gè)FIFO,將與操作有關(guān)的所有指令、地址以及數(shù)據(jù)對(duì)應(yīng)起來(lái)存入這些FIFO中,這樣等到DDR2存儲(chǔ)控制器將本次操作完成之后自動(dòng)將所有FIFO中與下次操作有關(guān)的指令和數(shù)據(jù)讀出,直接進(jìn)行下一次DDR2的操作,與此同時(shí)用戶接口部分在這些FIFO沒(méi)滿的情況下,還仍然向這些FIFO中寫(xiě)入要操作的所有指令和數(shù)據(jù)。
5 結(jié)論
由以上仿真結(jié)果可知,該設(shè)計(jì)在整個(gè)設(shè)計(jì)讀寫(xiě)頻率很高時(shí)仍然可以保證所有數(shù)據(jù)的正確操作,不會(huì)存在數(shù)據(jù)的丟失或者錯(cuò)誤。由以上綜合結(jié)果可知,該設(shè)計(jì)占用的FPGA片上資源很少,運(yùn)行頻率很高,基本可以滿足所有設(shè)計(jì)的要求。因此可知,該設(shè)計(jì)具有很高的工作頻率,解決了電路設(shè)計(jì)中DDR2存儲(chǔ)器讀寫(xiě)操作頻率的瓶頸問(wèn)題,使得整個(gè)設(shè)計(jì)的工作效率得到很大的提高。
fpga相關(guān)文章:fpga是什么
存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理
評(píng)論