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

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計應(yīng)用 > 在FPGA中實現(xiàn)源同步LVDS接收正確字對齊

          在FPGA中實現(xiàn)源同步LVDS接收正確字對齊

          作者: 時間:2009-08-03 來源:網(wǎng)絡(luò) 收藏

          在串行數(shù)據(jù)傳輸中,數(shù)據(jù)接收端需要一些特定的信息來恢復(fù)出正確的字邊界,以確定串行碼流中哪些比特屬于原始并行數(shù)據(jù)里的同一時鐘節(jié)拍里的數(shù)據(jù),這一處理過程稱為字對齊(Word Aligner)。一些標準的協(xié)議會定義特殊的碼型(常見的碼型如8B/10B編碼中的K28.5)用于字對齊處理。另一些帶源同步時鐘的接口,通常會利用低頻的源同步時鐘來攜帶字對齊信息,用于接收端的正確恢復(fù)。對上述兩種方案都可以進行正確處理。那么,如何中利用低頻源同步時鐘實現(xiàn)低壓差分信號()接收字對齊呢?

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


          在串行數(shù)據(jù)傳輸中,數(shù)據(jù)接收端需要一些特定的信息來恢復(fù)出正確的字邊界,以確定串行碼流中哪些比特屬于原始并行數(shù)據(jù)里的同一時鐘節(jié)拍里的數(shù)據(jù),這一處理過程稱為字對齊(Word Aligner)。一些標準的協(xié)議會定義特殊的碼型(常見的碼型如8B/10B編碼中的K28.5)用于字對齊處理。另一些帶源同步時鐘的接口,通常會利用低頻的源同步時鐘來攜帶字對齊信息,用于接收端的正確恢復(fù)。對上述兩種方案都可以進行正確處理。對于標準協(xié)議,F(xiàn)PGA通常都會有知識產(chǎn)權(quán)(IP)模塊提供。本文主要討論在FPGA中利用低頻源同步時鐘實現(xiàn)低壓差分信號(LVDS)接收字對齊的設(shè)計方法及步驟。


          LVDS已經(jīng)成為業(yè)界高速傳輸最普遍應(yīng)用的差分標準。LVDS的優(yōu)勢包括:由于采用差分信號帶來的對共模噪聲的免疫能力,進而提高了抗噪聲能力;功率消耗較小,噪聲較小等。由于LVDS有比較好的抗躁聲特性,它可以采用低至幾百毫伏的信號擺幅,進而可以支持更高的數(shù)據(jù)速率。


          LVDS串行器/解串器(SERDES)可以完成多位寬度的并行信號到LVDS串行信號的轉(zhuǎn)換以及反方向操作,如圖1所示。有些器件提供圖1中的隨路時鐘,但有些器件可能并不提供,這時LVDS解串器還必須具有時鐘恢復(fù)(CDR)功能。市面上有各種規(guī)格的LVDS SERDES器件,此外FPGA或其它一些器件也都能集成LVDS SERDES模塊。

          圖1:LVDS串行器/解串器的功能示意圖。


          圖1:LVDS串行器/解串器的功能示意圖。


          為確保正確的數(shù)據(jù)傳送,通過LVDS接收器后必須能恢復(fù)字順序,即輸入到LVDS串行器的最高比特能夠正確地出現(xiàn)在解串器恢復(fù)輸出數(shù)據(jù)的最高比特位置上,至少是需要預(yù)先知道出現(xiàn)在哪個比特位置上后再進行調(diào)整。圖2和圖3分別給出了4位寬度下字順序得到保留和沒有得到保留的例子。對于圖3的情況,需要采用一種方法找把字順序調(diào)整過來。

          圖2:字順序得到保留。
          圖2:字順序得到保留。

          圖3:字順序沒有得到保留。
          圖3:字順序沒有得到保留。


          字順序的調(diào)整通常采用尋找訓(xùn)練碼來進行。一些標準的協(xié)議通常會定義特殊的碼型來進行字對齊處理,比如8B/10B編碼中K28.5碼型的主要功能就是字對齊處理。發(fā)送端在有效數(shù)據(jù)中插入K28.5碼型,接收端在收到的數(shù)據(jù)中尋K28.5碼型,找到之后以這個碼型為參考得到正確的并行數(shù)據(jù)輸出。此外,諸如SDH協(xié)議就利用幀頭位置的A1A2字節(jié)來進行字對齊處理。


          另外一些相對低速的LVDS接口也利用低頻的源同步時鐘來攜帶字對齊信息,以便在接收端實現(xiàn)正確的數(shù)據(jù)恢復(fù)。這里的低頻源同步時鐘也如圖1中的隨路時鐘,LVDS數(shù)據(jù)和隨路時鐘之間的倍數(shù)關(guān)系通常等于LVDS串行化時的倍數(shù)因子。比如,德州儀器(TI)的SN65LVDS95 LVDS發(fā)送器,不僅可完成21:3的LVDS串行化發(fā)送,還將21位的并行數(shù)據(jù)和時鐘串行化成3路LVDS數(shù)據(jù)輸出和1路時鐘輸出。串行化因子的值等于7,所以輸出時鐘的頻率是LVDS數(shù)據(jù)速率的七分之一。通過這個隨路時鐘,配套的解串器SN65LVDS96就能夠正確恢復(fù)并行數(shù)據(jù)。


          與這類單獨的LVDS SERDES器件相比,F(xiàn)PGA集成LVDS模塊能提供更高的集成度,并簡化硬件設(shè)計、節(jié)省PCB面積,從而降低應(yīng)用成本。高端FPGA還在I/O單元里固化了LVDS串行器/解串器,支持非常高的速率,比如Altera公司的Stratix III系列。


          Stratix III FPGA系列是Altera公司基于TSMC 65nm工藝的高端FPGA,是業(yè)界高密度高性能可編程邏輯器件中,功耗最低的產(chǎn)品系列。Stratix III 器件可以同時提供最多276對LVDS串行化發(fā)送模塊和276對LVDS解串行化接收模塊,每路LVDS最高可以支持1.6Gbps。此外,它還獨家提供可編程的輸出擺幅和預(yù)加重功能,以支持長距離背板傳送,如圖4所示。

          圖4:Stratix III 支持可編程的輸出擺幅(Vs(p-p))和預(yù)加重(Vpp(p-p))。


          圖4:Stratix III 支持可編程的輸出擺幅(Vs(p-p))和預(yù)加重(Vpp(p-p))。


          圖5顯示了Stratix III的LVDS接收器中固化在I/O單元里的模塊。源同步的低頻時鐘rx_inclk通過PLL倍頻移相后得到DIFFI/OCLK,對輸入數(shù)據(jù)rx_in進行采樣,采樣后的數(shù)據(jù)可以進行最高因子為10的解串行化。

          圖5:Stratix III I/O固化的LVDS接收器。


          圖5:Stratix III I/O固化的LVDS接收器。


          由于FPGA具有非常高的靈活性,比如支持不同LVDS輸入數(shù)據(jù)和輸入時鐘之間的倍頻關(guān)系,以及不同的解串行化因子,所以Stratix III LVDS硬核模塊的輸出字順序通常是不確定的,每次上電或者復(fù)位后字順序都有可能發(fā)生變化,使用時需要根據(jù)特殊碼型進行字對齊處理。
          當輸入到FPGA的數(shù)據(jù)和時鐘之間的倍數(shù)關(guān)系等于解串器的解串行化因子時,F(xiàn)PGA與單獨的LVDS解串器一樣,有確定的字順序輸出,可以在沒有訓(xùn)練碼型的情況下繼續(xù)正常應(yīng)用。圖6是解串行化因子為7時的時序圖。假設(shè)隨路時鐘的上升沿對應(yīng)數(shù)據(jù)的最高比特,在FPGA內(nèi)部,PLL會從隨路時鐘產(chǎn)生一個進行過相位調(diào)整的7倍頻率采樣時鐘。此時鐘對輸入數(shù)據(jù)進行采樣后送入解串器,通過控制解串器的裝載時鐘相位,得到確定的并行數(shù)據(jù)輸出字順序。裝載時鐘的相位相對隨路時鐘相位的固定差異是通過接收PLL的相位控制來實現(xiàn)的,因此必須在輸入時鐘穩(wěn)定后再釋放PLL的復(fù)位控制,或者等輸入時鐘穩(wěn)定后再復(fù)位PLL一次,否則輸出的字順序在每次上電時都可能不固定。

          圖6:LVDS接收及解串行化時序圖。


          圖6:LVDS接收及解串行化時序圖。


          上一頁 1 2 下一頁

          關(guān)鍵詞: FPGA LVDS

          評論


          相關(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); })();