FPGA高速串行收發器(IBERT)簡介

1 Overview

與傳統的並行實現方法相比,基於串行I/O的設計具有很多優勢,包括:器件引腳數較少、降低了板空間要求、印刷電路板(PCB)層數較少、可以輕鬆實現PCB設計、連接器較小、電磁干擾降低並具有較好的抗噪能力。

2 高速串行通信中用到的技術

2.1多重相位

高速的祕密在於多重相位技術。所謂多重相位,就是在一個時鐘的不同相位提取數據,例如,由鎖相環產生多個不同相位的同源時鐘,相位分別爲 0°、90°、180°、270°,使用這幾個時鐘分別對串行數據流進行採樣,再經零相位時鐘同步,最後轉換爲並行數據輸出,從而實現低速時鐘處理高速時鐘數據。若輸入的串行數據流比特率爲x,則並行數據流的比特率變爲x/4。

2.2線路編碼

2.21 8b/10b編碼

  1. 將發送的8bits數據分爲兩部分:高3位(記爲HGF)、低5位(記爲EDCBA),記爲D.X.Y(X代表EDCBA,Y代表HGF);高3位進行3b/4b編碼(記爲fghj),低5位進行5b/6b編碼(記爲abcdei)。

HGFEDCBA       =>    abcdeifghj

  1. 定義一:在abcdeifghj中,1比0多一個記爲+2;0比1多一個記爲-2;1和0一樣多記爲0。使用+2、-2、0三個值表示了該數據0和1個數的不均等性(Disparity)。
  2. 定義二:該次傳輸的1比0多記RD = +1,0比1多記RD = -1;其中,RD爲運行不均等性(Running Disparity)。
  3. 初始發送狀態的Previous RD定義爲-1,那麼根據表格1中的規則即可根據前一次的RD從編碼表中挑選出當前應該發送數據的Disparity。
  4. 除了需要編碼的256個D.X.Y數據外,其餘數據中的12個作爲K碼:K.X.Y,例如:K.28.1, K.28.5, and K.28.7 稱爲"comma symbols"。

8b/10b(64b/66b、128b / 132b)編碼技術保證了發送數據通道中的直流平衡,減小了差分信號中的直流分量,易於接收端恢復時鐘。

 

2.3發送預加重

由於傳輸線具有低通濾波器的性質,在電路板傳輸的高速信號會出現明顯衰減,特別是趨膚效應和電介質損耗的影響。傳輸線上的信號邊沿斜率變緩,碼元變寬,幅度下降,抖動增加,導致眼圖閉合,誤碼率上升。

預加重電路將信號進行一定量的過驅動,增加信號的高頻分量,經傳輸線後仍能保持標準信號的特徵,提升眼圖質量,降低誤碼率。

 

 

2.4接收均衡

除了在發送端採用預加重或去加重技術外,在接收端一般採用接收均衡技術提高系統性能。

接收均衡器頻率特性正好與傳輸線相反,通過放大信號的高頻信號,保持低頻信號,來補償傳輸線對信號的衰減,改善眼圖性能,保證傳輸質量。

 

3 Xilinx FPGA Transceivers

3.1系統架構

The 7 series FPGAs GTX and GTH transceivers are power-efficient transceivers, supporting line rates from 500 Mb/s to 12.5 Gb/s for GTX transceivers and 13.1 Gb/s for GTH transceivers. Four GTXE2_CHANNEL primitives and one GTXE2_COMMON primitive to be a Quad.

 

 

GTX收發器的TX RX相互獨立,但都是由PMA(Physical Media Attachment,物理媒介適配層)和PCS(Physical Coding Sublayer,物理編碼子層)組成。PMA內部集成了高速串並轉換(Serdes)、預加重、接收均衡、時鐘發生器和時鐘恢復等;PCS內部集成了8b/10b編解碼、彈性緩衝區、通道綁定和時鐘修正等。

 

3.2 TX

 

 

OOB:Out-Of-Band/邊帶信號;

PISO:Parallel In Serial Out/並進串出;

 

