在串行數(shù)據(jù)傳輸中,數(shù)據(jù)接收端需要一些特定的信息來恢復(fù)出正確的字邊界,以確定串行碼流中哪些比特屬于原始并行數(shù)據(jù)里的同一時(shí)鐘節(jié)拍里的數(shù)據(jù),這一處理過程稱為字對(duì)齊(Word Aligner)。一些標(biāo)準(zhǔn)的協(xié)議會(huì)定義特殊的碼型(常見的碼型如8B/10B編碼中的K28.5)用于字對(duì)齊處理。另一些帶源同步時(shí)鐘的LVDS接口,通常會(huì)利用低頻的源同步時(shí)鐘來攜帶字對(duì)齊信息,用于接收端的正確恢復(fù)。FPGA對(duì)上述兩種方案都可以進(jìn)行正確處理。那么,如何FPGA中利用低頻源同步時(shí)鐘實(shí)現(xiàn)低壓差分信號(hào)(LVDS)接收字對(duì)齊呢?在串行數(shù)據(jù)傳輸中,數(shù)據(jù)接收端需要一些特定的信息來恢復(fù)出正確的字邊界,以確定串行碼流中哪些比特屬于原始并行數(shù)據(jù)里的同一時(shí)鐘節(jié)拍里的數(shù)據(jù),這一處理過程稱為字對(duì)齊(WordAligner)。一些標(biāo)準(zhǔn)的協(xié)議會(huì)定義特殊的碼型(常見的碼型如8B/10B編碼中的K28.5)用于字對(duì)齊處理。另一些帶源同步時(shí)鐘的LVDS接口,通常會(huì)利用低頻的源同步時(shí)鐘來攜帶字對(duì)齊信息,用于接收端的正確恢復(fù)。FPGA對(duì)上述兩種方案都可以進(jìn)行正確處理。對(duì)于標(biāo)準(zhǔn)協(xié)議,F(xiàn)PGA通常都會(huì)有知識(shí)產(chǎn)權(quán)(IP)模塊提供。本文主要討論在FPGA中利用低頻源同步時(shí)鐘實(shí)現(xiàn)低壓差分信號(hào)(LVDS)接收字對(duì)齊的設(shè)計(jì)方法及步驟。 LVDS已經(jīng)成為業(yè)界高速傳輸最普遍應(yīng)用的差分標(biāo)準(zhǔn)。LVDS的優(yōu)勢(shì)包括:由于采用差分信號(hào)帶來的對(duì)共模噪聲的免疫能力,進(jìn)而提高了抗噪聲能力;功率消耗較小,噪聲較小等。由于LVDS有比較好的抗躁聲特性,它可以采用低至幾百毫伏的信號(hào)擺幅,進(jìn)而可以支持更高的數(shù)據(jù)速率。 LVDS串行器/解串器(SERDES)可以完成多位寬度的并行信號(hào)到LVDS串行信號(hào)的轉(zhuǎn)換以及反方向操作,如圖1所示。有些器件提供圖1中的隨路時(shí)鐘,但有些器件可能并不提供,這時(shí)LVDS解串器還必須具有時(shí)鐘恢復(fù)(CDR)功能。市面上有各種規(guī)格的LVDSSERDES器件,此外FPGA或其它一些器件也都能集成LVDS SERDES模塊。 圖1:LVDS串行器/解串器的功能示意圖。 圖2:字順序得到保留。 圖3:字順序沒有得到保留。 另外一些相對(duì)低速的LVDS接口也利用低頻的源同步時(shí)鐘來攜帶字對(duì)齊信息,以便在接收端實(shí)現(xiàn)正確的數(shù)據(jù)恢復(fù)。這里的低頻源同步時(shí)鐘也如圖1中的隨路時(shí)鐘,LVDS數(shù)據(jù)和隨路時(shí)鐘之間的倍數(shù)關(guān)系通常等于LVDS串行化時(shí)的倍數(shù)因子。比如,德州儀器(TI)的SN65LVDS95LVDS發(fā)送器,不僅可完成21:3的LVDS串行化發(fā)送,還將21位的并行數(shù)據(jù)和時(shí)鐘串行化成3路LVDS數(shù)據(jù)輸出和1路時(shí)鐘輸出。串行化因子的值等于7,所以輸出時(shí)鐘的頻率是LVDS數(shù)據(jù)速率的七分之一。通過這個(gè)隨路時(shí)鐘,配套的解串器SN65LVDS96就能夠正確恢復(fù)并行數(shù)據(jù)。 與這類單獨(dú)的LVDS SERDES器件相比,F(xiàn)PGA集成LVDS模塊能提供更高的集成度,并簡(jiǎn)化硬件設(shè)計(jì)、節(jié)省PCB面積,從而降低應(yīng)用成本。高端FPGA還在I/O單元里固化了LVDS串行器/解串器,支持非常高的速率,比如Altera公司的Stratix III系列。 StratixIII FPGA系列是Altera公司基于TSMC65nm工藝的高端FPGA,是業(yè)界高密度高性能可編程邏輯器件中,功耗最低的產(chǎn)品系列。Stratix III器件可以同時(shí)提供最多276對(duì)LVDS串行化發(fā)送模塊和276對(duì)LVDS解串行化接收模塊,每路LVDS最高可以支持1.6Gbps。此外,它還獨(dú)家提供可編程的輸出擺幅和預(yù)加重功能,以支持長距離背板傳送,如圖4所示。 圖4:Stratix III 支持可編程的輸出擺幅(Vs(p-p))和預(yù)加重(Vpp(p-p))。 圖5:Stratix III I/O固化的LVDS接收器。 當(dāng)輸入到FPGA的數(shù)據(jù)和時(shí)鐘之間的倍數(shù)關(guān)系等于解串器的解串行化因子時(shí),F(xiàn)PGA與單獨(dú)的LVDS解串器一樣,有確定的字順序輸出,可以在沒有訓(xùn)練碼型的情況下繼續(xù)正常應(yīng)用。圖6是解串行化因子為7時(shí)的時(shí)序圖。假設(shè)隨路時(shí)鐘的上升沿對(duì)應(yīng)數(shù)據(jù)的最高比特,在FPGA內(nèi)部,PLL會(huì)從隨路時(shí)鐘產(chǎn)生一個(gè)進(jìn)行過相位調(diào)整的7倍頻率采樣時(shí)鐘。此時(shí)鐘對(duì)輸入數(shù)據(jù)進(jìn)行采樣后送入解串器,通過控制解串器的裝載時(shí)鐘相位,得到確定的并行數(shù)據(jù)輸出字順序。裝載時(shí)鐘的相位相對(duì)隨路時(shí)鐘相位的固定差異是通過接收PLL的相位控制來實(shí)現(xiàn)的,因此必須在輸入時(shí)鐘穩(wěn)定后再釋放PLL的復(fù)位控制,或者等輸入時(shí)鐘穩(wěn)定后再復(fù)位PLL一次,否則輸出的字順序在每次上電時(shí)都可能不固定。 圖6:LVDS接收及解串行化時(shí)序圖。 圖7:LVDS95輸出時(shí)序。 圖8:綜合設(shè)置頁面。 首先根據(jù)LVDS95的時(shí)序進(jìn)行Stratix III中的LVDS模塊(ALTLVDS)的調(diào)用。 圖9:頻率和鎖相環(huán)設(shè)置頁面。 圖10:接收器設(shè)置頁面。 接下來需要通過仿真找出串行因子等于7的情況下,LVDS硬核的字順序情況。圖11給出了頂層設(shè)計(jì)例子,圖12是在MODELSIM里的仿真結(jié)果。 圖11:頂層模塊的設(shè)計(jì)。 圖12:仿真波形。 圖13:字順序的調(diào)整邏輯。 圖14:內(nèi)容為計(jì)數(shù)器的仿真輸出波形。 在利用StratixIII做LVDS接收時(shí),我們可以將解串行化因子設(shè)置成等于輸入的LVDS數(shù)據(jù)和時(shí)鐘之間的倍數(shù)關(guān)系,這樣就可以得到確定的字輸出順序,從而可以不依賴訓(xùn)練碼實(shí)現(xiàn)正確LVDS接收的字對(duì)齊。此方法不僅適合于FPGA與單獨(dú)的LVDS發(fā)送器進(jìn)行對(duì)接,也可用于FPGA與FPGA之間的數(shù)據(jù)傳送,使用時(shí)FPGA的LVDS發(fā)送端送出低頻的源同步時(shí)鐘即可。 |