一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

詳解Xilinx的10G PCS PMA IP

FPGA技術江湖 ? 來源:數(shù)字站 ? 2025-04-18 15:16 ? 次閱讀

來源:數(shù)字站

設計的靈魂是算法,而FPGA的終點是時序,首先還是幫韓老師推薦一下他將要發(fā)布關于FPGA時序約束的書籍。易靈思FPGA在資源利用達到百分之八十左右能跑到500MHz,實力怎么就不需要過多贅述了。

如果要在Xilinx的FPGA上使用萬兆以太網(wǎng)通信,大致有三種方法構建協(xié)議棧。第一種使用GTX等Serdes作為底層的PHY,上層通過HDL實現(xiàn)構建MAC和IP層,這種方式難度會比較大,底層需要完成PHY層的設計,最終我想通過這種方式實現(xiàn)萬兆以太網(wǎng)的搭建。

第二種是通過Xilinx提供的10G PCS PMA作為底層的PHY,用戶通過HDL實現(xiàn)MAC層和IP層的設計。難度相比第一種會低一點,能夠清晰的學習到MAC層、IP層、ARP協(xié)議、ICMP協(xié)議、UDP協(xié)議內容。

第三種是使用Xilinx提供帶有MAC層的IP,這種方式用戶只需要閱讀手冊,給IP提供收發(fā)的數(shù)據(jù)即可,沒有什么難度,對于學習沒啥作用。

目前先通過10G PCS PMA作為PHY層,熟悉MAC層以及之上的設計,整個協(xié)議跑通之后,在把底層的PHY用GTX取代,從而實現(xiàn)第一種設計。

01概括10GBASE-R/KR

下圖是10G PCS PMA的使用原理,上層通過XGMII接口與用戶邏輯的MAC層交互數(shù)據(jù)(MAC層可以用戶自己設計,也可以使用官方的MAC層IP),接收的用戶數(shù)據(jù)經(jīng)過內部PCS PMA處理后,通過Serdes接口輸出到光纖,與接收端的設備進行通信。pYYBAGORftaABrbPAAAAjgjvZ2U927.jpg

wKgZO2gB_HOAKRUrAAC4SZC401Q831.png

圖1 使用XGMII接口連接到MAC內核的內核

10G PCS PMA可以通過參數(shù)設置該PHY層工作在10GBASE-R還是10GBASE-KR的模式下。

下圖是10GBASE-R的內部框圖,10G以太網(wǎng)使用64B66B進行編碼,10GBASE-R內核其實就是在Serdes的基礎上封裝得到的。如果看過前文GTX自定義64B66B的PHY層協(xié)議設計的同學,關于下面的設計應該會比較熟悉。

同樣都包含加擾、解擾、接收端字對齊、變速器等等,這里的64B66B編碼和解碼模塊應該是將XGMII接口協(xié)議轉換為Serdes 64B66B的接口協(xié)議。

wKgZO2gB_HOAfpRBAAE3pK1PdoQ209.png

圖2 10GBASE-R內核框圖

在接收端有一個彈性緩沖器(Elastic Buffer),深度為32個字(1個字包含64位數(shù)據(jù)和8位控制字符),起到時鐘糾正的作用。

允許在緩沖區(qū)溢出(和字被丟棄)之前最多存儲64個時鐘校正(CC)序列,緩沖器通常填充到一半,然后當超過一半時刪除CC序列,當?shù)陀谝话霑r插入CC序列。

因此,在半滿狀態(tài)下,可以(保守地)接受額外的360 KB數(shù)據(jù)(以+200 ppm的速率接收),而不會丟失任何數(shù)據(jù)。

10GBASE-KR內核框圖如下所示,相比10GBASE-R內核增加了鏈路訓練模塊以及可選的自動協(xié)商(AN)和前向糾錯(FEC)功能,以支持背板上的10 Gb/s數(shù)據(jù)流。pYYBAGORftaABrbPAAAAjgjvZ2U927.jpg

wKgZPGgB_HOAWnoZAADUj7XtbQ0405.png

圖3 10GBASE-KR內核框圖

02XGMII接口時序

在前文講解過XGMII接口并不適用于芯片之間的高速通信,但是在FPGA內部是一個比較好用的接口,因為FPGA內部數(shù)據(jù)位寬大一點是沒有太大關系的。

前文講解的芯片間的XGMII接口如下所示,接收端和發(fā)送端采用32位雙沿傳輸?shù)臄?shù)據(jù)線通信。pYYBAGORftaABrbPAAAAjgjvZ2U927.jpg

wKgZO2gB_HOAEStYAACBV5VwYkw656.png

