女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

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

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

3天內不再提示

詳解Xilinx的10G PCS PMA IP

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

來源:數字站

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

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

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

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

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

01概括10GBASE-R/KR

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

wKgZO2gB_HOAKRUrAAC4SZC401Q831.png

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

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

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

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

wKgZO2gB_HOAfpRBAAE3pK1PdoQ209.png

圖2 10GBASE-R內核框圖

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

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

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

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

wKgZPGgB_HOAWnoZAADUj7XtbQ0405.png

圖3 10GBASE-KR內核框圖

02XGMII接口時序

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

前文講解的芯片間的XGMII接口如下所示,接收端和發送端采用32位雙沿傳輸的數據線通信。pYYBAGORftaABrbPAAAAjgjvZ2U927.jpg

wKgZO2gB_HOAEStYAACBV5VwYkw656.png

圖4 芯片間的XGMII接口

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

2.164位數據位寬

下表是64位數據位寬的XGMII端口信號,8位控制位??刂莆坏母唠娖奖硎緮祿盘枌止潪榭刂莆?,低電平表示數據信號對應字節為數據位。

表1 64位的MAC端接口端口

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

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

萬兆以太網規定起始位/S/可以位于第一字節,也可以位于第四字節。

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

由下圖可知,XGMII接口先傳輸低字節數據,后傳輸高字節數據。因此起始字符所在數據的低5字節為控制字符,發送起始字節/S/后,開始傳輸數據,高三字節為數據,對應的xgmii_txc的值為8’h1f。

wKgZPGgB_JaACISjAAHtk3fYZuM984.png

圖5 64位xgmii發送數據接口時序

因為以太網可以傳輸任意字節包長的數據,停止位可以出現在任意字節的位置,上圖中的/T/字符表示停止位。

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

wKgZO2gB_JaAZuzVAAI-IyC3RS4899.png

圖6 64位xgmii發送數據接口時序

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

wKgZPGgB_JaAKL1XAAIpkm-1ibE408.png

圖7 64位xgmii接收數據接口時序

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

表2 XGMII字符的部分列表

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

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

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

2.232位數據位寬

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

表2 32位的MAC端接口端口

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

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

wKgZO2gB_LyAB1fkAAGb-HPXBBg590.png

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

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

wKgZO2gB_LyAFerbAAGDRCZcnUw199.png

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

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

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

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

03內核時鐘分析

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

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

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

wKgZPGgB_LyAdOFNAAFb4iREGr4013.png

圖10 內核時鐘架構

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

首先萬兆以太網的是指在進行64B66B編碼前的數據傳輸速率為10Gbps,經過64B66B編碼之后,速率變為10Gbps / (64 / 66) = 10.3125Gbps,即萬兆以太網的線速率為10.3125Gbps。

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

wKgZPGgB_LyAFKrIAAEjw6bT6Ag905.png

圖11 GTX內部傳輸數據位寬

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

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

現在已經講解過Aurora、SRIO、10G PCS PMA的時鐘架構都遵循GTX的時鐘架構規則,后續的JESD204B依舊如此。

04其余接口

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

另外該IP可以通過DRP接口動態配置參數,如果不需要使用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的發送端和接收端都有復位完成指示信號,reset_counter_done表示配置完成后已經過了500 ns。

另外還有一些10GBASE-R的控制信號和狀態信號,如下表所示。特別注意仿真加速信號,在仿真開始時,必須給該信號提供一個上升沿(先拉低至少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]和狀態信號status_vector[447:0]。這兩個寄存器的每一位都有其特定含義,但用戶只需要關注一些常用的數據位即可,其余的寄存器在使用時可以通過手冊查看。

表4 部分狀態及控制信號

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

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

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

    關注

    1643

    文章

    21954

    瀏覽量

    613939
  • 以太網
    +關注

    關注

    40

    文章

    5582

    瀏覽量

    174727
  • 接口
    +關注

    關注

    33

    文章

    8932

    瀏覽量

    153183
  • 光纖
    +關注

    關注

    19

    文章

    4095

    瀏覽量

    74670
  • Xilinx
    +關注

    關注

    73

    文章

    2181

    瀏覽量

    124316

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

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

收藏 人收藏

    評論

    相關推薦
    熱點推薦

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

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

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

    `在互聯數據和光網絡高速發展的時代,100G光模塊、200G光模塊甚至400G光模塊都在不斷涌現。但是,高速有著高速的好處,低速也有著低速的優點。在高速光模塊主流的年代,10G光模塊以
    發表于 01-29 15:04

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

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

    ISE 14.7中的IP核許可證警告

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

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

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

    以太網100Base-X PCS/PMA如何實現

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

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

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

    使用10G以太網MAC IP

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

    使用VC 707開發板創建了一個10G基礎PCS PMA內核如何檢查回路?

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

    基于FPGA的光口通信開發案例|基于FPGA Kintex-7 SFP+光口的10G UDP網絡通信開發案例

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

    如何調試10G/25G以太網IP自協商/Link Training

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

    兩個網絡相關的開源項目詳解

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

    處理以太網幀以及IP,UDP和ARP的模塊

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

    如何使用1G/10G/25GSwitching以太網IP切換速率

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