element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • About Us
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • Store
    Store
    • Visit Your Store
    • 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
  • Settings
Path II Programmable
  • Challenges & Projects
  • Design Challenges
  • Path II Programmable
  • More
  • Cancel
Path II Programmable
Blog Path II Programmable Week 2
  • Blog
  • Forum
  • Documents
  • Polls
  • Files
  • Events
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: ralphjy
  • Date Created: 28 Oct 2019 3:05 AM Date Created
  • Views 735 views
  • Likes 4 likes
  • Comments 2 comments
  • ultra96-v2
  • path ii programmable
Related
Recommended

Path II Programmable Week 2

ralphjy
ralphjy
28 Oct 2019

This week has been more productive than the last since much of the first week was spent configuring the development infrastructure.  I have completed the 10 HW videos (lectures) and the 9 HW labs and the 12 SW videos and 11 SW labs.  I use the term "completed" somewhat loosely because a couple of the labs (HW 8 and SW 11) use the mezzanine board kit which we did not receive so I went through all the steps but could not verify the results on the hardware other than through the debugger.  And I had a couple of other problems that I'll elaborate later.  With 10 of us taking this course I think there will be lots of illustration of the course material, so I think that I'll focus on what I'm getting out of the course and the issues that I've encountered.

 

The objectives for the introductory Hardware course are:

    Use the Xilinx Vivado and SDK tools to

  1. Design a Zynq UltraScale+ MPSoC system (Ultra96-V2)
  2. Add Xilinx IP as well as custom IP
  3. Run software applications to test IP
  4. Debug an embedded system

 

The first 3 lectures provided an overview of the hardware - the Zynq MPSoC Processor and its peripherals.  Other lectures cover the memory system and the interconnect between the Processing System (PS) and the Programmable Logic (PL) and the peripherals using the Advanced eXtensible Interface (AXI).  I have to admit that after a couple of weeks that my head feels like it is about to explode with all these acronyms image.  After a while I guess it will just seem natural.  The array of hardware options is amazing.  One of the main issues is making sure that you can utilize a given set of hardware options without violating any interconnect or memory constraints.  A simple example is that there are a fixed set of external IO pins and they are divided into high performance and low performance categories and there are pins dedicated to the PS (Muxed IO - MIO) and to the PL (Extended Muxed IO - EMIO).

 

Here is a slide showing restrictions on low speed IO connectivity.  Certain peripherals can only connect to MIO and in some cases only on specific pins.

image

The good news the design tools will prevent you from making errors, the bad news is that until you get familiar with the constraints you could end up planning unworkable designs.

 

There were a couple of lectures on using TCL (Tool Control Language).  TCL is and interactive and interpreted language that has been extended by Vivado to allow you to do all of the GUI functions on the command line.  It also allows you to create scripts so that you can build and deploy projects without the GUI by using batch mode or an interactive shell very much like Python.  As a matter of fact when you execute commands through the GUI you can see them execute in the TCL Console window.  It's been a long time since I've been exposed to TCL.  Good to see that it is still being used and extended.

 

There was a lecture about using Xilinx IP or even your own custom IP (Intellectual Property refers to preconfigured logic functions that can be used in your PL design).  In the lab a custom IP was built and deployed to the hardware.  It is nice that this process is reasonably straightforward.  It allows the ability to conveniently reuse your own designs.  This was a lab that caused me an issue when I was trying to generate the bitstream for the design with the included IP.

image

This error happened after the synthesis step when the implementation was being optimized.  It appears that this error is caused by a version mismatch between the version of Ubuntu that I was using and the 2018_3 versions of the Xilinx tools.  Adam Taylor told me that the 2018_3 tools are compatible with Ubuntu 16.04.3 and 16.04.4.  I am using Ubuntu 16.04.6.  I have seen complaints in the forum with the same issue using 16.04.5.  Somewhat amusing because I took care to use 16.04 and 2018_3 rather than 18.04/10 and 2019_1 to insure that I wouldn't have problems with this course.  I did not realize that I needed to watch for the minor version also.

 

The hardware course was a great introduction to Vivado and SDK and the MPSoC hardware.  I thought it was very thorough although there were a few minor glitches in the lab documentation.  I hope that all this knowledge will stick.  I'm sure I'll be back looking at this material when I'm trying to figure out a design on my own.  I'll cover my thoughts on the SW course in another post.

 

One general issue worth mentioning - the Xilinx tools place a large resource demand on the computer they are installed on.  Not sure if this is a lot worse because of using an Ubuntu Virtual Machine on Windows 10 rather than just running on a Linux computer.  For various reasons I ended up using a somewhat under-powered computer - an I3 with 8GB of memory with a 1TB disk.  I expected that things would run slow (which they do), but I am also having some functional issues.  I initially allocated 4GB of memory to the Virtual Machine but I would intermittently get "out of memory" errors that would crash Vivado.  I upped the allocation to 6GB which only left 2GB for Windows.  That seems to help but I still get occasional Vivado "out of memory" errors and occasional Linux errors.  And I've noticed that every now and then the SDK will hang when it is starting.  So, make sure you have sufficiently robust compute power and they also recommend at least 300GB of disk space for the VM.

 

Next week I'm going to try moving to another computer, an I7 with 16GB of memory.  Unfortunately this wasn't available when I started.  I am also going install Ubuntu 16.04.4.  I hope that switching the Xilinx tools license to the new box won't be too painful.  Haven't tried to request that yet.

  • Sign in to reply

Top Comments

  • aspork42
    aspork42 over 5 years ago +1
    Nice job - you got through the lessons really quickly! I'm still part way on the first section; although I only get 1-2 hours per weekday to work on it.
  • aspork42
    aspork42 over 5 years ago

    Nice job - you got through the lessons really quickly! I'm still part way on the first section; although I only get 1-2 hours per weekday to work on it.

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • cmelement14
    cmelement14 over 5 years ago

    In general FPGA design demands quite amount of computing power, not only for Xilinx tools, but also applies to other tools too.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • 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 © 2025 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