圖4 芯片間的XGMII接口

但是FPGA內部邏輯只支持單沿傳輸,因此10G PCS PMA給用戶提供的XGMII接口是單沿傳輸數(shù)據(jù)的。為了保證帶寬不變,收發(fā)數(shù)據(jù)位寬有64位和32位兩種可選,其中10GBASE-KR只支持64位數(shù)據(jù)位寬。

2.164位數(shù)據(jù)位寬

下表是64位數(shù)據(jù)位寬的XGMII端口信號,8位控制位??刂莆坏母唠娖奖硎緮?shù)據(jù)信號對應字節(jié)為控制位,低電平表示數(shù)據(jù)信號對應字節(jié)為數(shù)據(jù)位。

表1 64位的MAC端接口端口

信號名 I/O 含義
xgmii_txd[63:0] I 發(fā)送端接口數(shù)據(jù)信號。
xgmii_txc[7:0] I 發(fā)送端的控制信號,高電平指示控制位,低電平指示數(shù)據(jù)位。
xgmii_rxd[63:0] O 接收端接口數(shù)據(jù)信號。
xgmii_rxc[7:0] O 接收端的控制信號,高電平指示控制位,低電平指示數(shù)據(jù)位。

下圖是通過64位接口發(fā)送數(shù)據(jù)幀的時序,數(shù)據(jù)幀的開始由起始字符(下圖中通道4的/S/)表示,后面5、6和7字節(jié)發(fā)送數(shù)據(jù)字符。

萬兆以太網(wǎng)規(guī)定起始位/S/可以位于第一字節(jié),也可以位于第四字節(jié)。

圖中的I是空閑字符,注意在xgmii_txd對應字節(jié)為控制字符時,xgmii_txc對應的控制位為高電平。在xgmii_txd對應字節(jié)為數(shù)據(jù)字符時,xgmii_txc對應的控制位為低電平。

由下圖可知,XGMII接口先傳輸?shù)妥止?jié)數(shù)據(jù),后傳輸高字節(jié)數(shù)據(jù)。因此起始字符所在數(shù)據(jù)的低5字節(jié)為控制字符,發(fā)送起始字節(jié)/S/后,開始傳輸數(shù)據(jù),高三字節(jié)為數(shù)據(jù),對應的xgmii_txc的值為8’h1f。

wKgZPGgB_JaACISjAAHtk3fYZuM984.png

圖5 64位xgmii發(fā)送數(shù)據(jù)接口時序

因為以太網(wǎng)可以傳輸任意字節(jié)包長的數(shù)據(jù),停止位可以出現(xiàn)在任意字節(jié)的位置,上圖中的/T/字符表示停止位。

在數(shù)據(jù)傳輸過程中,還可以發(fā)送/E/表示該字段是錯誤數(shù)據(jù),如下圖所示,這種情況一般不會使用。

wKgZO2gB_JaAZuzVAAI-IyC3RS4899.png

圖6 64位xgmii發(fā)送數(shù)據(jù)接口時序

接收數(shù)據(jù)端口時序如下圖所示,下圖中是起始位處于第0字節(jié)的情況。

wKgZPGgB_JaAKL1XAAIpkm-1ibE408.png

圖7 64位xgmii接收數(shù)據(jù)接口時序

下表將上述字符對應的取值列出,其中起始位S的值為8’hfb,停止位T的值為8’hfd,空閑字符I的取值為8’h07,且都是控制字符。

表2 XGMII字符的部分列表

名稱(縮寫) 取值(Hex) 控制字符取值
數(shù)據(jù)位(D) [8’h00,8’hff] 0
空閑位(I) 8’h07 1
起始位(S) 8’hfb 1
停止位(T) 8’hfd 1
錯誤位(E) 8’hfe 1

手冊中給出了發(fā)送通道的延時(數(shù)據(jù)從輸入xgmii_txd[63:0]傳輸?shù)絞t_txd[31:0]消耗的時間,不包括高速收發(fā)器內部的延時)。7系列FPGA的延遲為20個txoutclk周期,使能FEC功能后延時增加到26個txoutclk周期。

接收方向的延遲(數(shù)據(jù)從gt_rxd[31:0]傳輸?shù)絰gmii_rxd[63:0]上的時間)主要取決于彈性緩沖器的填充水平。延遲標稱值為27.75個coreclk周期,當彈性緩沖達到最大時,延時為41.26個coreclk周期,延時這部分了解即可。

2.232位數(shù)據(jù)位寬

