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当中。

ZCU111/ZynqMP/Zynq ultrascale+ RFSoC/MPSoC 1G/2.5G Ethernet PCS/PMA or SGMII IP核使用——反转信号线极性

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 来关闭自动协商功能。

ZCU111/ZynqMP/Zynq ultrascale+ RFSoC/MPSoC 1G/2.5G Ethernet PCS/PMA or SGMII IP核使用——反转信号线极性

那么问题来了,如果关闭了自动协商,IP核怎么知道自己工作在什么频率下呢?
这就要靠MDIO通道来传递控制信息。
在petalinux下可以选择编译ethtool来控制以太网的速率。需要在使用GE之前执行下面命令

ethtool -s eth0 speed 1000 duplex full autoneg off

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

调试也需要知己知彼,我花了一晚上的时间了解GTR相关的东西。主要集中在UG1085

ZCU111/ZynqMP/Zynq ultrascale+ RFSoC/MPSoC 1G/2.5G Ethernet PCS/PMA or SGMII IP核使用——反转信号线极性

ZCU111/ZynqMP/Zynq ultrascale+ RFSoC/MPSoC 1G/2.5G Ethernet PCS/PMA or SGMII IP核使用——反转信号线极性

physical medium attachment (PMA)  在主要负责检测连接状态
physical coding sublayer (PCS) 主要负责数据的交互


关于1g/2.5g ethernet pcs/pma or sgmii 与 GTY的关系

ZCU111/ZynqMP/Zynq ultrascale+ RFSoC/MPSoC 1G/2.5G Ethernet PCS/PMA or SGMII IP核使用——反转信号线极性

ZCU111/ZynqMP/Zynq ultrascale+ RFSoC/MPSoC 1G/2.5G Ethernet PCS/PMA or SGMII IP核使用——反转信号线极性

根据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的映射。

ZCU111/ZynqMP/Zynq ultrascale+ RFSoC/MPSoC 1G/2.5G Ethernet PCS/PMA or SGMII IP核使用——反转信号线极性

这个两个配置引脚被定义在Transceiver Control端口中。

使能Transceiver Control

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

ZCU111/ZynqMP/Zynq ultrascale+ RFSoC/MPSoC 1G/2.5G Ethernet PCS/PMA or SGMII IP核使用——反转信号线极性

然后会出现DRP接口和Transceiver Control端口,这时需要给DRP设置时钟,与IP核相同,和DRP的数据全部置0

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

ZCU111/ZynqMP/Zynq ultrascale+ RFSoC/MPSoC 1G/2.5G Ethernet PCS/PMA or SGMII IP核使用——反转信号线极性

最后将gt_rxpolaritygt_txpolarity中你希望交换极性的端口置1即可反转信号线极性了!

上一篇:W7100A


下一篇:在 MacOS 系统的 /home 目录下创建文件夹的方法