How to Install Vitis and PetaLinux 2024.1

For Ubuntu 20.04

How to Install Vitis and PetaLinux 2024.1
Here we go again. In this post I’m going to go through the steps of installing Vitis and PetaLinux 2024.1. Unfortunately I have to go through this process on a regular basis. Installing dev tools like this from the biggest FPGA vendor in the world should be easy but for some reason there are always problems - hence the need to keep notes. The image that I used for this post was generated by ChatGPT. [Read More]

The M.2 M-key Stack FMC Unveiled

A fresh approach to getting more from FMC

The M.2 M-key Stack FMC Unveiled
The FPGA Mezzanine Card standard (VITA 57.1) has significantly enhanced the FPGA ecosystem by decoupling the FPGA board from the input/output components. Years ago, if you wanted to process samples from an ADC, you would buy an FPGA board with an on-board ADC. If you wanted to add a DAC, or upgrade the ADC, you would replace the entire board! The FMC innovation provided developers with choice, so that they could select the right FPGA for their specific I/O requirements. [Read More]

Enabling VADJ on Versal VCK190 and VMK180

Enabling VADJ on Versal VCK190 and VMK180
If you’ve taken a good look at the VCK190 or VMK180 Versal Evaluation boards, you would have noticed that it has a Zynq UltraScale+ device on it. This would be the central device on a lower cost development board, but on these boards it is just a lowly system controller. The system controller is there to manage power supplies, clocks and other on-board resources and it runs independently of the main device. [Read More]

Using NVMe SSDs with Versal VCK190 and VMK180

Using NVMe SSDs with Versal VCK190 and VMK180
High-capacity non-volatile storage is pretty handy in the intensive computing applications that the Versal ACAP adaptive SoCs get employed in. NVMe SSDs are a perfect way to provide that storage because they can directly interface with the Versal’s integrated blocks for PCIe. Those integrated blocks are Gen4 compliant which makes for an extremely high bandwidth connection between the FPGA fabric and the storage medium. Over the past couple of weeks, my team and I have been bringing up an NVMe SSD on the Versal AI Core VCK190 Evaluation kit using the FPGA Drive FMC Gen4 adapter. [Read More]

Multi-camera YOLOv5 on Zynq UltraScale+ with Hailo-8 AI Acceleration

Multi-camera YOLOv5 on Zynq UltraScale+ with Hailo-8 AI Acceleration
See it live: The demo described in this post will be displayed live at the EBV Elektronik booth at Embedded World 2024 on April 9-11. I’ll be attending too, so get in touch if you’re keen to meet up. Over the last few months I’ve been lucky to work with two very talented people on an interesting project for multi-camera machine vision applications: Gianluca Filippini and Mario Bergeron. Back in 2022, I was contacted by Gianluca, an engineer from EBV Elektronik. [Read More]

Change the temp folder used by PetaLinux

Change the temp folder used by PetaLinux
When working with PetaLinux tools, we need to be wary of the often very sizeable temporary files generated during builds. These temporary files can often take up more than 10GB, and they are crucial for the build process. By default, PetaLinux tools create a temporary folder internal to the project directory. Having it set this way is useful because our projects are well contained and we have clear insight into the total disk space used by a project. [Read More]

How to build PetaLinux in offline mode

ie. without a network connection

How to build PetaLinux in offline mode
In certain scenarios, you might want to build PetaLinux without relying on an active internet connection. This offline building feature can be useful for various reasons. To build PetaLinux without a network connection, you obviously need pre-downloaded source packages and dependencies. Xilinx allows you to pre-download all of these dependencies (called sstate cache artefacts) and then perform the build offline. Why You Would Use It The reason to use offline mode really depends on your situation and it’s definitely not something that everyone will get benefit from. [Read More]

Adding a script to the root file system in PetaLinux

And making it run on start-up

Adding a script to the root file system in PetaLinux
When designing custom PetaLinux builds, we often end up with a bunch of commands that we have to run after login to set things up and make initializations. Having a script built into the root filesystem can make this process easier, so in this post I’m going to show you how you can set that up in PetaLinux 2022.1. These instructions assume that you already have a PetaLinux project created. [Read More]

A Smart Camera implemented in PetaLinux 2022.1 on ZCU104

Using a Raspberry Pi camera

A Smart Camera implemented in PetaLinux 2022.1 on ZCU104
In this post we’re going to build a smart camera using a Raspberry Pi camera, the ZCU104 board and PetaLinux. We’re going to do this by leveraging the Smartcam app which was originally designed for the AMD Xilinx Kria SoM. Our version of the Smartcam app can take video inputs from a Raspberry Pi camera, a USB camera or a file, and it can output video to a DisplayPort monitor, a file or via Ethernet over Real-time Transport Protocol. [Read More]

Benchmarking an FPGA based AI Vision application

Docker, Ubuntu and PetaLinux put to the test

Benchmarking an FPGA based AI Vision application
Many smart vision applications need to make fast decisions: autonomous vehicles, drones, surveillance and industrial robotics are only a few examples. When developing these kinds of AI vision systems, understanding performance-affecting factors is critical. In this post, we’ll explore two such factors: the operating system and camera type. We’ll measure and compare the performance of the NLP-SmartVision app on the ZCU104 board. The setups we’ll use are: Operating system: Docker container on Certified Ubuntu 22. [Read More]