下表是32位數(shù)據(jù)位寬的XGMII接口信號,4位控制位,高電平表示數(shù)據(jù)信號對應字節(jié)為控制位,低電平表示數(shù)據(jù)信號對應字節(jié)為數(shù)據(jù)位。

表2 32位的MAC端接口端口

信號名 I/O 含義
xgmii_txd[31:0] I 發(fā)送端接口數(shù)據(jù)信號。
xgmii_txc[3:0] I 發(fā)送端的控制信號,高電平指示控制位,低電平指示數(shù)據(jù)位。
xgmii_rxd[31:0] O 接收端接口數(shù)據(jù)信號。
xgmii_rxc[3:0] O 接收端的控制信號,高電平指示控制位,低電平指示數(shù)據(jù)位。

下圖是32位XGMII接口傳輸數(shù)據(jù)幀的時序,開始字符/S/只能出現(xiàn)在第1字節(jié),后面的3字節(jié)為傳輸數(shù)據(jù)。數(shù)據(jù)傳輸完成后,發(fā)送停止位/T/,其余時間使用空閑字符填充。

wKgZO2gB_LyAB1fkAAGb-HPXBBg590.png

圖8 通過32位XGMII接口的正常幀傳輸

接收端口的時序如下所示,與發(fā)送端口的時序基本一致,不過多贅述。

wKgZO2gB_LyAFerbAAGDRCZcnUw199.png

圖9 通過32位XGMII接口接收幀

7系列器件發(fā)送通道上XGMII接口的延遲(數(shù)據(jù)從輸入xgmii_txd[31:0]傳輸?shù)絞t_txd[31:0]消耗的時間)為14個txoutclk周期。

而接收通道的延時范圍在44.6~72個coreclk周期,具體取值取決于接收端彈性緩沖器當前的填充數(shù)據(jù)個數(shù)。

64位的數(shù)據(jù)端口的時鐘頻率為156.25MHz,而32位數(shù)據(jù)位寬的時鐘頻率為312.5MHz。FPGA內部常用大位寬數(shù)據(jù)接口,降低時鐘頻率,獲得更好的時序,因此接口數(shù)據(jù)位寬選擇64位會比較好。

03內核時鐘分析

只要使用高速IP,就繞不開時鐘,并且繞不開GTX的時鐘,這也是前面在講解GTX的時候,深度分析其時鐘的原因。只要熟悉GTX內部各個時鐘的關系,其余上層IP的時鐘架構都很簡單。

如果XGMII的數(shù)據(jù)接口選擇64位,則7系列的FPGA必須給高速收發(fā)器提供156.25MHz的差分參考時鐘(refclk_p/refclk_n端口)。如果是32位數(shù)據(jù)接口,則必須提供312.5 MHz的差分參考時鐘。

下圖是該IP的內核時鐘結構,其中紅框部分可以放置在示例工程中。內核時鐘作為用戶接口的時鐘信號,就是輸入的差分參考時鐘信號。

wKgZPGgB_LyAdOFNAAFb4iREGr4013.png

圖10 內核時鐘架構

為什么上圖中TXOUTCLK為322.26MHz?通過這個時鐘生成uxrclk和usrclk2?

首先萬兆以太網(wǎng)的是指在進行64B66B編碼前的數(shù)據(jù)傳輸速率為10Gbps,經(jīng)過64B66B編碼之后,速率變?yōu)?0Gbps / (64 / 66) = 10.3125Gbps,即萬兆以太網(wǎng)的線速率為10.3125Gbps。

在前面講解GTX的64B66B編碼時,如下圖所示,高速收發(fā)器的PCS內部并行數(shù)據(jù)傳輸?shù)奈粚挒?2位,即可算出usrclk的頻率應該為10.3125Gbps / 32 = 322.265625 M Hz ≈ 322.26 MHz。

wKgZPGgB_LyAFKrIAAEjw6bT6Ag905.png

圖11 GTX內部傳輸數(shù)據(jù)位寬

此處的TXOUTCLK通過BUFG之后直接作為txusrclk和txusrclk2,沒有經(jīng)過MMCM分頻處理,還可以推測出高速收發(fā)器接收和發(fā)送的數(shù)據(jù)位寬同為32位。

為什么有上述推導,原因在講GTX的時候都詳解過,10G PCS PMA也不過是在GTX上封裝而來,底層的時鐘關系是不會變的,吃透GTX時鐘關系即可以吃透所有上層高速IP的時鐘關系。

現(xiàn)在已經(jīng)講解過Aurora、SRIO、10G PCS PMA的時鐘架構都遵循GTX的時鐘架構規(guī)則,后續(xù)的JESD204B依舊如此。

04其余接口

