Over the last five years, I have been writing some very in-depth projects on Hackster in addition to my weekly blogs. These projects have covered a wide range of applications on AMD FPGA and SoC boards, from the Arty S7 to UltraScale+ MPSoC and beyond. While the applications have covered everything from image processing to robotics and machine learning, we’ve also created a couple of fun projects along the way.
All of these projects have provided full step-by-step instructions with source code and build scripts where necessary.
Last week I realized that I was a few hundred short of achieving 500,000 project views. Having written well over 100 projects, I thought I would describe my favorite top 10 and tell you why they are on the list.
1. Using High-Level Synthesis for Image Processing – This is one of my first and most popular projects. It explores how we can use Vitis HLS to create image processing algorithms and explains the steps necessary to optimize the performance of the HLS core.
2. So you want to design a FPGA IP Core! – This project demonstrates the steps which are taken from beginning to implementation and the verification of an FPGA IP core. It outlines the definition of requirements, interface and architecture, and illustrates how verification can be completed using bus functional models and test cases.
3. How to Create a Kria Carrier Card – The Kria SoM enables technical risk to be reduced and accelerate developments. This project walks developers through the development process, problem and mission analysis, requirements, architecture, and implementation of a simple Kria carrier card.
4. Doing Math in FPGAs – Programmable logic structures within FPGAs are brilliant for implementing signal and image processing algorithms along with a range of other mathematically complex algorithms such as machines learning. This project explores the different methods of implementing mathematical structures using fixed-point math.
5. Debugging AMD FPGA AXI Designs with a RPi Pico – Our FPGA designs often use AXI interconnects and this project shows how we can use simple interfaces such as UART, SPI, I2C to access these AXI networks. This can be for debugging, or in some cases, processor IO expansion (e.g. STM32).
6. ZUBoard Motor Control and PetaLinux – This project explores how the Avnet ZUBoard can be used to implement a simple brushless DC motor control solution using PetaLinux and a click brushless 3 module. This project is also a great starting point for learning SPI and I2C Dev in embedded Linux.
7. Introduction to Digital Filters – FPGAs are great for signal processing and implementing filters such as finite impulse response (FIR) filters. This project introduces the theory of digital filters before demonstrating how to design, create, and implement different types of FIR filters such as low, high and band-pass filters.
8. Portable Thermal Imaging – One of the great things about FPGAs is their use in image processing. This project demonstrates how a simple IR sensor can be used to implement a small thermal imaging solution which can take ration metric thermal measurements.
9. IR Communication – This project shows how IR communication can be used to transfer data simply between two FPGAs. This project used simple on / off modulation to transfer the information between the two boards.
10. IOT Board Bring up on Two Continents – This project features the custom Zynq-based Smart IOT board designed and developed to support the book I wrote with my co-authors. The project walks though how to create a PetaLinux solution that can be used to read on-board sensors using Python and log into a IOT platform. It also shows how we can connect to two boards in on different places at one using the cloud. This can be recreated with any Zynq / Zynq MPSoC board.
These are the 10 projects that I’ve enjoyed creating the most, probably because they align with my love of FPGA design and sharing how to do it with others.
If you’ve been following me, I wonder what your favorite Adiuvo Engineering projects are?
Workshops and Webinars
If you enjoyed the blog why not take a look at the free webinars, workshops and training courses we have created over the years. Highlights include
Professional PYNQ Learn how to use PYNQ in your developments
Introduction to Vivado learn how to use AMD Vivado
Ultra96, MiniZed & ZU1 three day course looking at HW, SW and Petalinux
Arty Z7-20 Class looking at HW, SW and Petalinux
Mastering MicroBlaze learn how to create MicroBlaze solutions
HLS Hero Workshop learn how to create High Level Synthesis based solutions
Perfecting Petalinux learn how to create and work with petalinux OS
Embedded System Book Do you want to know more about designing embedded systems from scratch? Check out our book on creating embedded systems. This book will walk you through all the stages of requirements, architecture, component selection, schematics, layout, and FPGA / software design. We designed and manufactured the board at the heart of the book! The schematics and layout are available in Altium here Learn more about the board (see previous blogs on Bring up, DDR validation, USB, Sensors) and view the schematics here.
Sponsored by AMD