3.21 8b/10b Encoder/8b/10b編碼器

8B/10B is an industry standard encoding scheme that trades two bits overhead per byte for achieved DC-balance and bounded disparity to allow reasonable clock recovery. 高速收發器的發送端一般都帶有8b/10b編碼器。目的是保證數據有足夠的切換提供給時鐘恢復電路,編碼器還提供一種將數據對齊到字的方法,同時線路可以保持良好的直流平衡。在GTX應用中,如果發送的是D碼,則需要將TXCHARISK拉低,如果是K碼,則將相應的TXCHARISK拉高。

3.22 Pattem Generator/ PRBS產生器

Pseudo-random bit sequences (PRBS) are commonly used to test the signal integrity of high-speed links.GTX擁有僞隨機數列產生電路,僞隨機數列是之中看似隨機,但是是有規律的週期性二進制數列,有良好的隨機性和接近白噪聲的相關函數,所以僞隨機數列可以用來做誤碼率測量、時延測量、噪聲發生器、通信加密和擴頻通信等等領域,在GTX中可以用來測試高速串行通道傳輸的誤碼率。

3.23 TX Phase Adjust FIFO/相位調整FIFO

我們都知道FIFO具有隔離時鐘域的功能,在這裏也不例外,我們從圖中可以知道,TX Buffer連接着兩個不同的時鐘域XCLK和TXUSRCLK,在發送端的PCS子層內部包含兩個時鐘域,XCLK(PMA並行時鐘域)TXUSRCLK時鐘域,爲了數據發送的穩定,XCLK和TXUSRCLK必須是速率匹配,相位差可以消除的,TX Buffer主要用於匹配兩時鐘域的速率和消除兩時鐘域之間的相位差。

3.24 TX Polarity Control/發送極性控制

TX發送端支持對TX發送的數據進行極性控制,從PCS子層輸出的編碼數據在進入PISO串行化之前進行極性翻轉,這部分功能主要是用來彌補PCB的設計錯誤,如果PCB設計時不慎將TXP和TXN交叉連接的話,可以通過設置TXPOLARITY爲“1”來翻轉信號的極性。

 

3.3 RX

 

 

EQ:Equalizer/均衡器;

OOB:Out-Of-Band/邊帶信號;

CDR:Clock and Data Recovery/時鐘恢復;

SIPO:Serial In Parallel Out/串進並出;

 

 

3.31 RX Equalizer (DFE and LPM)/均衡器

 

RX信號從模擬前端進來之後,首先經過RX均衡器,均衡器的主要作用是用於補償信號在信道傳輸過程中的高頻損失,因爲信道是帶寬受限的,所以信號經過它必將造成衰減甚至遭到破壞。RX接收端的均衡器有兩種,分別是LPM和DFE,兩者功耗和性能有所不同,其中LPM功耗較低,DFE能提供更精確的濾波器參數,從而可以更好的補償傳輸信道損失,因此性能更好。

 

3.32 RX CDR/時鐘恢復

因爲GTX傳輸不帶隨路時鐘,因此在接收端必須自己做時鐘恢復和數據恢復,首先外部數據進來之後經過均衡器,緊接着均衡器出來的數據就進入時鐘數據恢復電路。GTX使用相位旋轉CDR結構,從DFE進來的數據分別被邊緣採樣器和數據採樣器捕獲,然後CDR狀態機根據兩者決定數據流的相位並反饋控制相位內插器(PI),當數據採樣器的位置位於眼圖中央的時候邊緣採樣器鎖定到數據流的傳輸域。其中CPLL或者QPLL爲相位內插器提供基礎時鐘,使CDR狀態機能很好進行相位控制。

3.33 RX Polarity Control/接收極性控制

和TX發送端一樣,RX接收端也擁有極性控制功能,可用於實現數據翻轉,在PCB設計時RXP和RXN接反時使用這個功能。

3.34 RX Comma Detect and Align/K碼檢測與對齊

