10G光纤调试记录
笔者最近要测试一个板子的光口连通性,遇到一些问题:如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的极性即可。