?

基于FPGA的高速串行IO研究

2021-10-15 07:25閆勝剛江偉偉
雷達與對抗 2021年3期
關鍵詞:鏈路時鐘傳輸

閆勝剛,江偉偉

(中國船舶集團有限公司第八研究院,南京 211153)

0 引 言

I/O接口在工業應用中一直扮演著重要角色,隨著信號處理越來越復雜,其I/O傳輸數據率也從600 Mb/s激增到12 Gb/s,甚至更高的帶寬。由于無法提供可靠的系統同步時鐘、并行端口位寬的激增以及同步開關噪聲問題的引入,傳統并行I/O接口不再是可靠、經濟的方法。千兆位串行I/O技術由于較少的引腳數、不需要同步時鐘、EMI較低,逐漸成為解決高速接口的選擇,廣泛用于芯片到芯片的接口、VPX背板連接以及系統板級的通信。

基于GTX核的高速差分串行通信方式已成為FPGA內構建串行SRIO協議、PCIE協議、千兆以太網的標準物理基礎。根據傳輸鏈路的物理特性,合理設置GTX的收發參數成為高速I/O可靠傳輸數據的基礎。本文基于Virtex-6的FPGA芯片,配置GTX的相關參數,分析相關設置對鏈路的影響,最后將該參數用于SRIO協議的物理層,通過實際測試驗證SRIO的傳輸性能。

1 GTX工作原理

GTX由發送模塊和接收模塊、時鐘管理模塊三部分組成,如圖1所示。

圖1 GTX結構圖

發送模塊在內部接收并行數據,經過線路編碼、發送FIFO緩存、極性控制、并串轉換、預加重等處理,最后通過發送前端輸出串行信號。

接收模塊通過模擬前端接收串行數據,經過RX均衡器、時鐘數據恢復模塊、串并轉換、字節對齊模塊、失步狀態機、線路解碼、時鐘修正和通道綁定等處理,轉換成并行數據輸入。

時鐘管理模塊由FPGA專用時鐘引腳,在FPGA內部通過PLL鎖相環產生串行發送器時鐘以及接收器的參考時鐘,并且通過分頻供內部并行通道以及外部邏輯使用。

1.1 數據編碼

數據編碼將輸入的原始數據轉變成一種數據格式,保證有足夠的高低電平切換提供給時鐘恢復電路,并提供約定的comma控制字符用于數據按字對齊,同時編碼后的數據保持0和1個數一致以達到良好的直流平衡。

FPGA可用的編碼機制有8 b/10 b編碼、64 b/66 b和擾碼技術。由于8 b/10 b編碼機制連0或連1最長為5位,相對64 b/66 b和擾碼具有更豐富的0/1跳變,但是8 b/10 b編碼開銷相對較大,為了獲得8 G的帶寬,需要10 G的線路速率,而64 b/66 b開銷小很多。擾碼技術采用隨機碼對數據進行按位異或實現數據的隨機化,不需要額外的帶寬。在高速數據傳輸時考慮碼間串擾影響,同時參考SRIO傳輸規范,本文采用8 b/10 b編碼機制。

1.2 預加重處理

發送的數據隨著傳輸速率的提高,數據間的干擾逐漸嚴重,如果串行流中包含多個比特的相同數據,而其后面跟著一個比特的相反數據,就會發生符號間串擾,具體原因是由于傳輸通道在短時間過程中沒有足夠時間充電,從而產生較低的幅度,進而造成0/1的錯誤判斷。圖2描述了這種現象的發生情況。

圖2 碼間串擾

采用預加重技術,使發送轉變的數據有過量驅動,通過設置前加重、后加重以及去加重參數減小碼間串擾的影響,從而可以降低數據傳輸的誤碼率,預加重電路如圖3所示。

圖3 預加重電路

1.3 線路均衡技術

發送的數據在鏈路傳輸過程中,由于高頻衰減、阻抗匹配以及頻率不同引起波移。通過線路均衡能夠達到一定的補償作用,彌補傳輸過程中的損失,提高接收數據的正確判斷。均衡通常有兩種方式:頻率響應補償均衡器和判決反饋均衡器。頻率均衡器采用抑制低頻放大高頻的方式對接收的頻帶進行線性濾波,但是鏈路的實際衰減比較復雜,針對不同鏈路,頻率衰減曲線各不相同,并且隨著時間和溫度變化,衰減會有響應變化。頻率均衡技術如圖4所示,只能選擇最接近線路衰減的一種曲線進行補償,并不能完全匹配線路真實衰減。

圖4 頻率補償濾波器

對于串擾的精細調節,可以通過調節判決反饋均衡器中的反饋系數,消除每個數據的響應拖尾,進而消除對后續數據的影響,此方法適用于更高頻率的串擾處理。判決反饋均衡器結構如圖5所示。

圖5 判決反饋均衡器

1.4 時鐘數據恢復和comma字節對齊

