最近做了UDP,FPGA端回环,PC端调试助手发送并接收。
1、千兆测试完成正常。
2、接下来测试百兆,起初没有在调试助手发送数据没有接收到,怀疑是协议有bug;
3、用fpga端抓数据,可以观测到数据的请求和应答,但是,一直在应答给PC,在调试助手端依旧没有数据;
4、打开wireshark,抓取数据可以看到pc的请求,fpga的应答,数据的发送和接收;检查ARP和UDP各个字段数据均正常;
5、调试助手可以接收到数据,数据正常;
6、再次关闭wireshark后,调试助手数据丢失;
7、查询过网上一些相关问题,检查了几个部分:
1、防火墙:关闭和开启无影响;
2、网卡的校验:选择以太网网卡的速率100,ipv4校验关闭开启,UDP校验开启,均无改善;
3、wireshark开启了混杂模式:将wireshark的混杂模式关闭,wireshark和调试助手都不能接收到数据;
结论:
结论目前下起来比较矛盾,梳理一下:
a、混杂模式:可能是mac或者ip地址等数据有误,但是抓取到了应答包和数据中的各个协议字段是正确的;

b、如果是协议问题,千兆也应该会出现同样的问题才对;
c、如果是时序问题,开启wireshark应该不影响fpga的时序和数据;
接下来怀疑程序的问题,修改了txc的时钟(使用vivado的mac core),情况有变化:在不开启wireshark时,调试助手有数据接收,但是数据并不是全部都能接收到,打开wireshark后,数据恢复正常接收。
难道是时序问题?