日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Xilinx GT学习

發布時間:2024/3/12 编程问答 71 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Xilinx GT学习 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、GT的概念

Xilinx FPGA的GT意思是Gigabyte Transceiver。通常稱呼為Serdes、高速收發器。GT在xilinx不同系列有著不同的產品,從7系列到UltraScale系列分別有GTP、GTX、GTZ、GTH、GTY和GTM。不同GT整體結構上類似,為了支持越來越高的line rate,在細節上有著不同的差異。

Blog:FPGA Xilinx 高速串行收發器橫向比較_搞FPGA開發的Tony老師的博客-CSDN博客_xilinx高速串行收發器https://blog.csdn.net/wuyanbei24/article/details/118310132 對Xilinx GT各系列進行了橫向的比較,本文章主要以UltraScale系列里面的GTH為例做介紹:

二、GT Quad

????????Xilinx FPGA中的GT資源以Quad為單位

????????一個GT Quad包含一個GTHE3/4_COMMON 和 4個 GTHE3/4_CHANNEL。

????????每個GTHE3/4_COMMON包含兩個QPLL,在設計中,只有需要使用QPLL時,才需要例化GTHE3/4_COMMON。

????????每個GTHE3/4_CHANNEL包含一個CPLL和一個transmitter和一個reciever

?Reference Clock Selection and Distribution

????????一個GT Quad包含一個GTHE3/4_COMMON 、 4個GTHE3/4_CHANNEL、2對專用外部參考時鐘pin、專用參考時鐘routing。每個transceiver都需要例化對應的GTHE3/4_CHANNEL,但只有需要使用高性能QPLL時才需要例化GTHE3/4_COMMON。

????????通常Quad(Q(n))的參考時鐘可以由其他Quad(最多上/下2個相鄰Quad)的輸入管腳輸入

三、GT Channel

????????整個GT channel可以分為兩層:

????????PMA:Physical Media Attachment,物理媒介附加層

????????PCS:Physical Coding Sublayer,物理編碼子層

下面根據收發鏈路分別講解:

3.1 Transmitter

3.1.1 TX Interface

????????TX Interface分成內部數據位寬和FPGA接口位寬,其中內部數據歸屬于TXUSRCLK時鐘域,FPGA接口數據歸屬于TXUSRCLK2時鐘域,而內部數據位寬支持2byte/4byte,FPGA接口數據位寬支持2byte/4byte/8byte,因此,決定了TXUSRCLK和TXUSRCLK2有一定的時鐘倍數關系,TXUSRCLK和TXUSRCLK2的時鐘倍數關系如下表所示,其中TX_INT_DATAWIDTH屬性設置為“0”,表示內部數據位寬為2byte,如果設置為“1”,則表示內部數據位寬為4byte

線速率大于8.1875Gb/s的時候TX_INT_DATAWIDTH應當置1

3.1.2 TX 8B/10B Encoder

?????? 8B/10B的編碼理論參考blog:

8B/10B Encode/Decode詳解https://www.cnblogs.com/YINBin/p/11011232.html???????? ???8B/10B編碼的目的1是保證數據有足夠的切換提供給時鐘恢復電路(CDR),2提供一種將數據對齊到字的方法,3.同時線路可以保持良好的直流平衡。為什么要做直流均衡,參考blog:Serdes高速收發器和CDR技術https://blog.csdn.net/qq_16423857/article/details/110135690

3.1.3 TX Gearbox(速率變換箱)

????????8B/10B編碼使得帶寬利用率80%。一些高速數據速率協議使用64B/66B編碼來減少8B/10B編碼的開銷,同時保留編碼方案的優點。TX Gearbox提供了對64B/66B和64B/67B編碼支持(header和payload的combining)。TX Gearbox支持2字節、4字節和8字節接口定義,但是數據scrambing是在FPGA邏輯內實現的。

3.1.4 TX Buffer

????????為了解發送的TXBuffer的作用,首先得搞清楚TX發送端的時鐘域,TX發送端的時鐘域如圖所示。