時鐘數據恢復和comma字節對齊是高速串行傳輸的核心,由于高速串行數據包含了時鐘信息,所以需要從收到的數據中恢復時鐘,并采用恢復時鐘讀取接收的串行碼,獲得串行數據,并采用comma字節對齊功能對串行數據設置窗口,從而保障串行到并行的轉換后,數據不會亂碼。

2 Ibert配置及參數調節

串行信號進入Gbit級別后,對串行信號傳輸質量的測試變得十分必要,Xilinx提供了IBERT輔助工具,用于串行IO接口傳輸性能的測試。IBERT可以在線調整高速串行接口的多種參數,還能實時測量傳輸誤比特率以及眼圖參數的功能。

2.1 測試回路設置

采用VPX機箱搭建測試平臺,如圖6所示,通過光纖遠程環回模式進行測試,FPGA板的發送端發送PRBS-7類型的測試數據,通過VPX背板的高速差分線轉發到控制接口模塊,控制接口模塊轉化為光信號后發送出去,通過光纖鏈路回收光信號,并最終傳輸到FPGA板的接收端,通過和發送端的PRBS-7模型對比判定接收數據的誤碼率。

圖6 測試鏈路

2.2 IBERT配置

打開ISE開發環境,新建測試工程,設置器件的類型、封裝、速度等級等,生成工程文件。新建IP核,在Debug&Verification下選擇IBERT核,配置參考時鐘為200 MHz、GTX協議相關的位置選擇117、數據寬度為20 bit和線速率為4 G,生成bitstream。由于IBERT核只能獨立使用,不可以插入工程,所以要注意配置和芯片參數一致,并且生成不依賴工程的獨立bit文件,使用JTAG邊界掃描鏈連接FPGA芯片,加載bit文件后,在chipscope軟件中打開ibert console窗口,由MGT settings、DRP settings、Port settings和Sweep Test Settings功能框組成,如圖7所示。

2.3 參數調節

在MGT界面查看MGT LINK status和PLL status,確認收發鏈路正常工作,在loopback mode中設置環回方式,設置發送端的參數,TX Data Pattern設置數據模型,采用BRPS-7 bit模型,在TX Diff output swing設置發送端的輸出電壓幅度,在pre-cursor和post-cursor調節預加重處理系數,通過數字示波器查看輸出信號波形圖。圖8為調整前示波器測試眼圖,圖9為調整后眼圖,通過比較發現眼圖形狀有明顯改善。

圖9 調整后波形眼圖

設置好輸出端口系數后,進一步調試接收端系數,在DRP Setting界面把工作模式轉換為測試垂直眼圖功能,如圖10所示。調節REqualization和DFETAPOVERD,通過DFEEYEDACMON值查看內置眼圖張開幅度,從而判定接收均衡器和反饋系數的值。從圖7可以看到,當設置的參數比較理想時,眼圖張開到最大值200 mV。

圖10 工作模式設置界面

最后把工作模式轉換為水平采樣點測試功能,在Sweep Test Settings界面測試采樣點位置和誤碼率之間的關系,如圖11所示,發送端和接收端參數都理想時,采樣點在0.375~0.87之間,誤碼率可以達到10-10,在MGT界面精細調節采樣點,在0.598UI時可以達到10-13的精度,從而確定采樣點最優位置。

圖11 采樣誤碼關系圖

3 工程應用

SRIO協議是一種高性能、低引腳數、基于數據包交換的體系結構,是為滿足高性能嵌入式系統需求而設計的一種開放式互連技術標準。圖12為SRIO協議工作流圖,數據在邏輯層和傳輸層按照協議打包處理后發送到物理層。

圖12 SRIO工作流圖

在FPGA的SRIO協議程序中,為了保證數據無誤碼傳輸,對物理層的收發端口修改參數,使用ibert驗證過的參數設置。另外,采用/K27.7/碼實現四通道綁定,采用/K29.7/碼進行時鐘補償,采用/K28.5/碼完成comma對齊功能,采用8 B/10 B編碼提高數據變化率。在鏈路正常工作后,監測非8 B/10 B有效編碼的計數器值,在參考時鐘為125 MHz,線速率為4*3.125 GHz時,經過6 h的監測,計數器累計值一直為0,說明傳輸誤碼率低于10-13,鏈路的物理設置保證了SRIO的高速穩定無誤碼工作。

4 結束語

在工程設計中,FPGA的高速串行端口數據高速穩定傳輸至關重要。本文通過ibert工具調試電壓擺幅、預加重參數、線路均衡和反饋參數以及時鐘采樣位置,得到誤碼率較低的理想參數,最后把相應參數以及串行技術用到SRIO協議中,進一步驗證了本文方法的正確性。

猜你喜歡
鏈路時鐘傳輸
一種移動感知的混合FSO/RF 下行鏈路方案*
天空地一體化網絡多中繼鏈路自適應調度技術
特斯拉的接班人:電力可以通過空氣傳輸
古代的時鐘
廣播電視信號傳輸的技術分析
這個時鐘一根針
淺談垂直極化天線在地面數字電視傳輸中的應用
4K傳輸
一種IS?IS網絡中的鏈路異常檢測方法、系統、裝置、芯片
有趣的時鐘
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合