Parallel Programming for FPGAs: Projects and Labs

Parallel Programming for FPGAs book is an open-source book aimed at teaching hardware and software developers how to efficiently program FPGAs using high-level synthesis (HLS). The goal is to train people to effectively use HLS tools. The book was developed over many years to serve as a primary reference for UCSD’s 237C — a hardware design class targeting first-year graduate students and advanced undergraduate students.

While writing the book, we developed projects and labs for the students to learn the HLS tools and to build real systems using FPGAs. This serves a general one stop shop for those projects and labs. The projects and labs have a direct correspondance to the chapters in this book and were written to accompany each other.

The projects and labs use the Xilinx PYNQ infrastructure and Intel’s DevCloud to deploy HLS code onto an FPGA. The Xilinx labs/projects target the PYNQ-Z2 board. Please follow this link for the Pynq setup. If needed, it is possible wirelessly access the Pynq-Z2. DevCloud provides access to the tools and FPGAs remotely.