10G PCS PMA作為一個PHY層設計,內部也有很多的寄存器,用戶可以通過MDIO設置內部寄存器的數(shù)值。但是一般保持默認即可,因此該接口的時序不做講解,在講解千兆網(wǎng)接口時,詳解過MDIO接口時序,可以參考。

另外該IP可以通過DRP接口動態(tài)配置參數(shù),如果不需要使用DRP接口,則將drp接口的所有信號與core_to_gt_drp接口對應信號相連,并將drp_req連接到drp_gnt,允許內核在需要時訪問DRP,如下圖所示。pYYBAGORftaABrbPAAAAjgjvZ2U927.jpg

wKgZO2gB_LyAc5N1AACk06Pi13U531.png

圖12 DRP接口連接(無需訪問)

05IP的功能信號與調試信號

下圖是一個光纖接口的原理圖,其中tx_fault、MODDEF0、LOS(信號丟失)都上拉到VCC,且沒有連接到FPGA的管腳。

而10G PCS PMA建議將signal_detect(MODDEF0或非LOS)信號連接到VCC,tx_fault信號連接到GND。因此在調用IP時,直接把signal_detect賦值為1,tx_fault賦值為0,不與引腳相連。

同時10G PCS PMA提供了一個tx_disable信號,可以直接連接到光口。pYYBAGORftaABrbPAAAAjgjvZ2U927.jpg

wKgZO2gB_LyAFbsMAAF-ks3gQk8020.png

圖13 光口原理圖

該IP的發(fā)送端和接收端都有復位完成指示信號,reset_counter_done表示配置完成后已經(jīng)過了500 ns。

另外還有一些10GBASE-R的控制信號和狀態(tài)信號,如下表所示。特別注意仿真加速信號,在仿真開始時,必須給該信號提供一個上升沿(先拉低至少100ns后拉高),才能加速仿真,否則可能仿真半個小時也跑不出結果。

表3 控制端口信號

信號 I/O 含義
core_status[7:0] O [0]:PCS同步完成,[7:1]保留。
sim_speedup_control I 上升沿加速仿真。
pma_pmd_type[2:0] I 定義PMA/PMD類型,3’b111(10g base-SR),3’b110(10g base-LR),3’b101(10g base-ER)。

該IP還有一些控制信號configuration_vector[535:0]和狀態(tài)信號status_vector[447:0]。這兩個寄存器的每一位都有其特定含義,但用戶只需要關注一些常用的數(shù)據(jù)位即可,其余的寄存器在使用時可以通過手冊查看。

表4 部分狀態(tài)及控制信號

信號 I/O 含義
configuration_vector[0] I 使能PMA回環(huán)模式。
configuration_vector[512] I 設置PMA鏈接狀態(tài)。
configuration_vector[516] I 設置PCS鏈接狀態(tài)。
status_vector[18] O 接收端的PMA連接狀態(tài)。
status_vector[226] O 接收端的PCS連接狀態(tài)。

關于10G PCS PMA的講解到此結束了,通過以上介紹,足夠簡單使用該IP,后文將通過該IP構建萬兆以太網(wǎng)的PHY層。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • FPGA
    +關注

    關注

    1642

    文章

    21918

    瀏覽量

    611980
  • 以太網(wǎng)

    關注

    40

    文章

    5547

    瀏覽量

    174193
  • 接口
    +關注

    關注

    33

    文章

    8885

    瀏覽量

    152972
  • 光纖
    +關注

    關注

    19

    文章

    4050

    瀏覽量

    74445
  • Xilinx
    +關注

    關注

    73

    文章

    2179

    瀏覽量

    123909

原文標題:詳解Xilinx的10G PCS PMA IP

