新聞中心

EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 基于FPGA的DDR2 SDRAM存儲器用戶接口設(shè)計

基于FPGA的DDR2 SDRAM存儲器用戶接口設(shè)計

作者: 時間:2013-05-16 來源:網(wǎng)絡(luò) 收藏

摘要:使用功能強(qiáng)大的來實(shí)現(xiàn)一種 的用戶接口。該用戶接口是基于XILINX公司出產(chǎn)的 的存儲控制器,由于該公司出產(chǎn)的這種存儲控制器具有很高的效率,使用也很廣泛,可知本設(shè)計具有很大的使用前景。本設(shè)計通過采用多路高速率數(shù)據(jù)讀寫探作仿真驗(yàn)證,可知其完全可以滿足時序要求,由綜合結(jié)果可知其使用邏輯資源很少,運(yùn)行速率很高,基本可以滿足所有設(shè)計需要。
關(guān)鍵詞: ;;用戶接口;DDR2 SDRAM存儲控制器

現(xiàn)如今,隨著電子技術(shù)和通信技術(shù)的飛速發(fā)展,電路設(shè)計對的要求也越來越高,其主要體現(xiàn)在對的容量和存儲操作速度兩個方面。鑒于此,JEEDEC定義了DDR2SDRAM技術(shù)標(biāo)準(zhǔn),其以低能耗、低發(fā)熱量、高密度以及高頻率成為了現(xiàn)代存儲技術(shù)的核心器件。DDR2自身的工作頻率可以達(dá)到677 MHz,幾乎可以滿足所有電路設(shè)計的要求。而這也就使得整個電路設(shè)計的頻率瓶頸出現(xiàn)在了用戶設(shè)計部分與DDR2存儲器之間的邏輯上,主要是因?yàn)镈DR2本身的結(jié)構(gòu)特性使得DDR2的操作時序很復(fù)雜苛刻。而這之間的部分又主要分為DDR2存儲控制器和用戶接口部分。現(xiàn)如今已經(jīng)有了很多的廠家在生產(chǎn)DDR2存儲控制器,其中以XILINX公司設(shè)計的DDR2存儲控制器效率最高使用最為廣泛,該存儲控制器的單獨(dú)操作頻率非常高,完全不會影響DDR2存儲器的操作,因此這又將整個電路系統(tǒng)的頻率瓶頸縮小到了用戶接口部分。用戶接口的設(shè)計有很多種方案,而以其高速度、豐富的片上資源、靈活的設(shè)計以及簡單方便的調(diào)試特性成為了用戶接口設(shè)計的必然選擇。

1 DDR2存儲器應(yīng)用的一般模式
DDR2存儲器一般作為片上系統(tǒng)的輔助器件,其應(yīng)用的一般模式如圖1所示。

本文引用地址:http://butianyuan.cn/article/189601.htm

e.JPG


用戶設(shè)計部分是整個片上系統(tǒng)的核心,主要是完成系統(tǒng)要實(shí)現(xiàn)的所有任務(wù),對整個系統(tǒng)進(jìn)行整體的調(diào)度和控制。
用戶接口部分主要是接收用戶設(shè)計部分傳送的操作數(shù)據(jù),以及與這些操作數(shù)據(jù)相對應(yīng)的控制指令,之后將這些數(shù)據(jù)進(jìn)行整理,然后按照一定的時序要求發(fā)出。如果操作的是多路不同種類的數(shù)據(jù)時,則還要將這多路數(shù)據(jù)進(jìn)行仲裁,保證所有數(shù)據(jù)都不會被發(fā)錯或者丟失。
DDR2存儲控制器主要是接收用戶接口部分發(fā)給的特定的讀寫操作控制指令和已經(jīng)整理好的數(shù)據(jù),將這些指令進(jìn)行進(jìn)一步的解析,最后將經(jīng)過解析產(chǎn)生的那些DDR2存儲器硬件可以識別的信號以及與讀寫有效信號有關(guān)的寫數(shù)據(jù)輸出給DDR2,讀數(shù)據(jù)從DDR2存儲器中讀回。
DDR2存儲器主要是按照讀寫有效信號將要處理的數(shù)據(jù)進(jìn)行讀出和寫入操作。

2 用戶接口設(shè)計
用戶接口設(shè)計的原理如圖2所示。

a.JPG


其主要包括寫數(shù)據(jù)通路、讀數(shù)據(jù)通路以及接口控制3大模塊。
寫數(shù)據(jù)通路按照輸入存儲器路數(shù)的不同分為以下兩種:只有一路數(shù)據(jù)輸入時只有控制模塊和地址計算模塊;當(dāng)有多路數(shù)據(jù)輸入時,不僅有控制模塊和地址計算模塊還有仲裁模塊。
控制模塊主要是將輸入的數(shù)據(jù)進(jìn)行一次2乒乓操作的緩存,再將緩存后的數(shù)據(jù)拼接成64位數(shù)據(jù),之后在仲裁模塊允許該路數(shù)據(jù)寫操作時將這些數(shù)據(jù)發(fā)送給仲裁模塊。
地址計算模塊主要是計算每路信號的每個數(shù)據(jù)的存儲地址,由于每路數(shù)據(jù)都是不同數(shù)據(jù)類型的,因此必須要將每路地址的計算與其數(shù)據(jù)嚴(yán)格地對應(yīng)起來,要正確的保存好每次寫數(shù)據(jù)操作的地址,以便產(chǎn)生下次操作的正確地址。
仲裁模塊主要是保證多路數(shù)據(jù)對DDR2控制器的訪問可以正確進(jìn)行。DDR2存儲控制器采用的是高效的burst操作(對于本設(shè)計采用的是burst為30),也就是在一次讀操作或者是寫操作的過程中要連續(xù)處理burst長度所定義的數(shù)據(jù)個數(shù)(在本設(shè)計中每次讀寫操作要完成30個64位數(shù)據(jù)的讀出或?qū)懭?。這樣在一次請求操作被響應(yīng)之后,在接下來的15個周期只能傳輸這路數(shù)據(jù),在將這路數(shù)據(jù)傳輸完成之前不能再響應(yīng)其他路數(shù)據(jù)的操作請求,這樣就有可能導(dǎo)致其他多路數(shù)據(jù)的操作請求在本次操作結(jié)束之后同時到來,這樣就要求仲裁模塊必須要很好地控制每路數(shù)據(jù)之間的操作順序,使得多路信號對存儲器的訪問機(jī)率大致相同。鑒于此,本設(shè)計中采用了輪詢的機(jī)制。
讀通路和寫通路基本類似,只是讀通路不需要對數(shù)據(jù)進(jìn)行拼接,相反的需要對數(shù)據(jù)進(jìn)行拆分,將DDR2存儲器輸出的64位數(shù)據(jù)拆分成原始輸入時的數(shù)據(jù),并將這些數(shù)據(jù)存入讀操作端的FIFO中。這樣在外部請求數(shù)據(jù)數(shù)據(jù)時,若要求的數(shù)據(jù)已經(jīng)在FIFO中則直接將數(shù)據(jù)輸出即可,不需要再向DDR2存儲控制器請求,若要求的數(shù)據(jù)還沒在FIFO中則要先向DDB2存儲控制器請求數(shù)據(jù),將數(shù)據(jù)存入該FIFO,之后再將FIFO中本次要求讀出的數(shù)據(jù)輸出。

fpga相關(guān)文章:fpga是什么


存儲器相關(guān)文章:存儲器原理



上一頁 1 2 下一頁

關(guān)鍵詞: SDRAM FPGA DDR2 存儲器

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