Xilinx Virtex6 FPGA与PC端千兆网口通信问题[问题
时间:12-12
整理:3721RD
点击:
这段时间在调试FPGA与PC的千兆网口通信,用到Virtex6 Tri Mode Ethernet IP Core,遇到诸多问题,例如:
1、我用的是xilinx的virtex6中的tri_ethnet_mac_IP CORE中自带的example程序,直接与PHY芯片链接,并用UCF配置好管脚后,是不能编译成功的,最后修改了其中的GTX_CLK为差分输入,并增添PHY_RESET信号等,终于可以调试通过了;
2、PC至FPGA时,利用winpcap发送UDP数据(源MAC地址为本机地址,目的MAC地址为受限广播地址,全F,剩下的其他字段则根据协议随便设置,包括目的IP和源IP都是随意设置的),这时,用chipscope可以抓到PC发往FPGA的数据,PC端的wireshark抓包工具也可以抓到发送的数据,表面PC至FPGA是导通的,这里没有多大的问题;
3、问题在于FPGA至PC时,用的同样是IP CORE中的example程序修改而来的,即与PC至FPGA所用的程序是一样的,但是这里遇到了一些困惑:
1)没有在程序里面封装UDP帧格式,而是直接采用winpcap发送过来的标准的UDP帧进行操作,即程序中没有协议封装的模块,因为觉得来的数据本来就是封装好的UDP数据了,所以没有添加,这样做有问题吗?
2)严格按照以太网下的UDP协议封装后,直接通过PHY芯片发送至PC,用wireshark依旧没有抓到包,此问题怎么破?
3)FPGA发数据到PC,除了协议封装之类的问题,速率、时钟方面不甚了解,需要注意哪些问题吗?
4、FPGA与PC端,用TEMAC中的example程序调试千兆网口,已经搞了一个多星期了,没有头绪了,还望各位小伙伴们多指导、探讨......
5、用chipscope将TEMAC发往PHY芯片与接收来自PHY芯片的数据都分析了,没有错误,并且数据可以保证是发送给PHY芯片了,但PC端的wireshark还是抓不到FPGA发至PC端的数据啊.......
不知有伙伴做过类似或者正在做这方面东西的吗?求探讨,求指导啊......
可+Q:441858815
1、我用的是xilinx的virtex6中的tri_ethnet_mac_IP CORE中自带的example程序,直接与PHY芯片链接,并用UCF配置好管脚后,是不能编译成功的,最后修改了其中的GTX_CLK为差分输入,并增添PHY_RESET信号等,终于可以调试通过了;
2、PC至FPGA时,利用winpcap发送UDP数据(源MAC地址为本机地址,目的MAC地址为受限广播地址,全F,剩下的其他字段则根据协议随便设置,包括目的IP和源IP都是随意设置的),这时,用chipscope可以抓到PC发往FPGA的数据,PC端的wireshark抓包工具也可以抓到发送的数据,表面PC至FPGA是导通的,这里没有多大的问题;
3、问题在于FPGA至PC时,用的同样是IP CORE中的example程序修改而来的,即与PC至FPGA所用的程序是一样的,但是这里遇到了一些困惑:
1)没有在程序里面封装UDP帧格式,而是直接采用winpcap发送过来的标准的UDP帧进行操作,即程序中没有协议封装的模块,因为觉得来的数据本来就是封装好的UDP数据了,所以没有添加,这样做有问题吗?
2)严格按照以太网下的UDP协议封装后,直接通过PHY芯片发送至PC,用wireshark依旧没有抓到包,此问题怎么破?
3)FPGA发数据到PC,除了协议封装之类的问题,速率、时钟方面不甚了解,需要注意哪些问题吗?
4、FPGA与PC端,用TEMAC中的example程序调试千兆网口,已经搞了一个多星期了,没有头绪了,还望各位小伙伴们多指导、探讨......
5、用chipscope将TEMAC发往PHY芯片与接收来自PHY芯片的数据都分析了,没有错误,并且数据可以保证是发送给PHY芯片了,但PC端的wireshark还是抓不到FPGA发至PC端的数据啊.......
不知有伙伴做过类似或者正在做这方面东西的吗?求探讨,求指导啊......
可+Q:441858815
1先确定数据包对不对,可通过PC到PC,发送PC的抓包工具设定发送数据包内容与fpga chipscope一致。
2接收PC静态arp列表里是否有fpga IP地址
ethernet帧都没调过还上什么UDP,先把FPGA->pc的以太网帧跑通再说,wireshark是可以直接观察以太网帧的。
你调试的顺序就不对,调试FPGA->PC的步骤应该是:
1)调试MAC IP的MAC loop back
2) 调试前兆PHY内部 loop back
3) 调试千兆线缆连接到对面的remote loop back
4) 用wireshark看数
你直接上4)显然运气不够好。从1)从头开始吧
感谢slatstree、kyochen,问题在前段时间已得到解决,根本原因在于PHY芯片88E1111的发送时序问题,再次感谢各位的热心回复与帮助,谢谢!