element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • 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 & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
    About the element14 Community
  • 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
      •  Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      •  Vietnam
      • 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
Eye On Intelligence Challenge
  • Challenges & Projects
  • Design Challenges
  • Eye On Intelligence Challenge
  • More
  • Cancel
Eye On Intelligence Challenge
Blog Z7_Color_AID-Blog#01: First Impression of PYNQ on Arty-Z7-20
  • Blog
  • Forum
  • Documents
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Eye On Intelligence Challenge to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: flyingbean
  • Date Created: 13 Oct 2024 12:51 AM Date Created
  • Views 2693 views
  • Likes 9 likes
  • Comments 2 comments
  • arty z7
  • hdmi
  • xilinx
  • jupyter
  • fpga
  • Eye on Intelligence Challenge
  • digilent
  • zynq-7000
  • amd
  • vitis
Related
Recommended

Z7_Color_AID-Blog#01: First Impression of PYNQ on Arty-Z7-20

flyingbean
flyingbean
13 Oct 2024

Table of Contents

  • Arty-Z7-20 OOB
  • Resources to Learn PYNQ Framework
  • Bring Arty-Z7-20 Up into Running
  • References

Arty-Z7-20 OOB

It is my first time to use PYNQ on AMD® FPGA platform.  I did try to deploy PYNQ on Digilent MiniZed last year. However, due to the task of porting a demo Zynq PYNQ project into MiniZed with Vitis 2020.1 tool chain failed, I had not spent any time on PYNQ projects until this design challenge.  Here is the photo of the design platform shipped from Element14 Community/Newark in US.

image

Arty-Z7-20 is a great PYNQ training platform since Arty-Z7-20 is around 95% compatible with Pynq-Z1 platform, except that Pynq-Z1 has microphone with PDM interface. As you know, there are a limited number of ARM® FPGA platforms which are directly supported from Xilinx PYNQ SD images or source code. Pynq-Z1 platform is one of the official supported platforms without extra work to get PYNQ up into running.

Here is the schematic of Arty-Z7-20 comparing with Pynq-Z1 which showing the difference for Zynq FPGA IOs. Arty-Z7-20 FPGA did not populate F17 and G18 pins on FPGA. The rest of FPGA IO pins are same as Pynq-Z1 FPGA’s.

image

So using Pynq_Z1 PYNQ image on Arty-Z7-20 platform is very safe for most of PYNQ project development.

Resources to Learn PYNQ Framework

One of the good start points to learn PYNQ is PYNQ workshop (Ref[1]) from AMD/Xilinx. The revision of PYNQ is v2.6 in this workshop, which is still good enough for PYNQ v3.0 training.  I used one page of the training material for my learning map during this design challenge as below.  

image

PYNQ Project Tool Chain

After the basic research of PYNQ documentation and training materials, I need to define the tool chain for my path of the design challenge. The latest PYNQ image version is v3.1 now. I decided to use v3.0.1 since it has more support from PYNQ community now.   I got a lot of trouble to rebuild v2.6 PYNQ images for Pynq-Z1 last month. I might describe the process in another blog post for how to build PYNQ SD image basing on the guidance from PYNQ website (Ref[2]). The table below from PYNQ community (Ref[3]) presents the tool chain for each version of PYNQ image with the associated AMD/Xilinx tool version.

image

Here is the list of my PYNQ project tool chain:

  1. Vitis 2022.1
  2. Petalinux 2022.1
  3. PYNQ v3.0.1
  4. Ubuntu 20.04
  5. Windows 10 for standalone API experiments

Bring Arty-Z7-20 Up into Running

 Here is the list of the OOB bench testing in this blog:

  1. HDMI-out OOB demonstration
  2. PMOD ALS with PYNQ v3.0.1 demonstration

The detail of the OOB bench testing is presented as follows.

  1. OOB bench testing project #1: HDMI Out (Vitis 2022.1) standalone API

Digilent website is a good source for Arty-Z7-20 platform framework. I did run all of OOB projects from Digilent Example projects to make sure that the hardware was good for the projects in my EE lab.  Here is the list of example projects from Digilent website.

image

I am going to demonstrate how I imported the Vitis/Software project of HDMI Output Demo on my local Vitis 2022.1 environment since I found that there were importing errors without extra effort to reproduce a workable Arty-Z7-20 HDMI Output standalone API in house.

1.1 Download the source code from Digilent website (Ref[4]).

image

1.2  Extract Arty-Z7020-HDMI-out-sw.ide.zip and create a local workspace named as Arty_Z7_20_HDMI_out_sdk01

image

