<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術 > 設計應用 > 基于Virtex5的PCI-Express總線接口設計

          基于Virtex5的PCI-Express總線接口設計

          作者: 時間:2010-03-04 來源:網(wǎng)絡 收藏

          本文引用地址:http://www.ex-cimer.com/article/188330.htm

          3 實現(xiàn)

          3.1 接口硬件設計

          接口硬件主要由主控FPGA模塊,電源管理模塊,DDR高速緩存模塊、和時鐘管理模塊組成。硬件結構框圖如圖3所示。

          FPGA是整個設計的最關鍵部分,主要實現(xiàn):硬核;在硬核的用戶接口和傳輸接口實現(xiàn)傳輸本地的時序邏輯;并且在其內(nèi)部完成DDR控制時序邏輯。FPGA是接口和DDR內(nèi)存單元數(shù)據(jù)傳輸?shù)耐ǖ?。這里選擇Xilinx系列FPGA中的V5LX50T芯片,封裝形式為FFGll36。

          在整個電路中,F(xiàn)PGA的功耗最大,因此在電源模塊設計中,重點考慮FPGA因素。FPGA的功耗與設計有關,主要取決于器件的型號、設計的時鐘頻率、內(nèi)部設計觸發(fā)器翻轉率和整個FPGA的資源利用率。這里使用Xilinx功耗分析工具XPower進行功耗分析,根據(jù)XPower提供的動態(tài)功耗和靜態(tài)功耗分析結果,選擇TI公司的相關電源模塊。

          DDR是比較常用的高速緩存單元,這里選擇使用現(xiàn)代公司的HY5DU56822DT-D4,在PCI-Express傳輸過程中,對時鐘的穩(wěn)定性要求很高; FPGA內(nèi)部的CMT模塊的時鐘綜合處理能力可能達不到預想的效果,這里使用專門的時鐘管理單元提供時鐘,選擇的是ICS874003芯片,通過FPGA管腳控制其時鐘綜合的效果。

          3.2 軟件設計

          在實現(xiàn)PCI-Express數(shù)據(jù)傳輸過程中,構建數(shù)據(jù)傳輸流程如圖4所示。

          數(shù)據(jù)從PC內(nèi)存通過PCI-Express接口向下傳輸?shù)紽PGA內(nèi)部,F(xiàn)PGA內(nèi)部DDR控制邏輯再將數(shù)據(jù)傳輸?shù)降腄DR內(nèi)存芯片中存儲,向下傳輸完畢后,F(xiàn)PGA內(nèi)部邏輯從DDR芯片中將存儲的數(shù)據(jù)讀出,并且給每個數(shù)據(jù)按字節(jié)加‘1’,然后通過PCI-Express接口,再將數(shù)據(jù)傳輸回PC內(nèi)存,PC內(nèi)存程序對數(shù)據(jù)進行校驗。

          4 結 語

          系列FPGA芯片內(nèi)嵌PCI-Express End-point Block硬核,為實現(xiàn)單片可配置PCI-Express解決方案提供了可能?;赩irtex5 FPGA的PCIExpress設計實現(xiàn)方式簡單、配置靈活,適合于各種應用領域,降低了設計成本,縮短了產(chǎn)品上市時間,保證了產(chǎn)品的功能性和易用性,開創(chuàng)了高效率PCI Express開發(fā)的新時代。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();