<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > Xilinx MIG IP核的研究及大容量數據緩沖區的實(shí)現

Xilinx MIG IP核的研究及大容量數據緩沖區的實(shí)現

作者:王紅兵 強景 周珍龍 時(shí)間:2016-07-28 來(lái)源:電子產(chǎn)品世界 收藏
編者按:為了使DDR3 SDRAM更方便、多樣地用于工程開(kāi)發(fā)中,本文對XILINX公司DDR3 SDRAM提供的MIG核進(jìn)行了分析研究,并在此基礎上實(shí)現了大容量數據緩沖區的邏輯設計。通過(guò)對系統中各模塊的作用及相互間關(guān)系的研究,發(fā)現該控制器256位接口對工程開(kāi)發(fā)十分不便,通過(guò)創(chuàng )建FIFO控制系統和讀寫(xiě)接口FIFO的方式,將接口轉換為64位。該方案對控制核重新構建并上板測試,均符合高速數據傳輸緩存的要求,使DDR3成為一個(gè)大容量且可控的高速FIFO。

摘要:為了使更方便、多樣地用于工程開(kāi)發(fā)中,本文對XILINX公司提供的進(jìn)行了分析研究,并在此基礎上實(shí)現了大容量數據緩沖區的邏輯設計。通過(guò)對系統中各模塊的作用及相互間關(guān)系的研究,發(fā)現該控制器256位接口對工程開(kāi)發(fā)十分不便,通過(guò)創(chuàng )建控制系統和讀寫(xiě)接口的方式,將接口轉換為64位。該方案對控制核重新構建并上板測試,均符合高速數據傳輸緩存的要求,使DDR3成為一個(gè)大容量且可控的高速。

本文引用地址:http://dyxdggzs.com/article/201607/294696.htm

引言

  隨著(zhù)電子行業(yè)的飛速發(fā)展,人們對于設備處理速度的期望也越來(lái)越高。其中,DDR3的出現給整個(gè)行業(yè)帶來(lái)了不可限量的跨越,這使得我們在工程中對DDR3更加青睞。DDR3(double-data-rate three synchronous dynamic random access memory)是應用在計算機及電子產(chǎn)品領(lǐng)域的一種高帶寬并行數據存儲設備,廣泛應用于工程設計中。

  Xilinx公司為DDR3提供了IP核和方便友好的用戶(hù)接口,推進(jìn)了DDR3在FPGA中的使用進(jìn)程。尤其對于高速數據的傳輸和處理,FPGA內FIFO遠不能滿(mǎn)足性能上的要求。這就使得將DDR3設計成大容量數據緩沖區成為工程中的必要需求。然而由于需求的不同,對核接口的要求也會(huì )隨之改變。Xilinx官方核的接口是256位,但實(shí)際需求中64位的居多,本文將從邏輯上對該核進(jìn)行重建。

1 的分析及重構

1.1 的結構

  控制器的主要功能是實(shí)現對DDR3 SDRAM存儲器的初始化。此外,DDR3 SDRAM控制器還可以將DDR3 SDRAM接口的上下時(shí)鐘沿數據轉變成單時(shí)鐘沿用戶(hù)數據,同時(shí)還可以產(chǎn)生周期性的刷新指令,完成對DDR3 SDRAM存儲器的動(dòng)態(tài)刷新,從而保證數據的完整性。DDR3 SDRAM控制器的結構框圖如圖1所示,其主要包括四個(gè)部分,分別是基礎模塊(infrastructure)、用戶(hù)界接口模塊(user interface)、物理層模塊(physical layer)和存儲器控制模塊(memory controller)。

  基礎模塊首先接收通過(guò)FPGA全局時(shí)鐘網(wǎng)絡(luò )的外部200MHz差分時(shí)鐘,然后通過(guò)混合模式,時(shí)鐘管理器(MMCM)產(chǎn)生用戶(hù)接口時(shí)鐘、控制模塊使用的時(shí)鐘以及DDR3存儲器的時(shí)鐘。除此之外,該模塊還生成了一個(gè)可以全局復位整個(gè)DDR3 SDRAM控制器IP核的復位信號。該模塊還包括一個(gè)延時(shí)控制單元,用來(lái)同步校準設計中的延時(shí)單元,以減少功耗。

  用戶(hù)接口模塊的主要功能是連續地輸入或輸出數據和控制命令,完成對用戶(hù)數據、控制命令以及地址等信息的接收和緩存,從而實(shí)現對數據的緩沖和同步效果。

  物理層模塊通過(guò)物理引腳與片外DDR3 SDRAM直接進(jìn)行數據通信,它可以對片外DDR3 SDRAM存儲器發(fā)出的數據進(jìn)行捕獲,同時(shí)產(chǎn)生片外DDR3 SDRAM存儲器所需要的控制信號,通過(guò)緩存把數據、命令以及地址等信號發(fā)送給片外DDR3 SDRAM,從而保證了數據信號、命令信號與地址信號的同步。

  控制模塊的主要功能是實(shí)現對DDR3 SDRAM存儲器的初始化操作。DDR3 SDRAM上電之后,首先經(jīng)過(guò)200μs的穩定期,然后等到500μs后,把時(shí)鐘使能信號CKE拉高,保持至少10ns,然后開(kāi)始ODT過(guò)程,對擴展模式寄存器和模式寄存器進(jìn)行配置,使能DLL并對DLL復位。如果信號phy_initial_done拉高,那么表示DDR3存儲器初始化完成,校準結束。初始化結束后,DDR3控制器根據DDR3 SDRAM存儲器的用戶(hù)讀寫(xiě)操作時(shí)序要求,自動(dòng)生成所需命令以及控制信號,發(fā)送給DDR3 SDRAM存儲器。當發(fā)送完命令信號之后,給用戶(hù)發(fā)送一個(gè)命令應答信號,設計人員可以根據這個(gè)命令應答信號判斷是否可以發(fā)送下一條指令。整個(gè)過(guò)程中,DDR3控制器自動(dòng)完成自刷新、激活以及預充電等命令的發(fā)送和相應操作的執行,這個(gè)過(guò)程完全不需要用戶(hù)干涉DDR3 SDRAM存儲器。

