• 0
hardlyhacker

nexys video out-of-box ethernet not working

Question

Hi,

I just got nexys video and was going down the list of out-of-box demo at the bottom of its reference manual : https://reference.digilentinc.com/reference/programmable-logic/nexys-video/reference-manual

When I connect the ethernet cable, ACT/LINK/USER LEDs blink for a bit, then LINK/USER blink in sync indefinitely, but there's no IP address displayed on OLED screen, just shows 0.0.0.0

I tried checking things on my router side (Netgear), but there is no indication of the device in its logs.

 

Are there any way to confirm that the ethernet is working properly?

 

Edited by hardlyhacker
typo

Share this post


Link to post
Share on other sites

17 answers to this question

Recommended Posts

  • 0
On 6/4/2018 at 7:00 PM, jpeyron said:

Hi @hardlyhacker,

Here is the Nexys Video - Getting Started with Microblaze Servers tutorial that walks you through setting up an echo server and will verify if the ethernet is working. 

thank you,

Jon

Hello,

I also have just received a Nexys Video which is not responding to ARP requests.This is Wireshark when TCP communication is attempted:

demo_ws_no_arp.jpg.03d9af303c939e1edea124573a229e5c.jpg

You can also see here that the board transmits successfully a DHCP request but no replies can be seen.

My evaluation licence for the Ethernet IP has expired so I cannot use the Microblaze Server example (I'm waiting for a colleague's help with this) but I found the Nexys Video Demo page which includes a fully-compiled project and which should also act as an echo server. The software version appears to be more recent than that of the board itself because if the DHCP request times out it defaults to 192.168.1.100 instead of remaining stuck at 0.0.0.0. Using this project in Vivado 2015.4 I exported the bitfile and configuration to the SDK and compiled the standard peripheral test application which fails at the first Ethernet test and then hangs indefinitely on the second:

bist.jpg.679d5fd97b99dd9b1fb1b791884d6247.jpg

I have worked with many Xilinx evaluation boards and have never seen this happen so at this point I am thinking that the board is defective. I will find a way to get the Microblaze Server example running with Vivado 2016.4 before I give up but since this is not a Xilinx board I would really appreciate any pointers in case I am missing something.

Thanks,

Richard

 

 

Share this post


Link to post
Share on other sites
  • 0

Follow-up with BIST and Echo server console output for the Microblaze Server example using Vivado 2016.4:

image.png.aab040a7de426c4ebff1e06c1b1dfba2.png

(no fail, just hangs)

image.png.9d91544c630bbe211017291edd958a2d.png

(the link is actually 1Gbps / Full duplex) No ARP response:

image.png.5ab173ac6cc2fc337c51706587c15875.png

 

Share this post


Link to post
Share on other sites
  • 0

Hi @rwheadon,

Have you tried the changing the phy speed to 100? You can do this by following step 10.2 in the tutorial by rick clicking the bsp and selecting the lwip and then selecting temac_adapter_options → phy_link_speed. Here you will need to change CONFIG_LINKSPEED_AUTODETECT to CONFIG_LINKSPEED100. Could also you try this vhdl ethernet project here? I also made an ethernet project in Vivado 2015.4 for the Nexys Video here. I will test to make sure the project works tomorrow.

thank you,

Jon

Share this post


Link to post
Share on other sites
  • 0
13 hours ago, jpeyron said:

Hi @rwheadon,

Have you tried the changing the phy speed to 100? You can do this by following step 10.2 in the tutorial by rick clicking the bsp and selecting the lwip and then selecting temac_adapter_options → phy_link_speed. Here you will need to change CONFIG_LINKSPEED_AUTODETECT to CONFIG_LINKSPEED100. Could also you try this vhdl ethernet project here? I also made an ethernet project in Vivado 2015.4 for the Nexys Video here. I will test to make sure the project works tomorrow.

thank you,

Jon

Hi Jon,

really appreciate the response. I didn't try the Hamsterworks code because it is transmission only and the Wireshark info for the demo project shows the correct transmission of DHCP requests. I did however try the much more complete example available here:

https://github.com/alexforencich/verilog-ethernet

with no luck (and I verified that the ML605 evaluation board example works as advertised). Anyway, I downloaded your project and the results are the same at 100Mbps:

image.png.adb7194a7b1a8d5fc03fe5ebbe5c9f8d.png

image.png.be30fdf8884f43a6a6e2accde27a7d2f.png

Confirmed also with my project 2016.4 at 100Mbps with fixed address and DHCP disabled. Case closed?

Thanks again,

Richard

 

