10G光纤调试记录

发布时间 2023-08-15 10:28:06作者: 老少皆宜

笔者最近要测试一个板子的光口连通性,遇到一些问题:如GTH/GTX极性反转。特此记录。

1.背景知识

  IEEE802.3各层级关系:

    sfp:sfp光模块负责光电信号的转换,负责信号的发送与接收。

    phy:即物理层收发器,负责信号的串转并/并转串功能。

    MAC层负责控制与连接物理层的物理介质.在发送数据的时候,MAC协议可以事先判断是否可以发送数据,如果可以发送将给数据加上一些控制信息,最终将数据以及控制信息以规定的格式发送到物理层;在接收数据的时候,MAC协议首先判断输入的信息并是否 发生传输错误,如果没有错误,则去掉控制信息发送至LLC层。

    数据链路层:包含MAC层与LLC层负责物理层与网络层的通信,与phy通过GMII或其它接口连接。

 

 

2.硬件测试方案

  由于条件与工期限制,手边没有具有千兆网卡的上位机。所以将板子光模块收发接口相连,采取FPGA自发自收的方法,通过ila触发捕获信号,测试接收数据是否一致,以此确定硬件的连通性。

3.fpga设计

  3.1 10G Ethernet ip核简介

         该ip核分为MAC层与PCM/PMA层两部分。该IP核在share logic框图页面有include shared logic core与include share logic in example design选项。二者的区别是前者在生成ip核时内部会包含qpll模块,而后者需要qpll模块提供的时钟需从外部给入。同时使用sfp接口多个通道时例化多个ip核可采取下图所示的时钟复用方案。

 

  3.2 fpga程序结构

        协议栈使用米联客提供的UDP ip协议栈,具体参考S03-CH05_UDP 万兆光通信 - 3-光通信 - 米联客uisrc

  3.3 GTH/GTX极性反转方案:由于板子光模块的P/N极连接反相,需要使用FPGA自带高速串行收发器GTH/GTX的极性反转功能。由于使用的是10G Ethernet ip核(此ip核包含GTH/GTX),所以生成ip核时勾选Global Synthesize选项(表示将IP的HDL和用 户的HDL一起进行综合)。然后在10G Ethernet ip核源码里面修改GTH/GTX的极性即可。