串行數據在被並行化之前,需要找到一個合適的特徵邊界,這個特徵邊界或者字符邊界是由TX發送端發送的一個可識別序列,通常稱爲標識符(comma)或者K碼,接收端在到來的數據中搜索這個標識符,當找到這個標識符之後,後面接收的數據都已這個標識符爲邊界進行並行化,其工作原理如圖所示。

 

 

 

3.35 RX PRBS Checker/PRBS檢查器

GTX包含一個內嵌的PRBS檢查器,如圖4所示,有四種不同的僞隨機序列生成器可以選擇,檢查器是自同步的,且工作在邊界對齊和解碼之前,這個功能可以用來測試信號的完整性。

 

 

3.36 RX Elastic Buffer/接收彈性緩衝

RX接收端彈性緩衝器是一個重要的功能,和TX接收端緩衝相比,RX多出了一個“彈性”屬性,意味着和TX發送端相比,RX彈性緩衝器有更多的功能(RX時鐘糾正和RX通道綁定)。

3.37 RX Clock Correction/時鐘校正

RX彈性緩衝器的“彈性”反映在可以通過時鐘糾正來調整XCLK和RXUSRCLK的頻率差。對於RX接收端來說,即便XCLK和RXUSRCLK運行在同一個時鐘頻率,但往往存在一定的差異,這種差異很容易導致RX彈性緩衝器寫滿或者讀空,時鐘糾正功能應運而生。

通俗的講,在TX發送端的時候,我們會定期的發送K碼用於保證接收端邊界對齊,在RX彈性緩衝器裏面數據不足的時候,接收到的K碼數據將被複制寫入RX彈性緩衝器,以保持RX彈性緩衝器處於半滿。當RX彈性緩衝器數據過多的時候,接收到的K碼數據將被捨棄不寫入RX彈性緩衝器,以保持RX彈性緩衝器處於半滿。

3.38 RX Channel Bonding/通道綁定

通道綁定功能同樣體現RX彈性緩衝器的“彈性”之處,對於像PCIE和SRIO等協議,可以支持多lane傳輸來提高傳輸總帶寬。因爲傳輸信道的原因,TX發送端同一時刻發送的數據在RX接收端不能被所有的lane同一時刻接收,每一個lane接收存在時間差,那麼在恢復數據的時候就要重新對齊,因此需要在RX接收端執行通道綁定功能。

 

爲了實現這個功能,TX發送端在發送的數據流中加入一個同樣的通道綁定序列,RX接收端根據每一個lane檢測到的通道綁定序列在各自的RX彈性緩衝器做相應的調整和延遲,最終使得各個lane的數據不存在偏移,在FPGA RX Interface的輸出能和TX發送端發送的數據一樣,功能如圖所示,左邊是未對齊數據,右邊是對齊的數據。

 

 

 

4 實例

4.1 GT的類型

 

 

4.1 GTX配置(Xilinx ZC706)

The ZC706 board provides access to 16 GTX transceivers:

• Four of the GTX transceivers are wired to the PCI Express x4 endpoint edge connector (P4) fingers

• Eight of the GTX transceivers are wired to the FMC HPC connector (J37)

• One GTX transceiver is wired to the FMC LPC connector (J5)

• One GTX transceiver is wired to SMA connectors (RX: J32, J33 TX: J35, J34)

• One GTX transceiver is wired to the SFP/SFP+ Module connector (P2)

• One GTX transceiver is unused and is wired in a capacitively coupled TX-to-RX loopback configuration

 

4.2 IBERT眼圖

使用Xilinx IBERT(Integrated Bit Error Ratio Tester) IP測試GTX傳輸信道質量。

 

圖 1 引腳直連

圖 2 SMA引腳迴環(未擰緊)

圖 3 SMA引腳迴環(擰緊)

 

6 參考

  1. Xilinx 7 Series FPGAs GTX/GTH Transceivers User Guide UG476 (v1.12) December 19, 2016;
  2. Xilinx Integrated Bit Error Ratio Tester 7 Series GTX Transceivers v3.0 LogiCORE IP Product Guide Vivado Design Suite PG132 June 8, 2016。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章