• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于FPGA的DDR2_SDRAM控制器用戶接口設(shè)計(jì)

      2021-01-21 12:35:56閆永立李勇彬馬嘉莉
      電子設(shè)計(jì)工程 2021年1期
      關(guān)鍵詞:用戶端存儲(chǔ)器時(shí)序

      韓 笑 ,閆永立 ,2,李勇彬 ,馬嘉莉 ,2,吳 斌 ,2

      (1.中國科學(xué)院大學(xué),北京 100049;2.中國科學(xué)院微電子研究所,北京 100029;3.湖南大學(xué),湖南 長沙 410082)

      隨著現(xiàn)代社會(huì)數(shù)字化的高速發(fā)展,大容量數(shù)據(jù)存儲(chǔ)系統(tǒng)作為各個(gè)系統(tǒng)中的核心子部分,其重要性不言而喻,對(duì)數(shù)據(jù)處理的速度、實(shí)時(shí)性、穩(wěn)定性以及功耗等要求也越來越重要。市面上可供選的主流存儲(chǔ)器有FLASH,DRAM,SRAM等,而由于JEDEC標(biāo)準(zhǔn)的DDR SRAM系列存儲(chǔ)器相較于FLASH、DRAM,可以在時(shí)鐘雙沿工作,數(shù)據(jù)傳輸速率高,帶寬大,并且存儲(chǔ)相同數(shù)據(jù)量信息消耗更少晶體管,因此也有容量大、功耗低等優(yōu)點(diǎn),特別適合對(duì)海量數(shù)據(jù)存儲(chǔ)的場(chǎng)景。鑒于DDR接口讀寫時(shí)序不是特別容易簡單實(shí)現(xiàn),這就推動(dòng)了商家研發(fā)對(duì)用戶使用友好的存儲(chǔ)器控制器??刂破骺梢酝瓿勺詣?dòng)刷新、存儲(chǔ)器掉電重啟、讀寫時(shí)序控制等底層基本功能,使用者基于簡單控制器接口進(jìn)行二次開發(fā),就可以向存儲(chǔ)器正確讀寫數(shù)據(jù)。這樣可以縮短開發(fā)周期,減少設(shè)計(jì)人員的工作量,簡化系統(tǒng)設(shè)計(jì)??紤]到DDR系列存儲(chǔ)器性價(jià)比等實(shí)際因素,設(shè)計(jì)選用DDR2作為緩存存儲(chǔ)器,使用Synopysy公司設(shè)計(jì)的DDR2 Controller商用IP[1]。在驗(yàn)證硬件平臺(tái)方面,選用Altera公司StraixIII開發(fā)板外接DDR2 SDRAM內(nèi)存條。此外,因?yàn)楫a(chǎn)品接口標(biāo)準(zhǔn)不統(tǒng)一,為了在信號(hào)時(shí)序方面將Synopysy與Altera兩家廠商的存儲(chǔ)器控制器模塊與PHY模塊匹配,設(shè)計(jì)了專門接口轉(zhuǎn)換模塊。

      綜合上述分析,文中在Stratix系列FPGA開發(fā)板上借助硬件描述語言設(shè)計(jì)了一套控制器用戶接口設(shè)計(jì)方案。

      1 整體架構(gòu)

      系統(tǒng)使用Altera公司開發(fā)的EDA軟件Quartus II例化的Uniphy IP[2]模塊作為PHY(Physical Layer Interface,物理層接口)層,整體架構(gòu)如圖1所示。

      圖1 整體架構(gòu)圖

      整體模塊一共包括四大模塊:

      1)用戶接口模塊:上位機(jī)數(shù)據(jù)的接收、緩存,通過AXI 3.0協(xié)議[3]接口將配置信息、待存數(shù)據(jù)及相關(guān)控制命令發(fā)送給DDR2控制器模塊。

      2)DDR2控制器模塊:上電后對(duì)存儲(chǔ)器進(jìn)行一系列配置,完成初始化操作;在使用者進(jìn)行數(shù)據(jù)讀寫任務(wù)時(shí),將用戶單沿操作的數(shù)據(jù)鏈路通過電路轉(zhuǎn)換成符合存儲(chǔ)器雙沿?cái)?shù)據(jù)的傳輸要求。在寫操作時(shí)將用戶發(fā)送過來的待發(fā)送數(shù)據(jù)以及數(shù)據(jù)寫傳輸控制信息,編碼成符合存儲(chǔ)器接口標(biāo)準(zhǔn)制定的寫操作指令,在讀操作時(shí)先將用戶側(cè)發(fā)來的讀地址、讀數(shù)據(jù)長度編碼成讀指令發(fā)送給存儲(chǔ)器,控制存儲(chǔ)器讀出相應(yīng)數(shù)據(jù),然后從存儲(chǔ)器反饋回的信息中解析出讀出的數(shù)據(jù)發(fā)送給用戶端??刂破髅扛粢欢螘r(shí)間都會(huì)啟動(dòng)自動(dòng)刷新命令,用于保證存儲(chǔ)器內(nèi)數(shù)據(jù)不丟失。

      3)橋接模塊:主要負(fù)責(zé)Synopysy控制器IP與Altera Uniphy硬核IP接口信號(hào)轉(zhuǎn)換,實(shí)現(xiàn)不同時(shí)序要求的IP間信號(hào)正常交互。

      4)PHY:使用Quartus II軟件提供Uniphy硬核IP作為PHY層,發(fā)送控制器信號(hào)和接收來自物理通路的信號(hào)[5-6]。

      2 模塊介紹

      2.1 用戶接口模塊

      作為數(shù)據(jù)緩存系統(tǒng)的核心模塊之一,用戶接口模塊細(xì)分成控制邏輯模塊Cu、配置模塊、數(shù)據(jù)發(fā)送接收模塊等3個(gè)小模塊。

      通過異步FIFO進(jìn)行時(shí)鐘域隔離并將上位機(jī)指令信息緩存,控制邏輯模塊Cu負(fù)責(zé)協(xié)調(diào)配置模塊Configure和數(shù)據(jù)發(fā)送接收模塊Host的工作,分別啟動(dòng)兩個(gè)模塊通過AXI 3.0協(xié)議接口與控制器模塊交互,交互內(nèi)容包括上位機(jī)提供的配置、控制命令及緩存數(shù)據(jù)等。

      cal_success為Uniphy IP發(fā)出的校準(zhǔn)信號(hào)[7],為高電平時(shí)表示已完成PHY層校準(zhǔn),可以與存儲(chǔ)器進(jìn)行數(shù)據(jù)傳輸。init為控制器IP模塊反饋的信號(hào),為低電平時(shí)指DDR2 SDRAM與控制器已經(jīng)完成初始化操作。在控制器上電初始化期間根據(jù)用戶端配置指令安排,完成控制器工作模式設(shè)置、存儲(chǔ)器時(shí)序參數(shù)設(shè)定等任務(wù)[8]。

      在完成PHY校準(zhǔn)和初始化操作以后,數(shù)據(jù)發(fā)送接收模塊Host就可以根據(jù)用戶端讀寫指令,在需要存入數(shù)據(jù)時(shí)發(fā)出寫操作指令,同時(shí)將要寫入存儲(chǔ)器的地址與待寫數(shù)據(jù)一并發(fā)出,與之類似,需要讀取數(shù)據(jù)時(shí)發(fā)送給控制器讀操作指令并將要讀取存儲(chǔ)器的地址信息一并發(fā)出。

      2.2 DDR2控制器模塊

      由于DDR2操作流程復(fù)雜,因此要想正確地讀寫數(shù)據(jù),就需要遵循相應(yīng)JEDEC標(biāo)準(zhǔn)設(shè)計(jì)存儲(chǔ)器工作流程,圖2介紹了DDR2存儲(chǔ)器在工作時(shí)完整的狀態(tài)轉(zhuǎn)換[9-10],由該圖可以清楚地看到各狀態(tài)跳轉(zhuǎn)所需要的命令或者需滿足的條件。

      狀態(tài)機(jī)描述了DDR2各個(gè)狀態(tài)的轉(zhuǎn)換以及轉(zhuǎn)換時(shí)所涉及的一些命令。DDR2控制器的設(shè)計(jì)實(shí)質(zhì)上是圍繞著該狀態(tài)機(jī)的設(shè)計(jì)進(jìn)行的,以確保進(jìn)行正常工作。

      正如圖2所示,在用戶端發(fā)起讀寫操作前,需要存儲(chǔ)器在上電狀態(tài)下進(jìn)行校準(zhǔn)和若干初始化過程。在這期間,根據(jù)用戶端配置要求,將控制器中對(duì)工作模式寄存器(MR)等多個(gè)配置寄存器進(jìn)行設(shè)定。為了配置這些寄存器,用戶端需要提供CAS指令延遲、DRAM大小、DRAM數(shù)量、自刷新的周期等配置信息。只有在控制器初始化完成后,用戶端才可以對(duì)DDR2存儲(chǔ)器進(jìn)行正式的讀寫任務(wù),并且由于DDR2的結(jié)構(gòu)特點(diǎn),需先選定Bank以及該Bank下所在行(Bank地址和行地址同時(shí)發(fā)出)后,再選定列地址及發(fā)出讀寫指令。

      圖2 DDR2簡單狀態(tài)轉(zhuǎn)換圖

      2.3 橋接模塊及PHY模塊

      橋接模塊處理Synopsys的Controller信號(hào),根據(jù)不同的類別做處理(分成控制通路信號(hào)、寫數(shù)據(jù)通路、讀數(shù)據(jù)通路)以匹配UniPHY接口連接與時(shí)序[12],并增加UniPHY所需要的控制信號(hào)處理。兩家公司在PHY-Controller之間存在接口時(shí)序和連接的差別。

      2.3.1 接口對(duì)比

      Altera的UniPHY與controller之間的接口有自己定義的AFI接口規(guī)范,接口分類為SDR系列、MEM接口、時(shí)鐘及復(fù)位。

      SynPHY的接口信號(hào)包括DLL的配置、IO的配置及控制、SDR系列(和Altera的部分相似,還有一些時(shí)序上不同)、PHY的配置部分、MEM接口。

      2.3.2 工作模式對(duì)比

      Altera controller工作方式主要有Half rate與Full rate模式,在Full rate模式時(shí),和Synopsys的模式相似,即Local側(cè)、Controller側(cè)與Memory側(cè)工作時(shí)鐘相同,單沿觸發(fā)(均在上升沿工作),數(shù)據(jù)位寬是Memory側(cè)的兩倍。

      2.3.3 時(shí)鐘域?qū)Ρ?/p>

      從時(shí)鐘域看(full rate前提下)[13],Altera UniPHY提供給Memory和Local、Controller側(cè)的時(shí)鐘同頻同相,而SynPHY的是同頻不同相,Memory側(cè)的時(shí)鐘要滯后 90°。

      2.3.4 接口時(shí)序?qū)Ρ?/p>

      1)指令與地址不同,Synopsys指令持續(xù)時(shí)間為兩個(gè)clock,而Altera相同功能指令只維持一個(gè)clock,指令格式相同,連續(xù)的寫指令之間Synopsys夾的是nop指令,Altera的是 deselect device指令[14]。

      2)都是通過數(shù)據(jù)有效信號(hào)標(biāo)志輸入數(shù)據(jù)有效及維持的時(shí)間。

      3)Synopsys中沒有類似的afi_dqs_burst信號(hào),UniPHY中afi_dqs_burst必須比afi_wdata_valid信號(hào)提前一個(gè)周期到達(dá)。

      4)Memory側(cè),Altera的 UniPHY命令和SynPHY的一致。

      5)對(duì)于寫數(shù)據(jù)和寫數(shù)據(jù)有效信號(hào)的延遲,UniPHY中根據(jù)afi_wlat需要調(diào)整數(shù)據(jù)相對(duì)于指令的延遲,范圍為0~63。

      Synopsys中的數(shù)據(jù)與指令的時(shí)序關(guān)系是固定的,相當(dāng)于Altera的afi_wlat=0情況。

      PHY指的是DDR2控制器和DDR2存儲(chǔ)芯片之間的電路部分,保證讀寫過程中DQS信號(hào)能夠以精確的相位偏移發(fā)送和采集數(shù)據(jù)[15],目的是實(shí)現(xiàn)數(shù)據(jù)高速穩(wěn)定地傳輸。

      3 系統(tǒng)測(cè)試

      文中基于Intel的EP3SL150F1152C2器件進(jìn)行了設(shè)計(jì)實(shí)現(xiàn),并在Intel FPGA Stratix III開發(fā)板上進(jìn)行功能驗(yàn)證。

      Modelsim仿真AXI突發(fā)長度為1,大小為4 kB數(shù)據(jù)的測(cè)試案例,讀寫命令正確寫入,讀出數(shù)據(jù)結(jié)果正確,如圖3所示。

      圖3 仿真測(cè)試

      多組測(cè)試案例如表1所示。

      表1 測(cè)試案例

      利用Quartus II 13.1 EDA工具進(jìn)行了綜合、時(shí)序約束、生成網(wǎng)表等。處理后綜合結(jié)果如圖4所示,報(bào)告表明,系統(tǒng)可以達(dá)到200 MHz頻率設(shè)計(jì)要求。

      在進(jìn)行系統(tǒng)硬件功能驗(yàn)證時(shí),使用ROM IP預(yù)先存入待存數(shù)據(jù)代替上位機(jī)指令緩存FIFO,使用SignalTap導(dǎo)出讀出數(shù)據(jù)文件,并與寫入數(shù)據(jù)文件對(duì)比,結(jié)果正確。

      4 結(jié)束語

      針對(duì)現(xiàn)代數(shù)據(jù)緩存系統(tǒng)的要求,文中在Stratix系列FPGA開發(fā)板上借助硬件描述語言設(shè)計(jì)了一套控制器用戶接口設(shè)計(jì)方案。保證數(shù)據(jù)實(shí)時(shí)緩存。使用硬件語言實(shí)現(xiàn)了用戶接口模塊和橋接模塊的設(shè)計(jì),解決了控制器與PHY層的接口匹配問題,達(dá)到了大批量連續(xù)數(shù)據(jù)讀寫存儲(chǔ)的目的。最后通過FPGA完成了對(duì)系統(tǒng)整體的功能驗(yàn)證。

      圖4 綜合報(bào)告

      猜你喜歡
      用戶端存儲(chǔ)器時(shí)序
      時(shí)序坐標(biāo)
      基于改進(jìn)支持向量機(jī)的用戶端用電負(fù)荷預(yù)測(cè)研究
      Android用戶端東北地區(qū)秸稈焚燒點(diǎn)監(jiān)測(cè)系統(tǒng)開發(fā)與應(yīng)用
      基于Sentinel-2時(shí)序NDVI的麥冬識(shí)別研究
      靜態(tài)隨機(jī)存儲(chǔ)器在軌自檢算法
      基于三層結(jié)構(gòu)下機(jī)房管理系統(tǒng)的實(shí)現(xiàn)分析
      一種太陽能戶外自動(dòng)花架電氣系統(tǒng)簡介
      一種毫米波放大器時(shí)序直流電源的設(shè)計(jì)
      電子制作(2016年15期)2017-01-15 13:39:08
      存儲(chǔ)器——安格爾(墨西哥)▲
      DPBUS時(shí)序及其設(shè)定方法
      河南科技(2014年15期)2014-02-27 14:12:36
      绥阳县| 平果县| 大洼县| 邵阳市| 白山市| 昆明市| 西青区| 金华市| 扎赉特旗| 林甸县| 涡阳县| 枝江市| 津市市| 巫溪县| 文水县| 洛扎县| 阜新| 绵竹市| 西充县| 盐边县| 洛阳市| 九江县| 新密市| 泰州市| 漳州市| 周宁县| 吉林省| 伊吾县| 金川县| 沈丘县| 建宁县| 三河市| 黔西县| 宜丰县| 容城县| 扶沟县| 盐亭县| 呼玛县| 广元市| 息烽县| 介休市|