Share this post


Link to post
Share on other sites
  • 0

Hi @jpeyron,

Thank you for the pointer. I faithfully followed the tutorial and got the echo server working on the board. But I had to sidestep a bit at step 12.2 (setting STDIO connection to console), because I simply did not see "STDIO Connection" tab. I am using 2018.1 Vivado, so wonder if this is some recent change in the tool, though I also did not see anything resembling the functionality of redirecting STDIO connection. So I had to check my router to see if there's any new device, got its IP, then telnet to it with port 7, and actual echoing seems to work.

Do you know if the missing STDIO tab is due to the new version of the tool, or because something else is going on, such as UART connection is not recognized? 

 

 

Thank you.

 

UPDATE : It seems that "STDIO connection" tab is no more, but I was able to achieve the same connection from UART to SDK using "SDK Terminal" window, click on "+" to make connection to /dev/ttyUSB0 at baudrate 9600.

Edited by hardlyhacker

Share this post


Link to post
Share on other sites
  • 0
14 hours ago, jpeyron said:

Hi @rwheadon,

Were you able to connect to the echo server as shown in step 14 of the tutorial?  Also step 13.1's screen shot is exactly what we got when setting up the echo server.

thank you,

Jon

Hi @jpeyron

Sorry, I wasn't clear enough. Without an ARP reply from the board no connection can be established. This is what to expect for the echo server application project when opening the TCP connection for the first time after running the program on the FPGA (in this case I am using an SP605 microblaze project):

image.png.916a9f8085b2390d2d93b1087cd56ad4.png

It is the ARP response (packet 72) from the FPGA which is missing from all my attempts to communicate with the Nexys Video.

 

This is the console output for the standard peripheral test application project generated in Vivado 2015.4 SDK for the project you created for me:

image.png.4528cf36e5065f1e913855b36d276684.png

It hangs on the Ethernet test, just as with the Nexys Video User Demo project and the Vivado 2016.4 Microblaze Server project. With Xilinx hardware I have never seen this happen (and I am talking about something like forty evaluation boards over the years). Can you please check to see if your board passes this test?

Thanks again,

Richard

PS sorry @hardlyhacker for hijacking your thread

 

Share this post


Link to post
Share on other sites
  • 0

No worries, @rwheadon - actually, your inquiries got me curious whether my successful run of echo server proves that ethernet port is properly working or not. I am at a level where I am blindly following tutorials not really understanding what I am doing, so please bear with me.

Based on the instructions in Nexys Video - Getting Started with Microblaze Servers, I am getting IP core for ethernet from Xilinx (with evaluation license), and have it as part of my FPGA design. Does this mean that once my evaluation license is expired, I am unable to utilize the ethernet port?

I imagine that whatever the Xilinx IP ethernet module is doing, the ethernet port on the board should be able to handle, so that it can be used without the proprietary module. If this is not the case, is there a freely available module that's compatible with the board?

Share this post


Link to post
Share on other sites
  • 0
2 minutes ago, hardlyhacker said:

No worries, @rwheadon - actually, your inquiries got me curious whether my successful run of echo server proves that ethernet port is properly working or not. I am at a level where I am blindly following tutorials not really understanding what I am doing, so please bear with me.

Based on the instructions in Nexys Video - Getting Started with Microblaze Servers, I am getting IP core for ethernet from Xilinx (with evaluation license), and have it as part of my FPGA design. Does this mean that once my evaluation license is expired, I am unable to utilize the ethernet port?

I imagine that whatever the Xilinx IP ethernet module is doing, the ethernet port on the board should be able to handle, so that it can be used without the proprietary module. If this is not the case, is there a freely available module that's compatible with the board?

Hi @hardlyhacker,

if you got an echo at 1Gbps you're fine hardware-wise. Regarding the licencing, my evaluation licence expired and I cannot generate a bitfile so I assume that if I needed to use Ethernet with an embedded system that I would have to pay for it - and I'm guessing Digilent aren't too happy about that because this was and continues not to be the case for Series 6 and earlier models. When I started working with FPGA's the embedded solution was a relatively pain-free way to have reliable Ethernet communication, however I reached the point where I needed as much bandwidth as I could get so I developed my own UDP-based Ethernet implementation which, at least for now, I cannot share because it is technically my employer's property. If you don't need the rest of the embedded architecture functionality then this looks pretty interesting:

https://github.com/alexforencich/verilog-ethernet

Be warned, using UDP you WILL have to deal with occasional lost packets on a normal operating system.

Share this post


Link to post
Share on other sites
  • 0

