亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA的DDR3 SDRAM控制器的設(shè)計(jì)與優(yōu)化

        2016-12-19 11:41:28趙英瀟林錢強(qiáng)
        電子科技 2016年11期
        關(guān)鍵詞:狀態(tài)機(jī)內(nèi)存控制器

        宋 明,趙英瀟,林錢強(qiáng)

        (國防科學(xué)技術(shù)大學(xué) 電子科學(xué)與工程學(xué)院,湖南 長沙 410073)

        ?

        基于FPGA的DDR3 SDRAM控制器的設(shè)計(jì)與優(yōu)化

        宋 明,趙英瀟,林錢強(qiáng)

        (國防科學(xué)技術(shù)大學(xué) 電子科學(xué)與工程學(xué)院,湖南 長沙 410073)

        為解決超高速采集系統(tǒng)中的數(shù)據(jù)緩存問題,文中基于Xilinx Kintex-7 FPGA MIG_v1.9 IP核進(jìn)行了DDR3 SDRAM控制器的編寫,分析并提出了提高帶寬利用率的方法。最終將其進(jìn)行類FIFO接口的封裝,屏蔽掉了DDR3 IP核復(fù)雜的用戶接口,為DDR3數(shù)據(jù)流緩存的實(shí)現(xiàn)提供便利。系統(tǒng)測試表明,該設(shè)計(jì)滿足大容量數(shù)據(jù)緩存要求,并具有較強(qiáng)的可移植性。

        FPGA;DDR3 SDRAM;MIG;讀寫控制器;狀態(tài)機(jī)

        隨著寬帶雷達(dá)技術(shù)的發(fā)展,超高速和寬帶采樣已成為基本要求[1],超高速采集系統(tǒng)需要相匹配的數(shù)據(jù)緩存設(shè)計(jì),DDR3 SDRAM是當(dāng)前最常用的高效方案[2-4]。

        DDR SDRAM是同步動態(tài)隨機(jī)存儲器,其采用雙倍速率存取,數(shù)據(jù)在工作時(shí)鐘的上升沿和下降沿采樣,有效提升了存儲速率。DDR SDRAM系列存儲設(shè)備經(jīng)歷了DDR、DDR2和DDR3幾個(gè)階段。DDR3 SDRAM在降低系統(tǒng)功耗的同時(shí)提高了系統(tǒng)性能,其利用“Fly_By”和動態(tài)片上匹配技術(shù)對于信號完整性的改善效果明顯[5]。本文基于Xilinx的MIG_v1.9 IP核進(jìn)行了DDR3 SDRAM控制器的編寫,并在Kintex-7 FPGA芯片上完成了功能測試及實(shí)現(xiàn)。

        1 DDR3連續(xù)讀寫操作的FPGA實(shí)現(xiàn)

        設(shè)計(jì)選用8片Mircon公司型號為MT42J128M16的芯片作為緩存區(qū)。每片芯片的數(shù)據(jù)位寬為8 bit,行地址復(fù)用14條地址線,列地址復(fù)用10條地址線,共有8個(gè)Bank。每片容量為128 MB,8片DDR3共同組成位寬為64 bit,容量為1 GB的緩存區(qū)域[6]。

        本文中DDR3控制器是基于Xilinx MIG IP核設(shè)計(jì)的。用戶首先需要在MIG IP核配置頁面對DDR3芯片型號、總線位寬、速度等級、引腳分配等參數(shù)進(jìn)行設(shè)置。設(shè)置完成后即可得到DDR3控制器接口解決方案, Xilinx Kintex-7系列FPGA內(nèi)存接口解決方案如圖1所示[7]。

        該方案由用戶控制模塊、用戶接口模塊、內(nèi)存控制模塊和物理層接口模塊4部分組成。用戶接口模塊位于設(shè)計(jì)的最前端,通過呈現(xiàn)一個(gè)扁平化的地址空間和緩沖器,提供了一個(gè)簡單的用戶接口,用以代替本地接口進(jìn)行數(shù)據(jù)的讀寫操作。內(nèi)存控制模塊位于用戶接口模塊和物理層模塊之間,其前端為用戶接口模塊提供本地接口。本地接口支持用戶設(shè)計(jì)提交存儲器讀寫請求,并提供用戶設(shè)計(jì)模塊與外部存儲設(shè)備之間的數(shù)據(jù)傳輸機(jī)制。內(nèi)存控制模塊還提供了一個(gè)具有重排序的功能選項(xiàng),可以對接收到的請求進(jìn)行重新排序,進(jìn)而優(yōu)化數(shù)據(jù)傳輸?shù)耐掏铝考皶r(shí)延。內(nèi)存控制器后端連接至物理層接口,并處理所有該模塊的接口請求。物理層接口前端連接至內(nèi)存控制器模塊,后端連接外部存儲設(shè)備,其主要功能是捕獲DDR3發(fā)出的數(shù)據(jù),產(chǎn)生DDR3所需要的控制指令信號,并通過輸入輸出緩存發(fā)送所有DDR3的控制信號、地址信號以及數(shù)據(jù)信號,同時(shí)保證指令與地址、數(shù)據(jù)的同步和信號的維持[5]。

        用戶使用時(shí),只需設(shè)計(jì)DDR3讀寫控制模塊即可通過IP核對DDR3進(jìn)行讀寫操作。app_rdy信號是用戶接口模塊準(zhǔn)備就緒的標(biāo)識,在進(jìn)行讀操作時(shí),只需在app_rdy信號為1時(shí)更新讀地址即可,讀操作時(shí)序如圖2所示[7]。而寫操作相對復(fù)雜,若要成功進(jìn)行寫操作,則必須保證寫地址和寫數(shù)據(jù)都有效,而寫地址和寫數(shù)據(jù)不必同時(shí)有效,可以相差幾個(gè)周期,當(dāng)用戶接口反饋的app_rdy信號和用戶控制的app_en信號同時(shí)為1時(shí),寫操作指令app_cmd以及寫地址app_addr有效。而對于需要寫入的數(shù)據(jù)app_wdf_data來說,只有當(dāng)用戶接口反饋的app_wdf_rdy信號和用戶控制的app_wdf_wren信號同時(shí)拉高時(shí)才是有效的。寫操作對應(yīng)的時(shí)序如圖3所示[7]。

        圖1 Xilinx Kintex-7 FPGA內(nèi)存接口解決方案

        圖2 讀操作時(shí)序圖

        圖3 寫操作時(shí)序圖

        本文基于Verilog HDL硬件描述語言[8],設(shè)計(jì)如圖4所示的狀態(tài)機(jī)實(shí)現(xiàn)DDR3的連續(xù)寫操作。在IDLE狀態(tài)下,當(dāng)DDR3 IP核完成校準(zhǔn)后,經(jīng)過幾十μs的延時(shí),寫地址和寫數(shù)據(jù)被同時(shí)送入IP核,狀態(tài)機(jī)進(jìn)入WRITE狀態(tài)。如果寫地址與寫數(shù)據(jù)均得到響應(yīng)(app_rdy & app_wdf_rdy為1),寫地址和寫數(shù)據(jù)將得到更新,狀態(tài)機(jī)繼續(xù)處于WRITE狀態(tài)。如果只有寫數(shù)據(jù)得到響應(yīng)(!app_rdy & app_wdf_rdy為1),則停止寫數(shù)據(jù)更新,狀態(tài)機(jī)進(jìn)入WAIT1狀態(tài),待寫地址得到響應(yīng)后,再更新寫地址和寫數(shù)據(jù),并返回到WRITE狀態(tài)。如果只有寫地址得到響應(yīng)(app_rdy & !app_wdf_rdy為1),則停止寫地址更新,進(jìn)入WAIT2狀態(tài),待寫數(shù)據(jù)得到響應(yīng)后,更新寫地址和寫數(shù)據(jù),并返回WRITE狀態(tài)。經(jīng)實(shí)際測試狀態(tài)WAIT2并不會出現(xiàn),所以可以將WAIT2狀態(tài)去掉,對狀態(tài)機(jī)進(jìn)行優(yōu)化。

        圖4 DDR3連續(xù)寫控制模塊狀態(tài)機(jī)

        本文設(shè)計(jì)的狀態(tài)機(jī),通過對IP核的控制,成功實(shí)現(xiàn)了DDR3連續(xù)寫操作。用Chipscope軟件進(jìn)行信號觀測,波形如圖5所示。由于連續(xù)讀操作比較簡單,文中不再贅述。

        圖5 DDR3連續(xù)寫操作Chipscope相關(guān)信號波形

        2 DDR3讀寫效率測試與分析

        為滿足高速數(shù)據(jù)傳輸?shù)囊螅珼DR3需要保證較高的帶寬利用率。DDR3的極限速率為兩倍工作時(shí)鐘頻率與數(shù)據(jù)總線位寬的乘積。但是,DDR3的讀寫共用同一組數(shù)據(jù)總線,同時(shí)DDR3內(nèi)部是以BANK/行/列的形式組織起來的。在對新的BANK/行進(jìn)行讀寫前,需要執(zhí)行預(yù)充命令和激活命令等[9-10]。同時(shí)不同指令之間也有各種時(shí)間間隙要求。因此,DDR3的實(shí)際傳輸速率與極限速率有一定差距。根據(jù)使用方式的不同,DDR3的接口帶寬利用率會存在差異[11-13]。

        本文通過測試不同使用情形下DDR3的帶寬利用率來尋求具有較高效率的讀寫控制方式。本測試計(jì)算帶寬效率的方式是,向IP核中輸入指定的激勵,觀察DDR3芯片接口上的有效數(shù)據(jù)所占的比例,由此計(jì)算出有效帶寬。

        本文對以下3種DDR3讀寫方式進(jìn)行了帶寬利用率的測試:

        (1)固定Bank多行切換測試。單Bank內(nèi),每完成一次寫操作,則進(jìn)入下一個(gè)行的相同列。由于兩列的打開操作有時(shí)間間隙要求,打開列到寫操作也有時(shí)間間隙要求,導(dǎo)致單Bank內(nèi)行切換時(shí),測得的帶寬利用率較低,僅為11%;

        (2)讀寫切換測試。對DDR3同一地址空間,每進(jìn)行完1次寫操作之后,進(jìn)行1次讀操作。由于相鄰讀寫操作間有時(shí)間間隙要求,導(dǎo)致該方式下,帶寬利用率較低,僅為10.7%。接著按照先進(jìn)行N次寫操作,再進(jìn)行N次讀操作的讀寫方式進(jìn)行測試,其結(jié)果記錄如表1所示;

        (3)兩Bank不換行平滑過渡測試。先在Bank0的同一個(gè)行內(nèi)連續(xù)寫8次然后過渡到Bank1的同一個(gè)行內(nèi)連續(xù)寫8次。結(jié)果顯示,在Bank0的寫操作過程中打開Bank1的一個(gè)Row,而不影響B(tài)ank0的寫操作。由于提前了足夠的時(shí)間打開Bank1,那么等Bank0的寫操作結(jié)束后,可以直接平滑的過渡到Bank1的寫操作階段,中間沒有等待。該方式下,帶寬利用率為91%。

        經(jīng)測試項(xiàng)驗(yàn)證可發(fā)現(xiàn):Xilinx MIG IP核對DDR3芯片進(jìn)行按地址連續(xù)存儲,效率較高。但Xilinx MIG IP核對DDR3的隨機(jī)地址存取效率比較低。使讀寫效率降低的主要原因有:同Bank行切換、讀寫切換、IP核Bank管理方式。故可采取以下方式提高DDR3帶寬利用率:(1)降低讀寫切換的頻率;(2)采用連續(xù)地址存取的方式,減少Bank和行的切換;(3)在對MIG IP核進(jìn)行配置時(shí),用戶接口地址映射方式采用“ROW—BANK—COLUMN”方式,降低行切換的頻率。

        表1 先寫后讀:先寫N個(gè)數(shù)據(jù),然后讀N個(gè)數(shù)據(jù)

        3 DDR3讀寫控制模塊的類FIFO封裝

        為便于DDR3模塊與其他模塊對接,方便用戶的使用,對其進(jìn)行類FIFO接口封裝[14-15],整個(gè)模塊結(jié)構(gòu)框圖如圖6所示??梢姺庋b后的DDR3模塊外部接口與FIFO非常相似,因此有效提升了使用的便捷性。DDR3模塊是由寫FIFO模塊、讀FIFO模塊、DDR3讀寫控制模塊、DDR3 IP核4部分組成。寫FIFO模塊用來接收數(shù)據(jù)。讀FIFO模塊用來輸出從DDR3內(nèi)讀取的數(shù)據(jù)。DDR3讀寫控制模塊用來控制DDR3的讀寫操作,合理切換讀寫狀態(tài),保證讀寫效率。DDR3 IP核模塊為FPGA與DDR3的物理接口。

        圖6 類FIFO接口封裝結(jié)構(gòu)圖

        可以看出,DDR3模塊設(shè)計(jì)的關(guān)鍵是讀寫控制狀態(tài)機(jī)的編寫。此狀態(tài)機(jī)共有3種狀態(tài),IDLE狀態(tài)下不進(jìn)行讀寫操作,WRITE狀態(tài)下進(jìn)行連續(xù)寫操作,READ狀態(tài)下進(jìn)行連續(xù)讀操作。根據(jù)上述分析,為保證較高的讀寫效率就要避免頻繁的讀寫切換。因此,寫FIFO的編程空信號wr_fifo_prog_empty和讀FIFO的編程滿信號rd_fifo_prog_full均采用雙門限的設(shè)置。若寫FIFO滿,則數(shù)據(jù)會丟失,而讀FIFO滿只會使數(shù)據(jù)在DDR3內(nèi)緩存,因此,寫操作的優(yōu)先級高于讀操作,狀態(tài)機(jī)如圖7所示。

        圖7 DDR3讀寫狀態(tài)機(jī)

        為確保設(shè)計(jì)的可行性及可靠性,對編寫的DDR3讀寫控制器進(jìn)行板級驗(yàn)證,硬件測試中選用Xilinx公司的Kintex-7 FPGA以及Micron公司的DDR3 SDRAM芯片。DDR3工作頻率為500 MHz,經(jīng)測試其可對3 GB/s的數(shù)據(jù)流進(jìn)行穩(wěn)定緩存。

        4 結(jié)束語

        本文對DDR3讀寫狀態(tài)機(jī)進(jìn)行了設(shè)計(jì)與優(yōu)化,并對DDR3在不同讀寫方式下的帶寬利用率進(jìn)行了測試與分析,提出了保證帶寬率的相應(yīng)措施。在此基礎(chǔ)上,將FPGA的DDR3的讀寫控制模塊封裝成簡單的類FIFO接口。并將其在Xilinx公司的Kintex-7系列FPGA芯片上實(shí)現(xiàn),工作穩(wěn)定可靠、有較高的工作效率、接口簡單、可移植性高,為DDR3在高速數(shù)據(jù)流緩存中的應(yīng)用提供了便利。

        [1] 楊劍,張?jiān)?宿紹瑩,等.高分辨寬帶雷達(dá)高速數(shù)據(jù)大容量存儲系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)工程與應(yīng)用,2010,46(16):23-26.

        [2] 董岱岳.基于FPGA的DDR3 SDRAM控制器設(shè)計(jì)[D].濟(jì)南:山東大學(xué):2015.

        [3] 楊軍.基于FPGA的DDR3控制器IP設(shè)計(jì)與驗(yàn)證[D].南昌:南昌航空大學(xué),2015.

        [4] 基于FPGA的DDR3內(nèi)存控制器的研究與設(shè)計(jì)[D].成都:成都理工大學(xué),2015.

        [5] 黃萬偉.Xilinx FPGA應(yīng)用進(jìn)階[M].北京:電子工業(yè)出版社,2014.

        [6] JEDEC Organization.JEDEC standard DDR3 SDRAM specification [M].USA: JEDEC Organization,2008.

        [7] Xilinx Corporation.Xilinx corporation 7 series devices memory interface solutions (UG586) [M].PD,USA: Xilinx Corporation,2013.

        [8] 夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程[M].北京:北京航空航天大學(xué)出版社,2008.

        [9] 王正宇.DDR3內(nèi)存控制器的IP核設(shè)計(jì)及FPGA驗(yàn)證[D].蘭州:蘭州交通大學(xué),2012.

        [10] 萬軼.高性能DDR3存儲控制器的研究與實(shí)現(xiàn)[D].長沙:國防科學(xué)技術(shù)大學(xué),2008.

        [11] 馬志超.DDR3控制器的設(shè)計(jì)與驗(yàn)證[D].西安:西安電子科技大學(xué),2013.

        [12] 李逍楠.DDR3控制器的研究[D].西安:西安電子科技大學(xué),2013.

        [13] 孟曉東.基于FPGA的DDR3控制器設(shè)計(jì)與驗(yàn)證[D].長沙:國防科學(xué)技術(shù)大學(xué),2012.

        [14] 張剛,賈建超,趙龍.基于FPGA的DDR3 SDRAM控制器設(shè)計(jì)與實(shí)現(xiàn)[J].電子科技,2014,27(1):70-73.

        [15] 佘顏.基于DDR3控制器的高速存儲接口系統(tǒng)的設(shè)計(jì)與驗(yàn)證[D].西安:西安電子科技大學(xué),2015.

        Design and Optimization of DDR3 SDRAM Controller Based on FPGA

        SONG Ming,ZHAO Yingxiao,LIN Qianqiang

        (School of Electronic Science and Engineering,National University of Defense Technology,Changsha 410073,China)

        In order to solve the problem of data cache in ultrahigh speed sampling system, a DDR3 SDRAM controller is designed in this paper based on Kintex-7 FPGA MIG_v1.9 IP core. A method to improve the bandwidth utilization ratio is proposed and analyzed. Finally, it is packaged as the FIFO interface, while shielding the complex user interface of DDR3 IP core, so that the DDR3 reading and writing operation can be as simple as FIFO’s. System tests show that the proposed method meets the requirements of large capacity data cache, and provides with high portability.

        FPGA;DDR3 SDRAM;MIG;reading-writing controller;state machine

        2016- 05- 30

        宋明(1992-),男,碩士研究生。研究方向:信息獲取等。趙英瀟(1990-),男,博士研究生。研究方向:數(shù)字陣列雷達(dá)信號處理。林錢強(qiáng)(1983-),男,博士,講師。研究方向:高速數(shù)據(jù)采集和雷達(dá)信號處理。

        10.16180/j.cnki.issn1007-7820.2016.11.015

        TN919.3

        A

        1007-7820(2016)11-047-04

        猜你喜歡
        狀態(tài)機(jī)內(nèi)存控制器
        基于有限狀態(tài)機(jī)的交會對接飛行任務(wù)規(guī)劃方法
        “春夏秋冬”的內(nèi)存
        模糊PID控制器設(shè)計(jì)及MATLAB仿真
        MOXA RTU控制器ioPAC 5542系列
        自動化博覽(2014年9期)2014-02-28 22:33:17
        倍福 CX8091嵌入式控制器
        自動化博覽(2014年4期)2014-02-28 22:31:15
        4V三輸出同步降壓型控制器
        基于內(nèi)存的地理信息訪問技術(shù)
        FPGA設(shè)計(jì)中狀態(tài)機(jī)安全性研究
        基于反熔絲FPGA的有限狀態(tài)機(jī)加固設(shè)計(jì)
        基于VHDL的一個(gè)簡單Mealy狀態(tài)機(jī)
        人人妻人人澡人人爽超污| 亚洲最新中文字幕一区| 日韩精品免费观看在线| 国产精品妇女一区二区三区| 国产女人的高潮国语对白| 精品午夜福利1000在线观看| 亚洲日韩AV无码美腿丝袜| av一区二区三区综合网站| 精品国产天堂综合一区在线| 国产精品无码a∨精品影院| 国产午夜精品福利久久| 91麻豆精品久久久影院| 日本真人添下面视频免费| 天堂…在线最新版资源| 国产成人亚洲精品77| 91人妻人人做人人爽九色| 国产精品久久久久久久久电影网| 午夜三级a三级三点| 亚洲高清有码在线观看| av中文字幕性女高清在线| 深夜爽爽动态图无遮无挡| 欧美孕妇xxxx做受欧美88| 音影先锋色天堂av电影妓女久久| 手机在线免费观看的av| 国产亚av手机在线观看| 97精品伊人久久大香线蕉app | 亚洲精品熟女乱色一区| 黄片小视频免费观看完整版| 鸭子tv国产在线永久播放| 国产精品自在拍在线播放| 亚洲国内精品一区二区在线| 亚洲av福利天堂一区二区三| a人片在线观看苍苍影院| 天堂69亚洲精品中文字幕| 成人av资源在线播放| 18禁黄网站禁片免费观看女女| 国产99视频精品免费视频免里| 日本岛国一区二区三区| 99re66在线观看精品免费| 国产又滑又嫩又白| 亚洲AV无码日韩综合欧亚|