1.2 大容量DDR3緩存設計

  在本系統設計中,DDR3 SDRAM的主要功能是用于大容量數據緩存,考慮到FPGA不僅處理速度高,而且靈活性和可配置性好,故使用Xilinx公司FPGA提供的DDR3 SDRAM緩存控制器IP核可以輕松實(shí)現FPGA與外部存儲器之間的接口設計。根據FIFO的基本原理,采用Xilinx公司的FPGA和Micron公司容量為1GB的DDR3內存MT4JSF12864HZ設計實(shí)現了一種大容量虛擬FIFO緩存。

  該大容量虛擬FIFO緩存設計主要由上行FIFO、FIFO控制器、寫(xiě)接口FIFO、讀接口DDR3 SDRAM控制器、時(shí)鐘模塊以及外部的DDR3 SDRAM存儲器六部分構成。其整體結構框圖如圖2所示。DDR3 SDRAM緩存接口的設計主要集中在FPGA內部邏輯設計,具體的設計主要包括DDR3控制器設計、讀寫(xiě)FIFO接口設計、FIFO控制器設計以及時(shí)鐘模塊設計。

1.2.1 接口FIFO設計

  在該設計中,寫(xiě)FIFO接口和讀FIFO接口主要完成數據位寬的轉換以及數據的跨時(shí)鐘域處理;FIFO控制器主要完成對寫(xiě)FIFO接口和讀FIFO的控制,按照DDR3控制器用戶(hù)接口時(shí)序對用戶(hù)接口進(jìn)行讀寫(xiě)操作;DDR3 SDRAM控制器則主要完成對DDR3 SDRAM的初始化,將復雜的讀寫(xiě)時(shí)序轉化為簡(jiǎn)單的用戶(hù)讀寫(xiě)時(shí)序。

  寫(xiě)FIFO接口和讀FIFO接口主要功能是實(shí)現FPGA與DDR3 SDRAM之間的數據傳輸。由于FPGA與DDR3 SDRAM分別屬于不同的時(shí)鐘域,故在設計中需要采用兩個(gè)異步FIFO處理數據跨時(shí)鐘域傳輸的問(wèn)題。此外,由于PCI Express總線(xiàn)接口的數據位寬為64位,而DDR3 SDRAM控制器提供的用戶(hù)接口數據位寬為256位,因此,還需要通過(guò)這兩個(gè)FIFO完成數據位寬的轉換。

  當信號從一個(gè)時(shí)鐘域傳遞到另外一個(gè)時(shí)鐘域時(shí),使用異步FIFO可以解決傳輸過(guò)程中出現的亞穩態(tài)問(wèn)題。在ISE 14.2開(kāi)發(fā)平臺下設計FIFO的方法有兩種,一種是設計者自己設計FIFO的控制邏輯,然后通過(guò)CORE Generator生成DPRAM,最后將兩者連接起來(lái)構成一個(gè)FIFO;另一種是利用CORE Generator工具自動(dòng)生成一個(gè)FIFO的IP核,然后在設計中實(shí)例化即可使用。第一種方法比較費時(shí),而且有一定的難度,相對而言,第二種方法就簡(jiǎn)單很多,設計者可以不用關(guān)心FIFO實(shí)現的細節,而專(zhuān)注于其頂層的功能和應用。本設計直接調用Xilinx公司FPGA內部IP核對FIFO進(jìn)行設計。

  寫(xiě)FIFO接口包含一個(gè)異步FIFO和一個(gè)同步FIFO,異步FIFO寫(xiě)入數據位寬是64位,讀出數據位寬是256位,其寫(xiě)時(shí)鐘為250MHz的PCI-E系統時(shí)鐘,讀時(shí)鐘為200MHz的DDR3用戶(hù)接口時(shí)鐘;同步FIFO寫(xiě)入和讀出數據位寬均為256位,其讀寫(xiě)時(shí)鐘為200MHz的DDR3用戶(hù)接口時(shí)鐘。寫(xiě)FIFO接口通過(guò)兩個(gè)FIFO進(jìn)行級聯(lián)的方式加深其處理數據的深度。寫(xiě)FIFO接口的FPGA內部邏輯實(shí)現如圖3所示。

  讀FIFO接口則只包含一個(gè)異步FIFO,其寫(xiě)入數據位寬是256位,讀出數據位寬是64位,寫(xiě)時(shí)鐘為200MHz的DDR3用戶(hù)接口時(shí)鐘,讀時(shí)鐘為250MHz的PCI-E系統時(shí)鐘。讀FIFO接口的FPGA內部邏輯實(shí)現如圖4所示。

