element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Members
    Members
    • Achievement Levels
    • Benefits of Membership
    • Feedback and Support
    • Members Area
    • Personal Blogs
    • What's New on element14
  • Learn
    Learn
    • eBooks
    • Learning Center
    • Learning Groups
    • STEM Academy
    • Webinars, Training and Events
  • Technologies
    Technologies
    • 3D Printing
    • Experts & Guidance
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Arduino Projects
    • Design Challenges
    • element14 presents
    • Project14
    • Project Groups
    • Raspberry Pi Projects
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • Or choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
Avnet Boards Forums
  • Products
  • Dev Tools
  • Avnet Boards Community
  • Avnet Boards Forums
  • More
  • Cancel
Avnet Boards Forums
ZUBoard Zu Board 1CG Acceleration using Ethernet or USB
  • Forum
  • Documents
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Avnet Boards Forums requires membership for participation - click to join
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 8 replies
  • Subscribers 174 subscribers
  • Views 512 views
  • Users 0 members are here
  • Math
  • echo server
  • ethernet
  • avnet
  • acceleration
  • ultrascale+
  • usb
  • Zynq Ultrascale+
  • ZUBoard
  • linux
Related

Zu Board 1CG Acceleration using Ethernet or USB

rjb
rjb 2 months ago

Hi everyone. I am new to attempting acceleration from a host machine on FPGAs. I am attempting to execute math from a small c program from my Linux OS laptop. I would like the math operations to be executed on the FPGA as proof of concept. However, I have tried to start by finding tutorial and documents to implement the communication first. I looked for Ethernet and USB but have gotten nowhere.

I tried to implement the echo server but had had issues even putting together a validated block diagram. I am using the Zu Board 1CG, and I am looking for some help on how I can get this started. I have look as many tutorials and documents but seemed to have spun myself into a corner. Can anyone help with some re-starting pointers or point me in the right direction on how to create a block diagram to implement the echo server? 

I found many tutorials on how to do this with the Zynq 7000 but many of the IP blocks do not exist for the Zu Board 1CG. For example, implenenting memory is very different between the two. Also, some IP blocks are not available (rightly so, they are different systems) I know it is a different board but I tried to put together the concepts and still could not get it to work. Any help is appreciated.

  • Sign in to reply
  • Cancel

