Please help me determine if I have an issue with my (brand new) Genesys2 eval board.
I am trying to use the Ethernet PHY, but the signals coming out of it are not as I expect. I have used other FPGA's with other PHY's so I have a bit of experience here.
The RGMII data-valid signal, RXCTL, appears to be un-driven between packets.
Below is a screen capture of my oscilloscope, which is probing the RXCTL(pin 13 of the PHY) signal. More exactly, I probed resistor R220 net ETH_RX_CTL. I am using the constraints file provided by digilent, so the RGMII interface is running at 1.5 volts. The link speed is 100 Megabit, and I am sending ping packets onto the network. The oscilloscope has been configured to persist the signal across many captures so you can see what is happening with the signal outside of the data-valid window.
You can see that before the packet is placed on the RGMII lines, the signal appears to be floating, then is driven low by the RTL8211E-VL PHY, then we see an ~8uS asserting to indicate a packet should be read on the data lines, then low, and then again floating.
I am unable to use the RXCTL signal as a proper data-valid envelope to sample the data lines appropriately. I see no other signals that would indicate a packet should start being sampled. I have proven this by setting up an "ILA" logic analyzer within the chip. Since I have little confidence in the clock as well (I am unable to see it on my scope) I am sampling the MII signals using an internal 200Mhz clock. Here is a capture using the logic analyzer:
You can clearly see that the input signal p_i_mii_rxdvalid (RXCTL) is being randomly sampled high and low. The FPGA logic cells cannot distinguish the difference between the floating signal seen on the scope and the low/high moments so all I am seeing is digital noise.
I have tried enabling pull-down as well as pull-up resistors on the nets in the constraints file, but this made absolutely no difference.
I still have the out-of-box demo loaded into the Flash of the eval board. When I load it, I see the same behavior on all the IO pins as with my project. However, the demo is somehow able to get an IP address and run the echo service and I am able to ping it. The response time seems terrible, but maybe that is the soft-core CPU being used for packet processing. I am unable to figure out how the example project is getting absolutely any data out of this.
Any insight into what is wrong with the PHY and why it is not producing proper digital signals is very appreciated. A solution is even better!
Question
Questioner
Please help me determine if I have an issue with my (brand new) Genesys2 eval board.
I am trying to use the Ethernet PHY, but the signals coming out of it are not as I expect. I have used other FPGA's with other PHY's so I have a bit of experience here.
The RGMII data-valid signal, RXCTL, appears to be un-driven between packets.
Below is a screen capture of my oscilloscope, which is probing the RXCTL(pin 13 of the PHY) signal. More exactly, I probed resistor R220 net ETH_RX_CTL. I am using the constraints file provided by digilent, so the RGMII interface is running at 1.5 volts. The link speed is 100 Megabit, and I am sending ping packets onto the network. The oscilloscope has been configured to persist the signal across many captures so you can see what is happening with the signal outside of the data-valid window.
You can see that before the packet is placed on the RGMII lines, the signal appears to be floating, then is driven low by the RTL8211E-VL PHY, then we see an ~8uS asserting to indicate a packet should be read on the data lines, then low, and then again floating.
I am unable to use the RXCTL signal as a proper data-valid envelope to sample the data lines appropriately. I see no other signals that would indicate a packet should start being sampled. I have proven this by setting up an "ILA" logic analyzer within the chip. Since I have little confidence in the clock as well (I am unable to see it on my scope) I am sampling the MII signals using an internal 200Mhz clock. Here is a capture using the logic analyzer:
You can clearly see that the input signal p_i_mii_rxdvalid (RXCTL) is being randomly sampled high and low. The FPGA logic cells cannot distinguish the difference between the floating signal seen on the scope and the low/high moments so all I am seeing is digital noise.
I have tried enabling pull-down as well as pull-up resistors on the nets in the constraints file, but this made absolutely no difference.
I still have the out-of-box demo loaded into the Flash of the eval board. When I load it, I see the same behavior on all the IO pins as with my project. However, the demo is somehow able to get an IP address and run the echo service and I am able to ping it. The response time seems terrible, but maybe that is the soft-core CPU being used for packet processing. I am unable to figure out how the example project is getting absolutely any data out of this.
Any insight into what is wrong with the PHY and why it is not producing proper digital signals is very appreciated. A solution is even better!
Thank you all!
Link to comment
Share on other sites
14 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now