ALINX以太网例程调试总结

   RTL级别的MAC,支持千兆和百兆(10M测下来好像有问题),实现了基本ARP/ICMP/UDP功能。不得不说这个很厉害了,对以太网的协议需要非常了解。

  但我在将代码移植到其它平台时,实际测时发现了一些问题。

  按照RGMII来说:时钟设计:

  由于RGMII接口存在两种时序,一种中心对齐一种边沿对齐。

  这个设计是按中心对齐直接做的:

  输入时钟通过BUFG直接去拍RXD数据,数据通过IDDR进入,时钟路径如下:

 

  输出时钟直接拍TXD,通过ODDR:

 

   

 

  1、缺少io延时约束文件

     参照xilinx的约束文件【GMII to RGMII v4.0/pg160】:接收约束和发送越是应该都是两种参数,但实际却只有发送有两种,这一点我很奇怪。而且输入约束也和自己计算的结果对不上。。。

https://china.xilinx.com/support/documentation/ip_documentation/gmii_to_rgmii/v4_0/pg160-gmii-to-rgmii.pdf

ALINX以太网例程调试总结_第1张图片

ALINX以太网例程调试总结_第2张图片

 

 

  测试命令

  ping -n 50 -l 64 -w 3 192.168.0.2

仅作测试用

相关参考

https://www.cppentry.com/bencandy.php?fid=92&id=230372

https://mp.weixin.qq.com/s?__biz=Mzg4ODA5NzM1Nw==&mid=2247485472&idx=1&sn=51681f4958de4aa84d8c728ab09787fd&chksm=cf811702f8f69e145ec7ee2f318ba477c4c44a4007c6c000de11402f4f00a8aab54f57dec8f3&mpshare=1&scene=1&srcid=0524rzr7sB7g3U6oIkfGUSKK&sharer_sharetime=1590288734436&sharer_shareid=f1f2fdac6072a5403783a27f9c6ce2dd&key=a30a10740cd526bbb1b8ad874c9fafec75e53394ae7ae33270f55c9faabdf8c6b20e33d186d93f748e7a7fcc1b4e86f808151386f91e06cc91ec5994b8fb19d217e01bfd00ab7006a46d3b34f3309b96&ascene=1&uin=MjU2NDE2NDQwNw%3D%3D&devicetype=Windows+10+x64&version=62090070&lang=en&exportkey=AUAKWJ1Eo3Fk25Jffv%2BLGiQ%3D&pass_ticket=5wlYvxn5HcpRKLZPwGWx1y71tPjIk7YeFNVBrRWaGbDTPcKAIr162XJS%2F9kiUdDM

https://myoschain.com/blog/168329950623956993

测试工具推荐:

ALINX以太网例程调试总结_第3张图片

你可能感兴趣的:(FPGA)