Top Replies

  • rjb
    rjb 1 month ago in reply to rjb +3 verified
    I thought I would put up the correct answer to this to help those who have had an issue with setting up the LwIP Echo Server on the ZuBoard 1CG. The answers above helped but they were not complete. For…
  • saadtiwana_int
    0 saadtiwana_int 2 months ago

    I would think any tutorials you can find for the Zynq Ultrascale series of FPGAs would be more relevant. Ultra96/ultra96v2 and zcu104 are two of the more popular boards so you might have some luck finding tutorials for those that may have some relevance to what you're trying to do.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • andycap
    0 andycap 2 months ago

    In Vivado: 

    1. Create project for the board

    2. Create Block Diagram.

    3. Add “Zynq Ultrascale+ MPSoc” to diagram.

    4. Run Block Automation and make sure “apply board preset” is ticked.

    5. Connect pl_clk0 to maxihpm0_fpd_clk

    6. Connect pl_clk0 to maxihpm1_fpd_clk

    7. Generate output products

    8. Create HDL wrapper and let Vivado manage it. 

    9. Generate bitstream.

    10. After bitstream has generated, File->export->Export Hardware, choose “Include Bitstream” when exporting

    11. Then run Tools->Lauch Vitis IDE

    Now in Vitis IDE:

    1. It will ask for a workspace, go to your folder you created the Vivado project, create a folder called Workspace and select that.

    2. Now create “Application Project”

    3. In the “Platform” page, choose the “Create a new platform from hardware (XSA) tab then “Browse” and select the isa file in the Vivado project folder. Then click next

    4. In the “Application Project Details” page, type in a name for the app “EchoTest” and click “next”

    5. In the “Domain” page click “next”

    6. In the “Templates” page select “lwIP Echo Server” on the left and click “Finish”

    Now you will have a project in Vitis

    1 Build  the EchoTest app and launch it

    You should now be able to follow other tutorials about setting up a serial monitor and sending some data to it.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • rjb
    0 rjb 2 months ago in reply to andycap

    Hi Andycap, I tried this and it does not work. One reason could be the error below that I get on application build. 

    17:59:20 ERROR : (XSDB Server)readelf: Error: '/home/r/Vitis_workspace/Echo_Server_wrapper/export/Echo_Server_wrapper/sw/fsbl.elf': No such file

    I am not sure when this file was supposed to be built but I tried this a few times to no avail. I took a look at the read me files as well. I have followed multiple tutorials which included modifying the BSP settings to include lwip213, using putty, using terminal, and using iperf to connect. None work. Any additional advice? 

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • FPGA_Zealot
    0 FPGA_Zealot 2 months ago

    For bare-metal/ stand-alone applications, Vivado/ Vitis lacks the Microchip Ethernet PHY configuration in the BSP.  You will need to copy a function into the library.  Here is a tweet about it: https://x.com/FPGA_Zealot/status/1660387839509667840?s=20.  If you use the ZU1CG board files from the VIvado board store, you should be able to select the correct template when you start your first application in VItis.  If you do this, the BSP should have all the correct libraries including lwip.  With the modification to lwip for the new PHY config, the ZU1CG echo sever works.
    image

    • Cancel
    • Vote Up -1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • andycap
    0 andycap 2 months ago in reply to rjb

    If you use the Assistant pane, select Echotest->debug and then use the little debug icon there it should build the fsbl.

    I have tried to attach an image but I can't get it to work!

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • rjb
    0 rjb 2 months ago in reply to FPGA_Zealot

     FPGA_Zealot I have used your responses in the past to solve problems I was experiencing. This is yet another. I now get the appropriate output in the Vitis terminal, Thank you. Unfortunately,  cannot get an echo back now. I tried different things like using telnet, putty, and pinging. Also, I followed other tutorials online for configuring the ports and wired connections. I still cannot get the echo. Any additional advice? Am I missing something? 

    image

    image

    image

    image

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • rjb
    0 rjb 2 months ago in reply to andycap
    • Thanks for the help. I could not find what you described. To solve that issue, i used a clean build. It has built fine since. I believe it was caused by changing my bsp settings.
    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • rjb
    +1 rjb 1 month ago in reply to rjb

    I thought I would put up the correct answer to this to help those who have had an issue with setting up the LwIP Echo Server on the ZuBoard 1CG. The answers above helped but they were not complete. For example, there was no echo or clean flow to a solution. As provided by FPGA_Zealot , first set up the ultrascale+ in Vivado as below: 

    In Vivado:

    1. Create project for the board

    2. Create Block Diagram.

    3. Add “Zynq Ultrascale+ MPSoc” to diagram.

    4. Run Block Automation and make sure “apply board preset” is ticked.

    5. Connect pl_clk0 to maxihpm0_fpd_clk

    6. Connect pl_clk0 to maxihpm1_fpd_clk

    7. Generate output products

    8. Create HDL wrapper and let Vivado manage it. 

    9. Generate bitstream.

    10. After bitstream has generated, File->export->Export Hardware, choose “Include Bitstream” when exporting

    11. Then run Tools->Lauch Vitis IDE

    Now in Vitis IDE:

    1. It will ask for a workspace, go to your folder you created the Vivado project, create a folder called Workspace and select that.

    2. Now create “Application Project”

    3. In the “Platform” page, choose the “Create a new platform from hardware (XSA) tab then “Browse” and select the isa file in the Vivado project folder. Then click next

    4. In the “Application Project Details” page, type in a name for the app “EchoTest” and click “next”

    5. In the “Domain” page click “next”

    6. In the “Templates” page select “lwIP Echo Server” on the left and click “Finish”

    Now you will have a project in Vitis

    1 Build  the EchoTest app and launch it. 

    This did not work for me because the Vitis ZYNQMP BSP doesn't support the Microchip Ethernet PHY on the Zuboard 1CG(pointed out by https://twitter.com/FPGA_Zealot/status/1660387839509667840?s=20). 

    2. I copied the get_microchip_phy_speed into my xemacpsif_physeepd.c. Do not forget to create the associated variables used in these functions. I also defaulted get_IEEE_phy_speed to microchip as the Andrew Elbert Wilson described in his Twitter post. These functions can be found at https://t.co/KlvZsvVEbD. 

    3. Make sure your Ethernet cable is connected to your host machine along with both of your USB cables (com and power). Click the "+" icon to connect to your USB port. This should auto populate with what is available. Click ok. 

    image

    4. Then, Run As-Launch Hardware

    image

    You should see this output: 

    image

    This means the FPGA is ready to connect. Where I had an issue is that i did not get an echo. In fact, I could not connect to the 1CG via port 7. It looks like FPGA_Zealot could not get the echo either, judging from his image. 

    This problem for me showed when in terminal I ran: 

    ping 192.168.1.10

    The data packets were sent and received.

    image

    But, I got no echo. Then, I ran:

    telnet 192.168.1.10 7

    I received a connection refused message. To look at my listening ports, I ran: 

    sudo ufw status

    Here, I discovered that port 7 was not listening. However, I could not open it when i ran: 

    sudo ufw allow 7

    I then in terminal again; I ran: 

    cd /etc/netplan

    sudo nano 01-network-manager-all.yaml

    This will open up your network manager in the text editor. I entered the below configuration for my host and FPGA. This opened my port 7. 

    image

    I hit "Control X" and yes to save. Then, in terminal I ran: 

    sudo netplan try

    This will allow you to test your configuration. If you do not hit "Enter" it will revert back to your previous configuration. You can always backup this file prior to changing it to be safe. 

    Then, I ran in terminal: 

    telnet 192.168.1.10 7

    I tested the echo server. My output is below. 

    image

     

    In summary, make sure your correct ports are open by setting up your static IP address as I mention above. Good luck fellas. 

    • Cancel
    • Vote Up +3 Vote Down
    • Sign in to reply
    • Verify Answer
    • Reject Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2023 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube