zynq rgmii转sgmii配置_RGMII接口调试,你要的全在这里了

实验室回来一批板子,上面有RGMII接口、SGMII接口等各种接口,怎么测试这些网口是否正常呢?的确需要一些经验。比如RGMII接口,最重要的是看在哪里去做的时钟和数据偏移。这时,常常需要使用VIO去读取PHY里面对应寄存器的值,看是否工作在正常RGMII接口时序模式。

测试场景

测试拓扑图如下

1884070d296a7455b4e9d705cb2876b1.png

试场景连接图

测试方法:使用TestCenter向被测板子上的千兆以太网口打流,在FPGA内部通过自回环从源端口返回给TestCenter,通过看TestCenter控制界面上显示结果判断自回环是否正确。

测试RGMII接口时使用的PHY芯片为MARVELL 公司的88e1512PHY芯片,RGMII顶层接口信号如图1所示。

b8443199005740792272475b538fc308.png

图1 测试代码顶层接口信号

采用以往经验发现问题

按照以往的RGMII接口使用经验,通过约束将接口的输出时钟延迟了2ns,如图2所示。使用TestCenter对以太网口进行测试,以太网口无法正常发送数据。具体表现为,TestCenter接收的数据帧数目,和发送的数据帧数目相等,但是接收的bit数明显比发送的bit数少。抓取测试代码的内部信号发现,FPGA接收到的以太网数据帧均正常,所以推测FPGA给PHY芯片的发送数据的时序不正常。

85fb71996e63998554fa3c6449529173.png
cc7964a34f7ff2271bb41d698bc64889.png

图2 发送时钟偏移2ns约束代码

修改代码,不对发送时钟进行2ns的偏移,如图3所示。使用TestCenter对以太网口进行测试,以太网口正常地工作。

e2b2f228dee2542fe94869f3339adf0c.png
779206916441104b61e029e0def9d58e.png

图3 发送时钟不进行偏移2ns

问题原因定位

推测在不同的PHY芯片的工作模式下,对时钟的要求不一样。

之前使用的REALTEK的RTL8211E PHY芯片,需要对发送时钟进行2ns的延迟,查找该 PHY芯片手册, PHY芯片对发送时钟有图4所示的要求。表格中明确指出,需要自己添加时钟和数据之间的2ns时延。

c1afc95f7dafba1d63226b9e2efa8503.png

图4 RTL8211E的发送时钟

查找目前调试板子上所使用MARVELL的88e1512 PHY芯片的芯片手册,发现RGMII接口有4种不同的时钟工作模式。

  • 2
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值