Hi @rwheadon,

 I have not had much experienced with the ethernet with fpga's beyond using the echo server. I used wireshark on the echo server project and I attached the file below. I did not get the checksum incorrect with the UDP. Were you able to get the echo server to echo at the 1Gbps?  I tried the peripherals test and had it hang on the axiethernetsgdmaInterexample for the axi-ethernet as well as the interrupt for the axi-timer multiple times. I did get it once to pass the ethernet test without changing anything from the other test runs. I have used the peripherals test on different project and had the axi-interrupt and other peripherals hang before while being able to work with the hardware/software without issue.  I would suggest to reach out to xilinx and see if this is an sdk issue.

thank you,

Jon

wireshark_nexys_video_echo_server.pcapng

echo_server_nexys_video.jpg

peripheral_test_1.jpg

peripheral_test_2.jpg

Share this post


Link to post
Share on other sites
  • 0

Thank you @rwheadon and @jpeyron for the guidance on this matter. Just to add another data point, I was able to run echo server at 1Gbps by changing phy_link_speed to 1000M at step 10.2, and have it output "link speed: 1000" at the console.

Edited by hardlyhacker

Share this post


Link to post
Share on other sites
  • 0

Hi @jpeyron

without the ARP response there can be no connection so no, the echo server has never worked in any of the many attempts that I have made with the various projects. I firmly believe that this is a defective board and will take the fact that the echo server has absolutely no problems with your board and that you have seen the ethernet peripheral test pass at least once whereas I have now repeated this test more than twenty times counting only for the project that you provided me with zero success as sufficient evidence for returning it.

Really grateful for your help,

Richard

PS a couple of notes:

1. It seems that the peripheral test with this project (in my case with the Ethernet test call disabled) can only be reliably run once after programming the FPGA

2. the UDP checksum error you see in my Wireshark captures is due to the Ethernet interface on my PC handling it at a lower level than Wireshark can reach, it is not a real error

Share this post


Link to post
Share on other sites
  • 0

Hello,

Using Vivado 17.4 I got the example to work with either 100 or 1000 mbps.

I see a DHCP timeout in your post

image.png.adb7194a7b1a8d5fc03fe5ebbe5c9f8d.png

Please go to SDK in main.c and search for "dhcp_timoutcntr". You will find this variable set to 24. Please change it to 50 or 100 and try again. In some cases the counter expires before obtaining an IP and DHCP fails.

You should also look in the MSS file (open with text editor) and search for " PARAMETER LIBRARY_NAME = lwip141". That is where the lwip settings are stored for the project. It should look like this:

BEGIN LIBRARY
 PARAMETER LIBRARY_NAME = lwip141
 PARAMETER LIBRARY_VER = 2.0
 PARAMETER PROC_INSTANCE = microblaze_0
 PARAMETER dhcp_does_arp_check = true
 PARAMETER lwip_dhcp = true
 PARAMETER phy_link_speed = CONFIG_LINKSPEED1000
END

You can replace what you find with my settings (bolded lines) and then regenerate the bsp.

Sergiu

Edited by Sergiu

Share this post


Link to post
Share on other sites
  • 0

Hi @Sergiu,

I consider the DHCP a non-issue. With the demo code loaded at start-up from flash there is no DHCP timeout. However the demo code project on the Digilent web site and the project that @jpeyron built for me the code includes the board reverting to 192.168.1.100 if the DHCP request times out. In any case I also set the SDK to not use DHCP so that the echo application generated uses a fixed 192.168.1.10 IP address with identical (non) results. Independent code (https://github.com/alexforencich/verilog-ethernet) which does not use DHCP works for another evaluation board but not for this one.This specific board has never shown any sign of being able to correctly receive an Ethernet packet after a week of trying (and I am not new to using Ethernet with FPGA's, both with and without Microblaze) and it is going back.

Thanks anyway,

Richard

Share this post


Link to post
Share on other sites
  • 0

Hi @hardlyhacker,

just an update - the ethernetlite IP can be used without payment (only limit is 100Mbps maximum rate). I stumbled on this project for the Arty which works as advertised and shouldn't be too difficult to implement on the Nexys Video:

https://www.avnet.com/opasdata/d120001/medias/docus/178/UG-AES-A7MB-7A35T-G-Arty_lwIP_EthernetLite_VIV2015_v1.pdf

The project file was difficult to find but I finally found it here:

https://products.avnet.com/opasdata/d120001/medias/common/10/7A35T_Arty_Ethernetlite_LwIP_VIV2015_2.zip

Regards,

Richard

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now