What is PIXELA Technical Expertise?
In recent years, technology has been changing very quickly.
At the same time, the tools associated with these technologies have become easy to use and convenient, and many are available for free or at low cost.
As a result, an environment is being created in which many engineers can share their achievements and experiences and learn from each other. However, there is little information that is systematically organized, and it takes a lot of effort to carefully examine the information one seeks from multiple sources.
We are also devoting such efforts to improve our technical skills, and we have launched this website in the hope that we can help such engineers by organizing and publishing the contents of such efforts.
We hope that by making this information available to the public, our company will be better understood.
Getting to know Vivado
I will touch the FPGA. You will understand the basic usage of Xilinx's Vivado development environment using Digilent's Zybo Z7-20 development board. The goal is to familiarize yourself with the operation by completing simple examples. If you have not yet set up Vivado, please refer to "Setting Up the Vivado/Vitis Development Environment".
Zybo-Z7 is an FPGA board with ZYNQ7000 series from Digilent. It is available at a relatively low cost, and information on using this FPGA board is available in various places, making it an ideal board for first-time users.
This theme assumes the conditions listed in the table below, so please make sure that it is set up correctly when checking operation.
|Power Supply||5V power supply from USB|
|JP6||Power Source Settings.
Since the device is to be operated by USB bus power, set the jumper pins as shown in the USB silk print.
|JP5||Set the BootMode of the software.
This setting does not affect this theme as it is hard logic only; please leave it at the SD setting.
|JP2||Not used this time. Leave the jumper pin attached.|
Running Vitis AI with the Kria Starter Kit
We will get an overview of Vitis-AI and how to use it with Xilinx's Kria KV260 Vision AI Starter Kit, and since Vitis-AI allows us to perform AI inference on the board without deep FPGA knowledge, we will review the steps required to actually perform AI inference. We will review the steps required to actually perform AI inference.
The article will show how to prepare the necessary environment for AI inference, how to use pre-compiled AI models, and how to create AI models and compile them for your board. In the future, we hope to show how to create custom images using Vivado, Vitis, and Petalinux, and how to integrate AI inference applications.
Host OS : Ubuntu 20.04LTS
Board : Kria(KV260)
Vitis-AI : 2.5
Vivado, Vitis, Petalinux : 2022.1
USB(A) to microUSB(B) cable : for serial connection
microSD card (16GB or more): for writing images
Network environment : Host PC and board are located in the same network
Vitis-AI has a brief description and sources, but it will be a tool for AI inference on the target board. The general outline is
- Ability to compile existing trained AI models for target boards
- Model Zoo (related code and files for many AI models, pre-compiled models for the board)
- Runtime and libraries to deploy AI models on target boards
is provided, making it possible to create AI inference applications on the board without in-depth knowledge of FPGAs.
Let's try Petalinux!
In the Vivado/Vitis article, we checked the direct operation of Vivado/Vitis by means of diagrams created by ourselves and I/Fs handled simply from a high-level language.
However, Zynq is composed of PS/PL, and ZYBO Z7-20 has a variety of other I/Fs, so if we can run the OS and make full use of necessary processing on PL, we can expand the range of various uses. Xilinx offers such a solution called Petalinux. We would like to try to use this to connect data from the OS side to some output after processing it once in FPGA.
Video and audio are the easiest to confirm the output results. In this article, we will deal with simple audio output.
- Ubuntu 20.04.5LTS
(8GB RAM or more required, CPU 2GHz 8-core or more required, 100GB or more free disk space required)
- Vivado 2022.1
- ZYBO Z7-20
- AC adapter 5V/3A or so. AD-D50P300 etc.
- Speakers or headphones (stereo mini plug connection)
- micro USB to USB cable (for communication)
- MicroSD card (16GB or more) and card reader
- Network Environment
- wav file
What is Petalinux?
Petalinux is an embedded Linux distribution developed by Xilinx.
A dedicated software development kit (SDK) is available to develop a variety of Linux-based products, including boot loaders, Linux kernel customization, and the creation of proprietary device drivers.
GStreamer is a library for applications that handle multimedia.
GStreamer's advantages include standard support for a variety of multimedia formats and availability on a variety of platforms, including Android, iOS, Linux, macOS, and Windows. Furthermore, GStreamer can be extended by developing your own plug-ins for formats and functions that are not supported by the standard.
In this article, we will explain how GStreamer works by implementing and running code for GStreamer-based applications and developing our own plug-ins.
*All names, company names, product names, etc. mentioned herein are trademarks or registered trademarks of their respective companies.
*Specifications and appearance are subject to change without notice for performance improvement or other reasons.