1G/2.5G Ethernet PCS/PMA or SGMII IP核学习
所学习的千兆以太网光通信模型如下图所示:

软件架构如下图所示:

按照软件构架,自下向上分析实现:
一、1G/2.5G Ethernet PCS/PMA or SGMII ip核设置
** MAC选择**

- Tri-Mode Ethernet MAC: Tri-mode Ethernet MAC(三态以太网 MAC) 在Zynq-7000 PL侧选该选项
- Zynq-PS Gigabit Ethernet Controller: 以太网 MAC (EMAC)在 Zynq-7000 PS侧 选该选项
这里选择使用PL端MAC
线速率选择
IP核提供了两种数据速率1GMbps和2.5Gmbps,选择1G;

标准选择

-
1000Base-X: 1000表示千兆速率,base表示基带传输,X表示采用了8B/10B分组码编码方式;
当采用1000BASEX时候,IP核作为PCS层(编码)+PMA层(并转串),通过收发器向PMD发送,此时FPGA与外部千兆接口转换器 (GBIC) 或小型可插拔 (SFP) 光收发器进行连接。
如果你用的是光模块(如SFP),并且链路对端也是光纤设备,建议选择 1000BASE-X。 -
SGMII: 提供提供GMII到SGMII桥接的功能。
当采用SGMII时候,IP核作为PCS层,向PHY芯片的PCS层发送(相当于PCS、PMA层集成在外部PHY芯片中,在PHY芯片中完成串并转换),此时FPGA与现成以太网PHY设备(RJ-45电口)进行连接。 -
BOTH: 在1000BASE-X和SGMIL标准之间进行动态切换,哪个稳定先与哪个建立连接。
两种不同连接方式的图示:

核功能选择

-
物理接口: 设备专用收发器;物理接口将是设备特定的收发器即GT高速收发器,即上边原理图的RT与TX(此处只有一个选项默认);
-
接收GMII时钟源: 输入IP核内部的MMCM的时钟源选择为GT收发器输出的时钟TXOUTCLK(默认选项即可),该MMCM将产生我们所需要的接口时钟;
-
管理选项: MDIO管理接口和自协商,这里提一下,采用SGMII外接PHY芯片时候,MDIO是为了配置PHY芯片用的,一般PHY默认配置就可以正常使用(暂时都用不到,不选);
共享逻辑

- 核内共享逻辑: 设计只采用一个该IP核的时候,就选择此项
- 示例设计中包含共享逻辑: 当设计中需要同时使用若干个此IP核,且所使用的GTX均位于同一个GTX BANK中,只需其中1个IP核内部的共享资源(MMCM、GTX PLL、GTX
参考时钟等)便可以满足所有IP核的需求,即选择将共享资源包含在IP核内部。通过共享逻辑可以减小硬件资源的消耗,并且各个接口输出时序是一致的。(暂时没有用到,不选)
二、1G/2.5G Ethernet PCS/PMA or SGMII ip核实际使用
1. IP核接口图

时钟与复位接口
| 信号名称 | 接口类型 | 功能描述 |
|---|---|---|
| gtrefclkl_p / gtrefclkl_n | input | 125Mhz差分参考时钟输入(专用时钟引脚) |
| gtrefclk_out | output | 参考时钟输出,PCS/PMA IP核内部生成的参考时钟,可以提供给其他模块使用 |
| gtrefclk_bufg_out | output | 经过BUFG缓冲的参考时钟输出,通常连接到FPGA的全局时钟网络,用于驱动其他逻辑模块 |
| rxn / rxp | input | 差分接收信号,连接到外部PHY芯片或光模块的差分接收输出 |
| txn / txp | output | 差分发送信号,连接到外部PHY芯片或光模块的差分发送输入 |
| reset | 输入 | IP核复位 |
| userclk_out | output | 用户时钟输出,通常频率为62.5MHz(千兆以太网),用于驱动MAC IP核和用户逻辑的时钟。 |
| userclk2_out | output | 用户时钟2输出,通常频率为125MHz(千兆以太网),是userclk_out的二倍频 |
| txoutclk | output | 由差分参考时钟来,根据时钟域图可知为62.5MHZ .由GTX/GTP高速收发器(Transceiver)内部的PLL(通常是TX PLL)生成。 |
| rxoutclk | output | 接收方向(RX)输出的时钟信号,由GTX/GTP高速收发器的时钟恢复电路(CDR, Clock Data Recovery)从接收到的数据流中提取出来。 |
| rxuserclk | output | 接收数据主时钟,驱动MAC/用户逻辑 |
| rxuserclk2 | output | rxuserclk二分频,驱动低速接收逻辑 |
| independent_clock_bufg | output | 独立全局时钟,驱动管理/监控/异步逻辑 |
| resetdone | output | 复位完成指示,系统初始化/链路恢复判断 |
| pma_reset_out | output | PMA子层复位完成 |
| mmcm_locked | output | MMCM锁定指示,时钟稳定性判断.当IP核内部的MMCM时钟管理模块锁定输入时钟并输出稳定时钟时,该信号拉高。 |
| gt0_qplloutclk_out | 输出 | GT收发器QPLL主时钟输出 |
| gt0_qplloutrefclk_out | 输出 | GT收发器QPLL参考时钟输出 |
GMII接口
| 信号名称 | 接口类型 | 功能描述 |
|---|---|---|
| gmii_txd[7:0] | 输入 | MAC到PHY的数据 |
| gmii_tx_en | 输入 | 发送数据有效,高电平表示当前gmii_txd数据有效。 |
| gmii_tx_er | 输入 | 发送数据错误,高电平表示当前发送数据有错误。 |
| gmii_rxd[7:0] | 输出 | PHY到MAC的数据 |
| gmii_rx_dv | 输出 | 接收数据有效,高电平表示gmii_rxd数据有效。 |
| gmii_rx_er | 输出 | 接收数据错误,高电平表示接收数据有错误。 |
| gmii_isolate | 输入 | GMII接口隔离控制,GMII隔离信号 |

1G2.5G Ethernet PCSPMA or SGMII IP核&spm=1001.2101.3001.5002&articleId=145117934&d=1&t=3&u=067f03c3b7a2429da3c8c8c108dc61c6)
355

被折叠的 条评论
为什么被折叠?



