FPGA千兆以太网SGMII接口配置实战
一:背景环境
物理环境:外部为标准千兆网络RJ45接口,经过PHY芯片后,转化为SGMII接口连接在XILINX芯片的GTX上,需要正确对网络数据进行获取。
采用1G/2.5G Ethernet PCS/PMA or SGMII(PG047)和Tri-Mode Ethernet MAC(PG051)的IP核。

二:1G/2.5G Ethernet PCS/PMA 配置和说明
本次选择的MAC IP核,如果和PS连接可以选择ZYNQ PS ;


本次选择SGMII,如果电口可以选择1000BASEX,则为SFP端口。

本次选择MDIO不勾选,勾选配置有问题。



GTX一个bank共用一组差分时钟,如果多个SGMII端口,则一个选择包含,其它选择不包含。

多个SGMII端口的共享一个core的连接图示:

IP核其它端口说明配置:
// input ports .independent_clock_bufg (clk_200m ), // must 200m clk ; .configuration_vector (5'b10000 ), // .an_adv_config_vector ('d33 ), // .an_restart_config ('b0 ), // .speed_is_10_100 (speedis10100 ), // link MAC IP Core speedis10100 .speed_is_100 (speedis100 ), // link MAC IP Core speedis100 .sigal_detect ('b1 ), // // output ports .status_vector (),// IP Core & sgmii link statusstatus_vector可以查看当前IP核以及链路状态,各个bit位说明:


三:Tri-Mode Ethernet MAC 配置和说明
不配置MDIO和自适应,直接1000M。

关闭包过滤和统计功能:

IP核其它端口说明配置:
//----------------------------------// // input ports .gtx_clk (userclk2_out ), // link SGMII IP Core userclk2_out .pause_val ('b0 ), // .pause_req ('b0 ), // // output ports .speedis10100 (speed_is_10_100), // link SGMII IP Core speed_is_10_100 .speedis100 (speed_is_100 ), // link SGMII IP Core speed_is_100三:上版验证
环境:芯片xc7z045ffg900-2 ,bank109一共四路SGMII端口。
结果:四路逻辑端接收的AXIS数据正确,接收正常;发送数据正常;
过程以及遗留问题:
(1)两个IP核都强制的千兆,未验证自适应。
(2)MAC IP与SGMII IP配置MDIO后有问题未进一步验证。