ZCU111/ZynqMP/Zynq ultrascale+ RFSoC/MPSoC 1G/2.5G Ethernet PCS/PMA or SGMII IP核使用——反轉信號線極性


誤以為我的設備與XX設備的正負定義是反的,即RX-與RX+;TX-與TX+反轉。所以找到了一些辦法進行反轉極性。后來發現用不到,就先存個檔。

后來發現只反了RX路,還是用到了

1G/2.5G Ethernet PCS/PMA or SGMII ip core 及相關

這個過程中,讀了很多的文檔,大概理清楚這個ip core是個何方神聖。

Zynq PS GEM 連接關系

正常的網絡的設備是由MAC+PHY組成,而ZYNQ的PS的GEM就可以認為是MAC控制器,MAC控制器工作在數據鏈路層,用於產生MAC幀。之后MAC芯片可以通過多種接口[GMII RGMII SGMII]將數據發送給PHY芯片,PHY芯片將數據調制到傳輸介質上。

ZynqMP的GEM (gigabit Ethernet controller)的框圖如下,可以通過PCS連接到PS-GTR,轉為SGMII;或者通過GMII to RGMII Adapter轉為RGMII 通過MIO接出;或者通過EMIO將GMII接入到FPGA當中。

image

XX設備是通過第一種方式,用GTR實現了SGMII接口,然后將其直接連接到了連接器上,這樣就需要我在PL實現SGMII接口與其直接對接。

IP核是個PHY

在MAC與PHY之間有一個叫做MDIO的接口,這個接口其實就是MAC與PHY交換控制和狀態信號的接口,主要利用這個接口對PHY進行配置,PHY的MDIO的寄存器是在IEEE規范中進行定義的,這里詳見 以太網的phy寄存器分析

自動協商

自動協商要求連接器件的雙方均具有自動協商的功能,自動協商工作在物理層,是PHY芯片提供的功能,但是XX設備相當於MAC直連,所以並不具備自動協商的能力,所以需要1g/2.5g pcs/pma 來關閉自動協商功能。

image

那么問題來了,如果關閉了自動協商,IP核怎么知道自己工作在什么頻率下呢?
這就要靠MDIO通道來傳遞控制信息。
在petalinux下可以選擇編譯ethtool來控制以太網的速率。需要在使用GE之前執行下面命令

ethtool -s eth0 speed 1000 duplex full autoneg off

GTR的功能 (PMA與PCS的概念)

調試也需要知己知彼,我花了一晚上的時間了解GTR相關的東西。主要集中在UG1085

image

image

physical medium attachment (PMA)  在主要負責檢測連接狀態
physical coding sublayer (PCS) 主要負責數據的交互


關於1g/2.5g ethernet pcs/pma or sgmii 與 GTY的關系

image

image

根據Vivado生成文件可以看出,1g/2.5g ethernet pcs/pma or sgmii在其內部調用了PL的GTY,查看GTY的手冊,GTY是可以通過配置引腳的高低電平來反轉收發的正負極性的。

再查看1g/2.5g ethernet pcs/pma or sgmii的PG,找到了GTY配置引腳的在1g/2.5g ethernet pcs/pma or sgmii的映射。

image

這個兩個配置引腳被定義在Transceiver Control端口中。

使能Transceiver Control

1g/2.5g ethernet pcs/pma or sgmii的配置中,Standard選卡,勾選additional transceiver debug and status ports

image

然后會出現DRP接口和Transceiver Control端口,這時需要給DRP設置時鍾,與IP核相同,和DRP的數據全部置0

https://forums.xilinx.com/t5/Other-FPGA-Architecture/DRP-usage-in-GTX-Transceiver-Wizard/td-p/468478

image

最后將gt_rxpolaritygt_txpolarity中你希望交換極性的端口置1即可反轉信號線極性了!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM