SGMII调试及丢包问题

使用88E1514和FPGA连接做以太网通信,走的是LVDS接口

ip核使用:GMII转SGMII的桥,使用了同步SGMII模式,需要提供一路125MHz的同步时钟,并固定在1G模式。

------------------------------------------------------------------------------------------------------------------------

1、外部时钟使用GC管脚,可以直接给到MMCM/PLL,无需加BUFG会引入零点几纳秒的延时

     默认我们认为clk和data是对齐的,所以一般要使用MMCM的对齐功能,即输入时钟和输出时钟同相位。MMCM实现对齐的方式是在fbclk上插入了一个bufg,在例化代码可以看到:

   

2、修改了xiliinx ip核源文件:(使用了最低抖动,默认是OPTIMIZED)

3、SGMII的PHY是CML电路,和FPGA LVDS端接时,FPGA输出需要使用交流耦合,一般串一个0.1~0.01uF/25V的

电容,FPGA输入可以直接耦合(也可以交流耦合),但注意不要使用外部终端电阻,使用FPGA内部电阻

4、clock_delay_group约束

5、修改差分输入为单端时钟输入:

虽然ip核文件不支持修改,但可以使用其它编辑器打开,在vivado外面修改,修改后在ip核重新生成的过程中替换上去即可

gig_ethernet_pcs_pma_0_sgmii_phy_clk_gen.v

参考:

pg047-gig-eth-pcs-pma.pdf

Alaska®
88E1510/88E1518/
88E1512/88E1514
Integrated 10/100/1000 Mbps
Energy Efficient Ethernet
Transceiver
原文地址:https://www.cnblogs.com/time93/p/13246387.html