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 Completed Developing Zynq UltraScale+ MPSoC Software with Xilinx SDK Lab 1, Lab 2, Lab 3 and Lab 4
  • 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: buffteethr
  • Date Created: 21 Oct 2019 9:57 PM Date Created
  • Views 1475 views
  • Likes 5 likes
  • Comments 3 comments
Related
Recommended

Completed Developing Zynq UltraScale+ MPSoC Software with Xilinx SDK Lab 1, Lab 2, Lab 3 and Lab 4

buffteethr
buffteethr
21 Oct 2019

Lab 1 is very simple and helps you get familiar Zynq MPSoC hardware platform. Avnet uses a pre-built archived hardware platform to show you the ropes. They use an HDF file, which I have never seen before. The file is written out from Vivado. It contains the information needed to develop software application with SDK. A couple the files in the archive included an html used by Xilinx that acts as a datasheet for the HW platform and hwh file in XML format that contains information the SDK uses to build the board support package. Least I forget they SDK uses a tcl script in the  to ultimately build the bsp.

 

Contents of the HDF archive

drivers (folder)

This folder contains TCL file for generating parameters for the custom PWM IP driver

 

design_1.hwh

Hardware Hand-off file consists of XML code that will be used by SDK to create a BSP.

 

design_1 _bd.tcl

TCL file to re-create the ZU+ MPSoC Block Design

 

design_1_wrapper.bit (<project>_wrapper.bit)

This is the PL configuration bitstream. This file is used to configure the PL, which gives the PL its function and identity. ‘design_1_wrapper’ is the name of the top-level HDL file that the hardware designer used.

 

psu_init.c

C code file defining all the register settings to properly initialize the ARM processing system. Used to create the First Stage Boot Loader (FSBL) executable.

 

psu_init.h

Header file used with psu_init.c which is also used in the creation of the FSBL.

 

psu_init.html

Information file that describes how the ARM processing system is configured in this hardware platform and what all the register settings are. This is the best file for a software engineer to first examine as it is the ‘datasheet’ for the hardware platform.

 

psu_init.tcl

This is the equivalent of psu_init.c, but in TCL format. This file performs the ARM initialization when using SDK in JTAG mode, such as when debugging.

 

psu_init_gpl.c

Identical to psu_init.c, with the exception of the header which highlights the GNU General Public License

 

psu_init_gpl.h

Identical to psu_init.h, with the exception of the header which highlights the GNU General Public License

 

sysdef.xml

System Definition XML, containing parameter definitions for each file contained within the archive

 

 

 

 

 

 

 

 

2. How to import a pre-built Zynq Ultrascale+ MPSoc hardware platform.

image

The hardware platform s the equivalent of a datasheet for a processor. It gives you information about the peripherals, address map, datasheets to peripherals and system block diagram.

 

Lab 3 taught me:

 

1. How to generate the standalone BSP. A board support package (BSP) is a collection of libraries and drivers that will form the lowest layer of your application software stack. Your software applications must link against or run on top of a given software platform using the application programming interfaces that it provides. Therefore, before you can create and use software applications in SDK, you must create a board support package.

image

2. Where to find device drive datasheets

image

3. Where to find example code

 

Lab 4 taught me how to:

 

1. Add new software applications to SDK

image

2. Use example code to target the UART in a Hello World application

image

3. Apply example project templates such as memory tests and peripheral tests

image

4. Identify application code size and location

image

5. Modify linker scripts to change the target memory location

image

 

I use the Intel Quartus FPGA design tool at work and must say I am thoroughly impressed with Vivado so far. I will go on to say that Vivado was well thought out and seemed to be designed with "dummies" in mind. There is huge amount of documentation and examples that assists the average user to get up and running quickly with the tool. I know I have an advantage since I do this for a living but will say that compared with Intel's Quartus an engineer or hobbyist with some FPGA background will be able to get up to speed quickly with Vivado using their simple layout and documentation.

  • Sign in to reply

Top Comments

  • cmelement14
    cmelement14 over 5 years ago +1
    I think you are going to be more impressed when you see all design automation such as the auto connection in the later labs. Really well-thought-out tool.
  • aspork42
    aspork42 over 5 years ago +1
    I am a beginner with FPGAs and found that between the labs and the well written lessons, I could easily complete the lessons. The hard part was always troubleshooting when things didnt go right. Good or…
  • cmelement14
    cmelement14 over 5 years ago in reply to aspork42

    I agree that the hard part is trouble-shooting even I haven't found any difficult problem yet. The instructions are well written but it's not perfect either. I found a few typos, mismatches and missing stuff. You can refer to my blogs for those findings if you're interested.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • aspork42
    aspork42 over 5 years ago

    I am a beginner with FPGAs and found that between the labs and the well written lessons, I could easily complete the lessons. The hard part was always troubleshooting when things didnt go right.

     

    Good or write up.

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

    I think you are going to be more impressed when you see all design automation such as the auto connection in the later labs. Really well-thought-out tool.

    • Cancel
    • Vote Up +1 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