|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我现在用的是xilinx系列的一个板卡,上面没有PHY芯片,所以我自行设计了一个扩展板,上面焊接有RJ-45网口和RTL8201CP的PHY芯片,当然上面还有其他的一系列电阻电容。利用的是xilinx上面的FMC连接器。现在焊接完成了,然后一直进行测试,测试的过程虽然很艰难,但还是基本调通了,用PC想xilinx FPGA板发送ping命令,是可以实现的。
但现在唯一的一个遗留问题就是,在接收数据的时候,接收的时钟(PHY提供)rx_clk 是25Mhz,在该时钟的上升沿或者下降沿rx_data(3:0)为接收的数据,在多数情况下,随着rx_clk 触发沿的降临,rx_data(3:0) 传输半个字节的数据,但是事实上通过chipscope仿真软件的观察,大部分的数据接收都是正确的,也有的时候出现错误:如下图
:
异常时候的结果
从图中大概可以看到,rx_data1 由F变成C的过程中竟然多了一个过渡的数据,可以看到,这是因为rx_data(0) 没有及时跟着rx_clk 的触发沿翻转导致的,而rx_data(3),rx_data(2),rx_data(1)则及时的翻转。
经过多次的数据观测,这种情况出现的频率并不低,(只要出现这种情况,数据接收必然失真),而且某些情况下,rx_data(3),rx_data(2),rx_data(1) 也会出现翻转不及时。
在ping测试过程中,有些时候测试不成功可能就是因为上面所讲的问题。
这个原因是什么导致的呢?会不会是PHY芯片内部的问题。如果是PHY芯片内部的问题,但很多时候数据的接收都是没问题的。还是焊接的原因呢?最大的疑惑就是这种异常状况并非一直出现,大部分时间是好的?希望大家给我提供一点思路吧,我在这里谢谢了。 |
|