测试场景
测试拓扑图如下
试场景连接图
测试方法:使用TestCenter向被测板子上的千兆以太网口打流,在FPGA内部通过自回环从源端口返回给TestCenter,通过看TestCenter控制界面上显示结果判断自回环是否正确。
测试RGMII接口时使用的PHY芯片为MARVELL 公司的88e1512PHY芯片,RGMII顶层接口信号如图1所示。
图1 测试代码顶层接口信号采用以往经验发现问题
按照以往的RGMII接口使用经验,通过约束将接口的输出时钟延迟了2ns,如图2所示。使用TestCenter对以太网口进行测试,以太网口无法正常发送数据。具体表现为,TestCenter接收的数据帧数目,和发送的数据帧数目相等,但是接收的bit数明显比发送的bit数少。抓取测试代码的内部信号发现,FPGA接收到的以太网数据帧均正常,所以推测FPGA给PHY芯片的发送数据的时序不正常。
图2 发送时钟偏移2ns约束代码
修改代码,不对发送时钟进行2ns的偏移,如图3所示。使用TestCenter对以太网口进行测试,以太网口正常地工作。
图3 发送时钟不进行偏移2ns问题原因定位
推测在不同的PHY芯片的工作模式下,对时钟的要求不一样。
之前使用的REALTEK的RTL8211E PHY芯片,需要对发送时钟进行2ns的延迟,查找该 PHY芯片手册, PHY芯片对发送时钟有图4所示的要求。表格中明确指出,需要自己添加时钟和数据之间的2ns时延。
图4 RTL8211E的发送时钟
查找目前调试板子上所使用MARVELL的88e1512 PHY芯片的芯片手册,发现RGMII接口有4种不同的时钟工作模式。
图5 88e1512的4种时钟工作模式
4种时钟工作模式下的信号时序图如图6、图7所示,结合上板现象,推测当前的工作模式为add delay模式,即Register21_2.4=1。
图6 RGMII发送时序
图7 RGMII接收时序
图8 寄存器的时钟模式配置
由上面图6、图7和图8可以看出,跟前面RTL8211E PHY芯片不同的是,MARVELL的88e1512 PHY芯片可以配置PHY与FPGA的RGMII接口时钟信号和数据信