Kintex7系列的GTX,以其良好的性能和功耗表現,已經成為業界FPGA選型時的明星。由于其良好的DFE性能,它能提供高達12.5Gbps的過背板能力,能支持在插損高達30dB的信道上可靠傳輸。在眾多的SERDES應用中,有些應用比較特別,那就是需要在實際運行過程中動態切換GTX的鏈路速率,如無線中的CRPI接口,需要同時支持9.8G,4.9G,2.4G等眾多速率。那么,如何能做到可靠地進行速率切換呢?本文就此作為主題,希望能充分發揮GTX的優勢。
1. 背景知識GTX結構
Kintex7的SERDES的結構圖如圖1。
圖1 Kintex7 GTX結構圖
以發送方向為例,參看圖2的發送方向的時鐘分布圖:
圖2 GTX 發送方向時鐘分布圖
Kintex7在進行鏈路速率切換時,主要有如下幾種辦法:
1) 切換QPLL/CPLL的參考鐘源頭;
2) 通過DRP接口修改QPLL/CPLL的參數設置
3) 切換QPLL/CPLL提供鏈路時鐘;
4) 調整PMA的分頻系數。
GTX工作模式介紹
在GTX內部,有2種工作模式:LPM模式和DFE模式。
LPM(Low Power Mode)模式是低功耗模式,其主要支持低插損信道,鏈路速率《11.2G,信道插損在12dB以下的情況。在LPM模式中,CTLE和baseline wander cancellation都是全自動的,不需要手工調整。LPM模式的結構圖如下:
圖3 LPM模式下GTX結構圖
DFE模式則提供更好的信道補償,其能夠支持高達12.5G的鏈路速率,并在信道插損大于8dB的場景下有良好表現。DFE和CTLE不同,它不會放大噪聲和串擾,能糾正信道不連續引起的反射。它能自動利用AGC,CTLE,DFE和baseline wander cancellation來完成信道補償,同時也支持CTLE手動模式。DFE模式下GTX的結構圖如圖4。
圖4 DFE模式下GTX結構圖
8B/10頻譜特性介紹
為何單獨介紹8B/10B呢?主要是因為采用8B/10B編碼的系統,其當系統空閑時,大體上都會發送固定碼型的數據,如802.3中定義的/I1/和/I2/。固定碼型的數據其頻譜比較離散,有太多的毛刺,不利于EMI也不利于DFE進行補償跟蹤。一般來說,當鏈路速率》5Gbps時,只是簡單的采用8B/10B編碼已經不適合。眾多協議一般此時會使用加擾進行替代或者在8B/10B編碼前先對數據進行加擾。
在實際應用中,可以通過示波器對信號進行快速FFT分析,得到其頻譜特性。如果頻譜毛刺比較多,那么就需要考慮在發送端改善信號頻譜。圖5是8B/10B編碼下,不同的模式的頻譜。從圖上可以看出,發送固定序列的AKR IDLE和GbE下的/I2/,其頻譜毛刺都很多,不適合于DFE工作。
圖5 頻譜圖
GTX復位流程
如果是以ISE14.4例化GTX,那么GTX的IP版本應該是2.4。在此版本的example code中,對于GTX的復位流程有充分的考慮。其可以作為大家設計GTX的復位處理的樣板。復位順序的一個總體原則是:從PLL,到PMA,再到PCS,再到用戶邏輯,依序處理。需要注意的是,GTX的復位都以統一的GTRXRESET/GTTXRESET來啟動,而復位模式則配置成sequential reset。
在接收方向,復位流程大致為:
圖7 GTX接收方向復位流程圖
在發送方向,復位流程大致為:
圖8 GTX發送方向復位流程圖
2. GTX配置介紹
GTX的配置需要重點關注的是:1) AGC;2) CTLE;3) RXCDR_CFG;4) 發送方向的Pre-emphasis。本文主要討論前面3項。
LPM模式下,AGC和CTLE都是全自動模式。其也提供了HOLD,OVERRIDE端口進行控制,如{RXOSHOLD, RXOSOVRDEN},{RXLPMLFHOLD, RXLPMLFKLOVRDEN},{RXLPMHFHOLD, RXLPMHFOVRDEN}。
在DFE模式下,同樣也提供了HOLD,OVERRIDE端口進行控制各種屬性。其還分為CTLE Auto模式和CTLE Manual模式。CTLE Auto模式的啟用可以通過DRP接口修改如下屬性來完成。
RX_BIAS_CFG[5:4] = 2‘b11
RX_DFE_KL_CFG2[26:23] = 4’b0111
RX_DFE_LPM_CFG[5:2] = 4‘b0010
而在CTLE Manual模式下,通過DRP接口修改RX_DFE_KL_CFG2屬性,可以調整CTLE的頻率響應曲線,從而獲得適合于信道的值。
圖9 DFE模式下CTLE的設置
除去上面的配置,影響GTX性能的還有RXCDR_CFG屬性,其也只能通過DRP接口完成修改。具體推薦配置值參看表1。
3. CPRI下GTX速率切換流程
CPRI一般分如下幾個工作鏈路速率:
1) 2.4576 Gbps
2) 3.072 Gbps
3) 4.9152 Gbps
4) 6.144 Gbps
5) 9.8304 Gbps
在實際應用中,如果最高速率需要支持到9.8304Gbps,那么QPLL是必須啟用的。由于每個Quad只有1個QPLL,如果Quad里的4個GTX都要單獨調節鏈路速率,那么QPLL就只能工作在9.8304Gbps。下面又分2個情況進行討論:
a) 支持的速率有倍速關系;
只需要通過修改PMA部分的RXOUT_DIV和TXOUT_DIV屬性,或者RXRATE和TXRATE端口即可,而QPLL只工作在9.8304Gbps上。
b) 支持的速率沒有倍速關系。
除9.8304Gbps及其他和9.8304Gbps有倍速關系的速率外,其他速率的支持通過CPLL來支持。在CPLL不使用的時候可以講起PowerDown。
無論上面的哪種配置場景,其最基本的速率切換流程都不會有太大區別。其切換流程大體都應如下:
Step1:通過DRP接口更新相關屬性:
RXCDR_CFG,值具體參照表1
RX_BIAS_CFG
RX_DFE_KL_CFG2,值具體參照圖9
RX_DFE_LPM_CFG
RXOUTDIV
TXOUTDIV
Step2:復位GTX,參照GTX的復位流程。
值得注意的是,由于不同的鏈路速率下信道的表現不一致,RXCDR_CFG,RX_DFE_KL_CFG2的最佳值都會有不同,所以在切換速率時,必須通過DRP接口將最佳值配置到GTX。在切換LPM模式和DFE模式時,也必須從PMA開始進行一次完整復位。
評論
查看更多