????????圖中紅色方框就是TXBuffer, TX Buffer連接著兩個不同的時鐘域XCLK和TXUSRCLK,在發送端的PCS子層內部包含兩個時鐘域,XCLK(PMA并行時鐘域)TXUSRCLK時鐘域,為了數據發送的穩定,XCLK和TXUSRCLK必須是速率匹配,相位差可以消除的,TX Buffer主要用于匹配兩時鐘域的速率和消除兩時鐘域之間的相位差。

????????TX Buffer也可以被旁路,TX發送端提供了一個相位對齊電路,可以解決XCLK和TXUSRCLK時鐘域之間的相位差,但是TX_XCLK_SEL需設置為“TXUSR”來保持XCLK時鐘域和TXUSRCLK保持同頻。

3.1.4 TX PMA

????????發送PMA包含并串轉換(PISO)和模擬部分的控制(差分電壓控制、發送器預加重、校準端接電阻,用于滿足SI等

3.2 Reciever

接收鏈路從PMA-->PCS

3.2.1 RX Equalizer (DFE and LPM)

????????傳輸介質和通道是帶寬受限的,通過它的信號會衰減和失真。均衡器主要用于補償由于頻率不同而引起的阻抗或者衰減差異。

????????GTH收發器,基于系統級的功耗和性能的權衡,有兩種類型的自適應濾波可用:

????????功耗優化和低通道損耗的低功耗模式(LPM):

????????均衡更低損耗通道的判決反饋均衡模式(DFE):

3.2.2 RX CDR

????????CDR:Clock Data Recovery

?????????CDR FSM使用來自邊緣和數據采樣器的數據來確定傳入數據流的相位并控制相位插值器(PIs)。邊緣采樣器的相位鎖定在數據流的過渡區域,而數據采樣器的相位則位于數據眼的中間。

?????????CPLL或QPLL為相位內插器提供基準時鐘。相位內插器依次產生精細的、均勻分布的采樣相位,以允許CDR狀態機具有精細的相位控制。CDR狀態機可以跟蹤傳入的數據流,這些數據流可以與本地PLL參考時鐘存在頻率偏移。

3.2.3 RX Fabric Clock Output Control

與發送一樣,使用RXOUTCLK作為RXUSECLK的基準時鐘

3.2.4 RX Byte and Word Alignment

????????輸入到FPGA收發器的串行數據在解串(串并轉換)之前必須進行符號邊界對齊。為了保證數據對齊,發送器發送一個通常稱為comma碼(K碼)的字符,接收器在輸入的數據里查找comma碼。當發下comma碼后,則將comma移動到字符邊界,這樣使得接收到的并行數據匹配發送的并行數據。

3.2.5 RX Elastic Buffer

????????RX Elastic Buffer:GTH收發器內部包括兩個內部并行時鐘域:PMA并行時鐘域XCLK和RXUSRCLK時鐘域。為了正確接收數據,PMA并行速率必須匹配RXUSRCLK時鐘速率,并且解決跨時鐘域問題。

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

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

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

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

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

????????RX channel bonding支持8B/10B編碼,但是不支持64B/66B、64B/67B、128B/130B和擾碼數據。

3.2.6 others

????????Rx 8B/10B Decoder、RX Interface等與TX端類似

????????Rx 8B/10B Decoder預設K碼

結束語

? ? ? ? 本文主要是對官方手冊的學習筆記,對應GT的詳細細節沒有過多的深挖。GT作為FPGA內的一種資源,對于我們使用者來說更多的是對其有一個大致了解,其具體細節不用太過深挖,一個是GT資源隨著升級其細節也有很多變化,但大體結構是換湯不換藥;二是隨著FPGA廠商IP的完善,針對不同的應用都有各種底層使用GT資源的更上層的IP core,比如Aurora、PCIe、以太網、interlaken等等,如果只是站在使用者的角度來說的話,可能很少會接觸到GT底層。當然,通過對GT資源的理解也更加方便我們上層應用的開發和調試。如果涉及到太底層的問題可以在需要的時候再翻手冊查詢。

總結

以上是生活随笔為你收集整理的Xilinx GT学习的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。