基于FPGA的DDR3多端口讀寫(xiě)存儲(chǔ)管理系統(tǒng)設(shè)計(jì)
機(jī)載視頻圖形顯示系統(tǒng)主要實(shí)現(xiàn)2D圖形的繪制,構(gòu)成各種飛行參數(shù)畫(huà)面,同時(shí)疊加實(shí)時(shí)的外景視頻。由于FPGA具有強(qiáng)大邏輯資源、豐富IP核等優(yōu)點(diǎn),基于FPGA的嵌入式系統(tǒng)架構(gòu)是機(jī)載視頻圖形顯示系統(tǒng)理想的架構(gòu)選擇。視頻處理和圖形生成需要存儲(chǔ)海量數(shù)據(jù),FPGA內(nèi)部的存儲(chǔ)資源無(wú)法滿足存儲(chǔ)需求,因此需要配置外部存儲(chǔ)器。
本文引用地址:http://www.ex-cimer.com/article/271735.htm與DDR2 SDRAM相比,DDR3 SDRAM帶寬更好高、傳輸速率更快且更省電,能夠滿足吞吐量大、功耗低的需求,因此選擇DDR3 SDRAM作為機(jī)載視頻圖形顯示系統(tǒng)的外部存儲(chǔ)器。
本文以Kintex-7系列XC7K410T FPGA芯片和兩片MT41J128M16 DDR3 SDRAM芯片為硬件平臺(tái),設(shè)計(jì)并實(shí)現(xiàn)了基于FPGA的視頻圖形顯示系統(tǒng)的DDR3多端口存儲(chǔ)管理。
1總體架構(gòu)設(shè)計(jì)
機(jī)載視頻圖形顯示系統(tǒng)中,為了實(shí)現(xiàn)多端口對(duì)DDR3的讀寫(xiě)訪問(wèn),設(shè)計(jì)的DDR3存儲(chǔ)管理系統(tǒng)如圖1所示。主要包括DDR3存儲(chǔ)器控制模塊、DDR3用戶接口仲裁控制模塊和幀地址控制模塊。
圖1 DDR3存儲(chǔ)系統(tǒng)設(shè)計(jì)框圖
DDR3存儲(chǔ)器控制模塊采用MIG(Memory Interface Generator)方案,通過(guò)用戶接口建立FPGA內(nèi)部控制邏輯到DDR3的連接,用戶不需要管理DDR3初始化、寄存器配置等復(fù)雜的控制邏輯,只需要控制用戶接口的讀寫(xiě)操作。
DDR3用戶接口仲裁控制模塊將每一個(gè)數(shù)據(jù)讀寫(xiě)請(qǐng)求設(shè)置成中斷,借鑒中斷處理思想來(lái)進(jìn)行仲裁控制,從而解決數(shù)據(jù)存儲(chǔ)的沖突。
幀地址控制模塊控制幀地址的切換。為了提高并行處理的速度,簡(jiǎn)化數(shù)據(jù)讀寫(xiě)沖突,將圖形數(shù)據(jù)和視頻數(shù)據(jù)分別存儲(chǔ)在不同的DDR3中。
2 DDR3存儲(chǔ)器控制模塊設(shè)計(jì)
MIG生成的DDR3控制器的邏輯框圖如圖2所示,只需要通過(guò)用戶接口信號(hào)就能完成DDR3讀寫(xiě)操作,大大簡(jiǎn)化了DDR3的設(shè)計(jì)復(fù)雜度。
圖2 DDR3控制器的邏輯框圖
2.1 DDR3控制模塊用戶接口寫(xiě)操作設(shè)計(jì)
DDR3存儲(chǔ)器控制模塊用戶接口寫(xiě)操作有兩套系統(tǒng),一套是地址系統(tǒng),一套是數(shù)據(jù)系統(tǒng)。
地址系統(tǒng)的內(nèi)容是app_addr和app_cmd,兩者對(duì)齊綁定,app_cmd為000時(shí)為寫(xiě)命令,當(dāng)app_rdy(DDR3控制)和app_en(用戶控制)同時(shí)拉高時(shí),將app_addr和app_cmd寫(xiě)到相應(yīng)FIFO中。數(shù)據(jù)系統(tǒng)的內(nèi)容是app_wdf_data,它在app_wdf_rdy(DDR3控制)和app_wdf_wren(用戶控制)同時(shí)拉高時(shí),將寫(xiě)數(shù)據(jù)存到寫(xiě)FIFO.
為了簡(jiǎn)化設(shè)計(jì),本文設(shè)計(jì)的用戶接口寫(xiě)操作時(shí)序如圖3所示,使兩套系統(tǒng)在時(shí)序上完全對(duì)齊。
圖3 DDR3寫(xiě)操作時(shí)序圖
2.2 DDR3控制模塊用戶接口讀操作設(shè)計(jì)
用戶接口讀操作也分為地址系統(tǒng)和數(shù)據(jù)系統(tǒng)。用戶接口讀操作信號(hào)說(shuō)明如表1所示。
表1 DDR3 控制器用戶接口讀操作信號(hào)說(shuō)明
地址系統(tǒng)與寫(xiě)操作相同,在時(shí)鐘上升沿且app_rdy為高電平時(shí),用戶端口同時(shí)發(fā)出讀命令(app_cmd=001)和讀地址,并將app_en拉高,將讀命令和地址寫(xiě)到FIFO中。對(duì)于數(shù)據(jù)系統(tǒng),當(dāng)app_rd_data_valid有效,則讀數(shù)據(jù)有效,讀回的數(shù)據(jù)順序與地址/控制總線請(qǐng)求命令的順序相同。
讀操作地址系統(tǒng)和數(shù)據(jù)系統(tǒng)一般是不對(duì)齊的,因?yàn)榈刂废到y(tǒng)發(fā)送到DDR3后,DDR3需要一定的反應(yīng)時(shí)間,讀操作時(shí)序如圖4所示。
圖4 DDR3 讀操作時(shí)序圖
fpga相關(guān)文章:fpga是什么
存儲(chǔ)器相關(guān)文章:存儲(chǔ)器原理
評(píng)論