1.2.2 FIFO控制器

  FIFO控制器的主要功能是實(shí)現對寫(xiě)FIFO接口、讀FIFO接口與DDR3 SDRAM之間數據交互的控制。由于DDR3 SDRAM內存工作時(shí)鐘頻率為400MHz,此時(shí)其理論傳輸帶寬為51.2Gbps,遠遠高于讀FIFO接口和寫(xiě)FIFO接口的數據傳輸帶寬,故FIFO控制器需要根據讀寫(xiě)FIFO所緩存的數據量,對DDR3 SDRAM總線(xiàn)進(jìn)行分時(shí)復用。DDR3讀寫(xiě)控制狀態(tài)機設計如圖5所示。下面就將對各狀態(tài)含義與跳轉條件做簡(jiǎn)要說(shuō)明:

  ddr3_ctrl_s0:復位或異常情況下,默認等待狀態(tài)。當DDR3控制器完成初始化后,即phy_init_done有效時(shí),跳轉到ddr3_ctrl _s1狀態(tài)。

  ddr3_ctrl _s1:當DDR3內存不滿(mǎn)且DDR3寫(xiě)接口的FIFO非空時(shí),如果命令地址FIFO準備好接收命令且寫(xiě)數據FIFO準備好接收數據,則跳轉到ddr3_ctrl _s2狀態(tài),同時(shí)將app_wdf_wren置為有效,將DDR3寫(xiě)FIFO接口的讀使能置為有效;當DDR3內存不空且DDR3讀接口FIFO不滿(mǎn)時(shí),如果命令地址FIFO準備好接收命令,則跳轉到ddr3_ctrl _s4狀態(tài);其他情況狀態(tài)不跳轉。

  ddr3_ctrl _s2:當寫(xiě)入數據FIFO準備好接收數據時(shí),跳轉到ddr3_ctrl _s3狀態(tài),同時(shí)將app_wdf_end置為有效,指示當前是最后一個(gè)有效數據,在給出寫(xiě)命令和地址的同時(shí)將使能置為有效;其他情況狀態(tài)不跳轉。

  ddr3_ctrl _s3:當命令地址FIFO準備好接收命令且寫(xiě)數據FIFO準備好接收數據時(shí),如果寫(xiě)入次數等于32,此時(shí)剛好寫(xiě)滿(mǎn)一行,則跳轉到ddr3_ctrl _s1狀態(tài),同時(shí)將app_en、app_wdf_wren和DDR3寫(xiě)FIFO接口的讀使能置為無(wú)效;如果寫(xiě)入次數小于32,即沒(méi)有寫(xiě)滿(mǎn)一行數據,則跳轉到ddr3_ctrl_s2狀態(tài),同時(shí)將app_wdf_wren和DDR3上行FIFO讀使能置為有效。當命令地址FIFO沒(méi)有準備好接收命令但寫(xiě)數據FIFO準備好接收數據時(shí),將app_wdf_wren和DDR3寫(xiě)FIFO接口的讀使能置為無(wú)效,同時(shí)將app_wdf_end置為無(wú)效,狀態(tài)不跳轉。

  ddr3_ctrl _s4:狀態(tài)跳轉到ddr3_ctrl _s5,在給出讀命令和地址的同時(shí)將使能置為有效。

  ddr3_ctrl _s5:當命令地址FIFO準備好接收命令,如果讀出次數等于32,此時(shí)剛好讀完一行數據,狀態(tài)跳轉到ddr3_ctrl _s1;如果讀出次數小于32,即沒(méi)有讀完一行數據,則跳轉到ddr3_ctrl_s4狀態(tài);其他情況時(shí)將app_en置為無(wú)效,狀態(tài)不跳轉。