文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    Xilinx Ten Giga Sub System IP生成詳細步驟

    /ip_documentation/axi_10g_et... IP核提供一個MAC模塊和一個PCS/PMA模塊,
    的頭像 發(fā)表于 12-30 12:56 ?4099次閱讀
    <b class='flag-5'>Xilinx</b> Ten Giga Sub System <b class='flag-5'>IP</b>生成詳細步驟

    10G光模塊知識:全面介紹10G光模塊類型、參數(shù)

    `在互聯(lián)數(shù)據(jù)和光網(wǎng)絡高速發(fā)展的時代,100G光模塊、200G光模塊甚至400G光模塊都在不斷涌現(xiàn)。但是,高速有著高速的好處,低速也有著低速的優(yōu)點。在高速光模塊主流的年代,10G光模塊以
    發(fā)表于 01-29 15:04

    10G光模塊百科:詳解10G光模塊分類和應用

    `10G光模塊作為一種低速光模塊,在現(xiàn)在速率達到400G的光模塊市場上已經(jīng)很少人關注。但是400G有400G的應用,10G也有著
    發(fā)表于 05-29 14:52

    ISE 14.7中的IP核許可證警告

    處所附)。它還在位文件生成期間給出了一些警告消息。我在這里附加了完整的編譯日志和xinfo。我在設計中使用的是10G MAC內核和10GBASE-R PCS / PMA內核。謝謝,維杰
    發(fā)表于 11-28 15:16

    ten_gig_eth_pcs_pma沒有許可證,IP合成失敗

    /10g/project_1.srcs/sources_1/ip/ten_gig_eth_pcs_pma_0/ten_gig_eth_pcs_pma
    發(fā)表于 11-28 15:21

    為什么連接到PCS PMA核心的10-GMAC核心不起作用?

    我按照給定的示例連接10千兆以太網(wǎng)MAC和10千兆以太網(wǎng)PCS / PMA,并使用光纜將其連接到10G網(wǎng)卡。問題是MDC信號不存在,鏈接沒有
    發(fā)表于 03-15 14:53

    以太網(wǎng)100Base-X PCS/PMA如何實現(xiàn)

    我正在嘗試實現(xiàn)以太網(wǎng)100Base-X PCS / PMA并下載xilinx的許可證,但這是針對“Virtex-5”而我需要一個“Spartan3E”并且我想知道如何正確實現(xiàn)它,可以幫助我請盡快
    發(fā)表于 05-10 14:29

    如何在主板上使用EMAC + PCS / PMA的設計?

    ://www.xilinx.com/products/boards-and-kits/EK-V7-VC709-CES-G.htm)上有一個附有圖表的特色設計。環(huán)顧四周但找不到下載它的位置。有人可以從哪里下載?非常感謝任何在此主板上使用EMAC +
    發(fā)表于 09-19 06:26

    使用10G以太網(wǎng)MAC IP

    您好,如果我想使用10G以太網(wǎng)MAC IP核,那么可用的10G支持板。問候維諾德庫馬爾
    發(fā)表于 04-02 10:08

    使用VC 707開發(fā)板創(chuàng)建了一個10G基礎PCS PMA內核如何檢查回路?

    嗨,大家好,我正在使用VC 707開發(fā)板,我創(chuàng)建了一個10G基礎PCS PMA內核,現(xiàn)在我想檢查回路。但是在ug885_VC 707(用戶手動)中共有5個時鐘源頁面沒有281>
    發(fā)表于 07-28 08:59

    基于FPGA的光口通信開發(fā)案例|基于FPGA Kintex-7 SFP+光口的10G UDP網(wǎng)絡通信開發(fā)案例

    Ethernet PCS/PMA IP核本案例使用10G Ethernet PCS/PMA
    發(fā)表于 01-21 19:24

    如何調試10G/25G以太網(wǎng)IP自協(xié)商/Link Training

    打開你的Vivado工具,選擇你所需要的器件類型,在IPCatalog里產(chǎn)生一個10G/25GEthernet Subsystem IP core,勾上BASE-KR和IncludeAN/LT Logic以涵蓋IP自協(xié)商功能
    的頭像 發(fā)表于 09-03 09:57 ?9676次閱讀
    如何調試<b class='flag-5'>10G</b>/25<b class='flag-5'>G</b>以太網(wǎng)<b class='flag-5'>IP</b>自協(xié)商/Link Training

    兩個網(wǎng)絡相關的開源項目詳解

    堆棧的組件。包括用于1G10G/25G 的 MAC 模塊、一個 10G/25G PCS/
    的頭像 發(fā)表于 10-27 09:20 ?3023次閱讀
    兩個網(wǎng)絡相關的開源項目<b class='flag-5'>詳解</b>

    處理以太網(wǎng)幀以及IP,UDP和ARP的模塊

    頂層千兆和10G MAC模塊是eth_mac_ *,具有各種接口,并且?guī)в?不帶有FIFO。頂層10G PCS/PMA PHY模塊為eth_phy_
    的頭像 發(fā)表于 06-30 09:51 ?1239次閱讀

    如何使用1G/10G/25GSwitching以太網(wǎng)IP切換速率

    本文介紹1G/10G/25G Switching以太網(wǎng)IP的手動和自動兩種切換速率的原理和方法
    的頭像 發(fā)表于 07-10 16:29 ?1754次閱讀
    如何使用1<b class='flag-5'>G</b>/<b class='flag-5'>10G</b>/25GSwitching以太網(wǎng)<b class='flag-5'>IP</b>切換速率