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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應用 > 基于RocketIO接口的高速互連應用研究與實現(xiàn)

          基于RocketIO接口的高速互連應用研究與實現(xiàn)

          作者: 時間:2012-04-25 來源:網(wǎng)絡(luò) 收藏


          3 的信號完整性設(shè)計
          在實際中,參考時鐘、電源供電以及傳輸線路的設(shè)計與布局是影響數(shù)據(jù)傳輸效果的最重要因素。為了保證Rocket IO能可靠工作,在設(shè)計過程中需要注意以下的問題:
          (1)電源供電。該系列FPGA器件中每個串行收發(fā)器包括5類電源引腳,分別為MGTAVCCPLL,MGTAVCC,MGTAVTTRX,MGTAVTT TX,MGTAVTTRXC,這些引腳對噪聲的影響都非常敏感,為了保證電路能夠可靠工作,RocketIO需要和周圍的噪聲源進行隔離。因此需要對RocketIO收發(fā)器進行專門的供電,且每個供電引腳必須有獨立的LC濾波網(wǎng)絡(luò),其連接關(guān)系如圖5所示。

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

          f.JPG


          (2)高速信號。RocketIO高速串行收發(fā)器采用高速差分信號線,由于所傳輸?shù)牟罘中盘栴l率很高,高速差分對走線應當有最高的優(yōu)先級,兩根差分信號線必須在長度上盡量匹配,長度失配會產(chǎn)生共模噪聲和輻射,嚴重的失配會產(chǎn)生時鐘抖動和不可預知的時序問題,差分線必須盡量匹配,端接電阻50 Ω和75 Ω可選,50 Ω用于芯片和芯片之間互連,75 Ω用于芯片和電纜之間互連;高速差分線不要打孔,要布在電路板中同一層。
          (3)參考時鐘。RocketIO不能使用經(jīng)過數(shù)字時鐘管理模塊(DCM)倍頻的參考時鐘,因為DCM倍頻會引入過大的時鐘抖動,在RocketIO的高速數(shù)據(jù)傳輸條件下會引起不必要的錯誤。RocketIO的時鐘由差分時鐘輸入后,只經(jīng)過一級BUFG,將時鐘引入FPGA的全局時鐘樹,然后直接連入到RocketIO的參考時鐘引腳上。

          4 測試驗證
          在完成硬件設(shè)計后,可利用ChipScope Proh分析工具測試RocketIO的工作性能,通過內(nèi)置在收發(fā)器內(nèi)的誤碼率測試器,設(shè)置RocketIO為串行閉環(huán)方式,并運行軟件進行測試即可得到實時的數(shù)據(jù)傳輸狀態(tài)。如圖6所示可觀察到鏈路上的傳輸特性,并可得誤碼率可達到10-12,符合設(shè)計指標要求。

          a.JPG



          5 結(jié)語
          本文從Virtex5系列FPGA的RocketIO高速串行收發(fā)器入手,根據(jù)設(shè)計需要闡述了RapidIO協(xié)議和FC協(xié)議高速傳輸?shù)脑O(shè)計思想及工作原理。并分析了高速傳輸在硬件設(shè)計過程需要注意的一些問題,為高速接口設(shè)計的奠定了基礎(chǔ),具有一定的科研價值和實踐意義。


          上一頁 1 2 3 下一頁

          評論


          相關(guān)推薦

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

          關(guān)閉
          看屁屁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); })();