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
  • 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 to Programmable 3
  • Challenges & Projects
  • Design Challenges
  • Path to Programmable 3
  • More
  • Cancel
Path to Programmable 3
Blog Path to Programmable III Training Blog #03: Designing first application with ZYNQ
  • Blog
  • Forum
  • Documents
  • Leaderboard
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Path to Programmable 3 to participate - click to join for free!
  • Share
  • More
  • Cancel
Group Actions
  • Group RSS
  • More
  • Cancel
Engagement
  • Author Author: taifur
  • Date Created: 19 Jul 2023 4:26 PM Date Created
  • Views 669 views
  • Likes 6 likes
  • Comments 0 comments
  • Zynq XC7Z007S SoC
  • AMD XILINX
  • zynq
  • xilinx
  • vivado
  • Path to Programmable 3
  • vitis
  • minized
Related
Recommended

Path to Programmable III Training Blog #03: Designing first application with ZYNQ

taifur
taifur
19 Jul 2023
Path to Programmable III Training Blog #03: Designing first application with ZYNQ

What is Zynq

The Zynq architecture, as the latest generation of Xilix’s all-programmable System-on-Chip (SoC) families, combines a dual-core or single-core ARM Cortex-A9 with a traditional (FPGA). The interface between the different elements within the Zynq architecture is based on the Advanced eXtensible Interface (AXI) standard, which provides for high bandwidth and low latency connections.

Before implementing the ARM processor inside the Zynq device, users were using a soft core processor such as Xilinx’s Microblaze. The main advantage of using Microblaze was, and remains, the flexibility of the processor instances within a design. On the other hand, the inclusion of hard processor in Zynq delivers significant performance improvements. Also, by simplifying the system to a single chip, the overall cost and physical size of the device are reduced.

Xilinx Zynq SoC's are know to provide maximum performance per watt along with maximum reconfiguration flexibility. Zynq family features Dual-Core ARM Cortex A9 processors tightly coupled with the 7-series FPGA to enable faster communication interfaces development with ARM Design flow and hardware acceleration. Zynq devices are available in two categories viz. Zynq-7000s family FPGA for the cost-effective application such as IoT related applications while Zynq 7000 family FPGA are best for high-performance applications such as Embedded Vision etc. The Zynq 7000s comes with Single core ARM while Zynq 7000 comes with Dual-Core ARM.

The following image shows the basic Zynq architecture. The image is taken from the Zynq book.

image

The design flow for the Zynq architecture has some steps in common with a regular FPGA. The first stage is to define the specifications and requirements of the system. Next, during the system design stage, the different tasks (functions) are assigned to implementation in either Programmable Logic (PL) or Processing System (PS) which is called task partitioning. This stage is important because the performance of the overall system will depend on tasks/functions being assigned for implementation in the most appropriate technology: hardware or software.

Steps for designing hardware for Zynq:

Determine the system’s requirements: The requirements must be clear before any hardware design can start. This includes elements like performance, power use, and I/O specifications.

Select the right Zynq device: Xilinx provides a variety of Zynq devices with varying processing capabilities and levels of integration. Choose the device that best fulfills the system specifications.

Create the processing system: Zynq’s system may use Xilinx’s Vivado software. Configuring the ARM processors, memory interfaces, and other system-level components falls under this category.

Create the programmable logic fabric: The programmable logic fabric may also result from Xilinx’s Vivado software. This entails creating the digital circuits that will be helpful in the FPGA.

Link the processing system and the programmable logic fabric: After the processing system and the programmable logic fabric are ready, they must be linked. The AXI bus interface is commonly essential for this.

Test and debug the design: It is critical to properly test and debug the design before deploying it in a real system. We can accomplish this with Xilinx’s Vivado software and external test equipment.

The following image shows a basic design flow of Zynq SoC. The image is taken from the Zynq design book. 

image

Ultimately, creating hardware for Zynq necessitates a thorough knowledge of hardware and software design concepts. In addition, it is critical to properly prepare and test the design at each stage to verify that it fits the system requirements.

My first Design with Zynq

Hardware design in Vivado

This is my hello world project using Zynq. I completed this by following hardware lab 1 and 2. The first part of the project is the hardware design in Vivado. I have created a new Vivado project for Zynq-7000 SoC.

image

Then I added the Zynq processing system IP block. Vivado will detect that the Zynq PS block has been added and a green banner will appear across the top of the block design window with the option to run Block Automation. Block Automation will apply the MiniZed specific board presets to the Zynq IP block such as enabling the utilized peripherals such as UART, SPI, etc.

A block design needs an HDL wrapper to instantiate it in the logic of the FPGA. It can be created manually or can be auto-generated. I used the auto-managed HDL wrapper for my project as per the recommendation of the lab manual.

After making all the configurations as per the instruction in the lab manual I run the synthesis, followed by run implementation, and then generate a bitstream. The implemented design looks like below.

image

Once the bitstream is successfully generated, it needs to be exported as Xilinx's special archive file type (XSA) for the software IDE (Vitis) to read and pull in the hardware design.

To export the hardware, select File > Export > Export Hardware.

Software design in Vitis

After completing the hardware design the next step is the software design in Vitis. Vitis can be launched directly from Vivado, the option is located in the Tools menu under 'Launch Vitis'. But when I opened it directly from Vivado both were closed automatically in my case. So, I run the Vitis independently from the terminal and it works.

In a new Vitis project, the first thing that needs to be created is the base platform project. The platform project is what pulls in the hardware design and creates the corresponding board support project (BSP) for the software to run on.

After opening the platform project in Vitis:

image

For this project, I selected the Hello World application:

image

For observing the output in my Ubuntu machine I installed GTKterm. After attaching the MiniZed board with the PC I checked the attached device using the  ls /dev/ttyUSB* command. I got the following response. I add the read/write permission to the port using the chmod command.

image

After launching the debug run I got the following output on the GTKterm terminal. That indicates I did perform all the steps perfectly and the program run successfully.

image

  • Sign in to reply
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