1.2.3 時(shí)鐘模塊設計

  在本系統的時(shí)鐘模塊設計中,時(shí)鐘模塊的具體結構如圖6所示。它包括一個(gè)IBUFGDS(差分信號輸入緩沖)、一個(gè)MMCM(混合模式時(shí)鐘管理器)和兩個(gè)BUFG(全局時(shí)鐘輸出緩沖)。在進(jìn)行設計的時(shí)候,需要用戶(hù)提供給DDR3 SDRAM控制器兩個(gè)時(shí)鐘,這兩個(gè)時(shí)鐘分別是DDR3 SDRAM存儲器工作的系統時(shí)鐘(ddr3_sys_clk)和時(shí)延單元的參考時(shí)鐘(ddr3_clk_ref)。由于DDR3 SDRAM要滿(mǎn)足系統的傳輸帶寬要求,設計的時(shí)候需要其工作時(shí)鐘頻率為400MHz,因此,DDR3控制器上以工作時(shí)鐘頻率運行的系統時(shí)鐘頻率為400MHz,提供給時(shí)延單元的參考時(shí)鐘頻率為200MHz。

  考慮到系統提供的是來(lái)自全局時(shí)鐘網(wǎng)絡(luò )的200MHz差分時(shí)鐘,但是在DRR3控制器定制的時(shí)候,在MIG設置界面選擇的時(shí)鐘輸入形式是單端輸入,因此,首先需要將輸入的全局差分時(shí)鐘連接到IBUFGDS(差分信號輸入緩沖)上,然后再通過(guò)一個(gè)MMCM倍頻出DDR3 SDRAM控制器所需要的兩個(gè)時(shí)鐘。該時(shí)鐘模塊的FPGA內部邏輯實(shí)現如圖7所示。

2 運行和測試

  本文測試所選芯片為XILINX V6系列FPGA,所選環(huán)境為ISE14.6。在該環(huán)境中創(chuàng )建支持DDR3的IP核,根據設計目的對核進(jìn)行修改。將程序燒寫(xiě)至FPGA后,可通過(guò)邏輯分析儀ChipScope來(lái)抓取內部想要觀(guān)察的信號。下圖是實(shí)時(shí)抓取的FIFO數據。

  其中fifo_q_ddr3_us是256位的核接口信號,fifo_data_ddr3_us和fifo_data_q_ds分別為改造后的對外接口,均為64位。由上述所抓取的fifo_data_ddr3_us的數據可以看到,數據最先到達該fifo,然后經(jīng)過(guò)緩存進(jìn)入256位fifo_q_ddr3_us,最后存入DDR3。讀出數據是從fifo_data_q_ds輸出。測試數據是遞增的,由上述信號可以看到,該改造達到了預期目的。

3 結束語(yǔ)

  本文通過(guò)基于FPGA DDR3 SDRANM IP核的邏輯重構,將256位寬的接口改造為64位接口,使得工程上數據接口更為通用。為后期工程開(kāi)發(fā)提供便捷可控的接口。隨著(zhù)電子行業(yè)的飛速發(fā)展,對高速大容量緩存的需求也隨之增大。怎樣利用當前的快速緩存技術(shù)于自己的設計中成為開(kāi)發(fā)中的一個(gè)門(mén)檻。本文正是結合實(shí)際需求給出了這一答案。

參考文獻:

  [1]Virtex-6 FPGA Memory Interface Solutions (UG406). Xilinx Corporation,2010.

  [2]夏玉立, 雷宏, 黃瑤.用Xilinx FPGA實(shí)現DDR SDRAM控制器[J].微計算機信息. 2007(26).

  [3]陳雨, 陳科, 安濤.高速圖像處理系統中DDR2-SDRAM接口的設計[J].現代電子技術(shù). 2011,34(12).

  [4]任穎, 黃建國.基于FPGA的DDR2 SDRAM控制器接口的簡(jiǎn)化設計方法及實(shí)現[J].電子質(zhì)量.2008(11):31-33.

  [5]Xilinx. Virtex-6 FPGA user guide[R]. USA: Xilinx,2008.

  [6]庾志衡, 葉俊明, 鄧迪文.基于FPGA與DDR2 SDRAM的大容量異步FIFO緩存設計[J].微型機與應用.2011,30(6).

本文來(lái)源于中國科技期刊《電子產(chǎn)品世界》2016年第7期第43頁(yè),歡迎您寫(xiě)論文時(shí)引用,并注明出處。



關(guān)鍵詞: MIG核 FIFO DDR3 SDRAM 201608

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>