基于FPGA的外部存儲器設(shè)計
2 存儲電路軟件設(shè)計
2.1 SDRAM控制器設(shè)計
SDRAM具有空間存儲量大、讀/寫速度快、價格相對便宜的特點,因此許多嵌入式設(shè)備的大容量、高速度存儲器都采用SDRAM來實現(xiàn),但其控制邏輯復(fù)雜,需要周期性刷新操作、行列管理、不同延時和命令序列等。目前,大多都采用專用芯片完成它的控制電路,這不但提高了設(shè)計成本,而且使系統(tǒng)的硬件電路變得復(fù)雜。隨著FPGA在嵌入式系統(tǒng)中的廣泛應(yīng)用,FPGA管腳設(shè)計靈活,結(jié)合具體的需要,利用FPGA來設(shè)計一個滿足雷達(dá)信號處理專用的SDRAM控制器,就可以極大地增加設(shè)計的靈活性,且硬件規(guī)模小,又可以滿足實時信號處理需求。本文就是基于這種處理方法來設(shè)計一個SDRAM控制器。
在SDRAM控制器的FPGA實現(xiàn)方案中,采用FPGA的自底向上模塊化設(shè)計思想。首先分析頂層模塊所要完成的功能,之后再將其功能分類細(xì)化,分配到不同的子模塊去實現(xiàn),然后從底層向頂層的先逐步完成各個子模塊的設(shè)計,最后將子模塊相互連接生成所需的頂層模塊。設(shè)計SDRAM控制器是為了更好地滿足SDRAM與FPGA的通信而設(shè)計的。下面將具體介紹SDRAM控制器的設(shè)計方法。圖3為參考Altera公司SDRAM控制器的而設(shè)計的接口框圖。本文引用地址:http://www.ex-cimer.com/article/191065.htm
下面對接口信號進(jìn)行介紹:與主機(jī)接口信號有CLK:系統(tǒng)時鐘信號;RESET:系統(tǒng)復(fù)位信號;CMD[2:0]:譯碼指令;CMDACK:指令應(yīng)答信號,通知主機(jī)命令已被SDRAM執(zhí)行;ADDR:地址線,該設(shè)計中為22位,A21,A20代表頁地址BA1,BA0;A19~A8代表行地址;A7~A0代表列地址;DATAIN/DATAOUT:輸入、輸出數(shù)據(jù)總線;DM:數(shù)據(jù)掩碼。與SDRAM接口信號有RADDR:12位地址線,在讀/寫操作時,地址線時復(fù)用為行地址和列地址;BA0,BA1頁地址選擇;CS:片選信號;CKE:時鐘使能信號;RAS,CAS,WE:命令控制信號;DQM:SDRAM數(shù)據(jù)掩碼;DQ:雙向數(shù)據(jù)線。SDRAM控制器作為頂層模塊,內(nèi)部由3個主要模塊構(gòu)成:系統(tǒng)控制接口模塊、命令生成模塊和數(shù)據(jù)路徑模塊。系統(tǒng)控制接口模塊用于接收系統(tǒng)的控制信號,進(jìn)而產(chǎn)生不同的CMD命令組合;命令用于接收CMD命令并解碼成操作指令并產(chǎn)生SDRAM的操作動作;數(shù)據(jù)通路模塊則用于控制數(shù)據(jù)的有效輸入/輸出。
使用SDRAM的目的是進(jìn)行數(shù)據(jù)傳輸,即要求能正確地讀寫數(shù)據(jù)。因此,在SDRAM操作過程中,最重要是就是初始化、讀和寫的操作,因此,本文完成了SDRAM初始化在QuailtusⅡ仿真下的時序波形圖,如圖4所示。
評論