如题,近来在调试xilinx的virtex6,需要实现FPGA与PC端之间的相互通信,遇到了下面的一些问题,希望大伙能够一起讨论一下:
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端的数据啊.......
|