1.3  Create a Vitis project and import Digilent HDMI Output Demo SW project

I used Image Gallery features to present each step while I imported Vitis project from Digilent unzipped Arty-Z7020-HDMI-out-sw.ide.zip file into my local workspace. Please read each comment under every image for every step I did under Vitis 2022.1 flow.

{gallery}Import Vitis Project

image

Vitis Project workspace at the local PC.

 image

Click Import Project at Vitis GUI.

image

Import Type of Vitis Project: Eclipse workspace

image

Import Projects steps: flowing the numbers as marked.

image

Importing Projects now.

image

Errors after finishing Importing Projects.

 image

 Imported Projects at Vitis after ignoring previous error warning message.

image

The reproduced Arty-Z7-HDMI-OUT project is failed due to previous errors.

Place holder

Place holder

I got trouble while importing Digilent HDMI Output Demo SW project directly now. What was the error message? The GUI as blow showed that the errors were listed at Vitis Log file.

image

Where is the Vitis Log file? I finally found it at ./metadata in the workspace as below.

image

The error messages were presented below for the reference. I did not dig deeper for 86 syntax errors there.

image

I thought I should  get a clean platform project at the same workspace to bypass the errors which was most likely from my Porting Flow.

1.4 Reproduce HDMI-Out demo project from the HW handoff file of Digilent HDMI Output Demo

I used Image Gallery features to present each step as 1.3. Please read all comments inside the Gallery for the flow.

{gallery}Reproduce HDMI-Out demo project

image

Create a Platform Project

image

Select Digilent Arty-Z7-20 HDMI Out XSA file.

image

Platform project name is Arty_Z7_20_SoC

image

Select Digilent HDMI_out XSA file from HW export

image

Arty_Z7_20_SoC Platform Project: click "2(hammer)" to build the project

image

Create a new application project

image

Select the platform for API

image

Create API name: hdmi_out_test

image

Click "Next" for a standalone API project.

image

Select "Empty Application", then "Finish" the flow to create the API project.

image

Empty "hdmi_out_test"project

image

Import Digilent HDMI-OUT SW source code into hdmi_out_test\src

image

Updated hdmi_out_test API project

 image

Build hdmi_out_test API and generate boot.bin.

 image

Generate hdmi_out_test API boot.bin for Arty_Z7_20 platform

The reproduced hdmi_out_test API was up into running on Arty-Z7-20 platform now.

image

Here is the video record of the HDMI output testing.

You don't have permission to edit metadata of this video.
Edit media
x
image
Upload Preview
image

2. PYNQ/PMOD ALS project demonstration

2.1 Prepare PYNQ v3.0.1 SD image

   I found that balenaEtcher was the best way to burn a SD image from pynq_z1_v3.0.1.image.

   image

2.2 Test PMOD ALS PYNQ project on Arty-Z7-20

The Pynq_Z1_v3.0.1 SD image booted on Arty-Z7-20 very smoothly, which was a better experience than my previous PYNQ SD image build challenge on MiniZed.

Pynq_Z1_v3.0.1 is a simplified version of Ubuntu 22.04 as below.

image

It is time to rock and roll  my way with PYNQ on Zynq platform. I used Jupiter Lab interface on my host PC to communicate with Arty-Z7-20 PYNQ now.

image

The first PYNQ demo project I ran was PMOD_ALS module as the following bench testing setup on the photo.

image

PYNQ v3.0.1 provided a demo project for PMOD ALS sensor as below.

image

As you can see from the photo of my bench testing setup, PMOD_ALS module was installed on J1 connector's top roll. I used a flash light to manipulate the light for PMOD_ALS sensor.

image

Here is the log plot after a couple of minutes of light sensing recorded by PMOD ALS project from the bench testing.

image

After a couple of OOB demo projects, I am ready to move forward to other topics on PYNQ framework now. I am going to demonstrate how to port Pynq_Z1 PYNQ build flow to a new board on my next blog. I will also explore PYNQ overlay flow on another blog soon.

References

[1]  PYNQ_Workshop for V2.6               https://github.com/Xilinx/PYNQ_Workshop               2020

[2] https://pynq.readthedocs.io/en/latest/pynq_sd_card.html   v3.0                                         2024

[3] https://www.pynq.io/boards.html                                                                                         2024

[4] https://digilent.com/reference/programmable-logic/arty-z7/demos/hdmi-output                2024

  • Sign in to reply
  • javagoza
    javagoza over 1 year ago

    Getting started is the hardest part, good start, keep up the good work.

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • More
    • Cancel
  • DAB
    DAB over 1 year ago

    Nice start.

    • 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 © 2026 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