Pynq Fpga Development With Python Programming

Tags: FPGA

Learn Python Development with PYNQ FPGA: covers from Image Processing to Acceleration of Face Recognition Projects.

Last updated 2022-01-10 | 3.7

- PYNQ Development Flow
- Implementing Face Recognition with PYNQ FPGA
- Image and Video Processing with PYNQ FPGA and Python Library

What you'll learn

PYNQ Development Flow
Implementing Face Recognition with PYNQ FPGA
Image and Video Processing with PYNQ FPGA and Python Library
Creating Custom Overlay for PYNQ on VIVADO
Machine Learning Algorithm Implementation on PYNQ
Installing Tensorflow on PYNQ and Implementing Neural Network on PYNQ
Python Programming with Jupyter Interface on Internet Browser

* Requirements

* FPGA Design Basics
* Basic of Python Programming
* PYNQ FPGA Board
* Eager to Learn Pynq Development with Python and VIVADO

Description

PYNQ (Python+Zynq), An FPGA development platform from Xilinx is an Open Source FPGA development platform. This Course covers from the Architecture of PYNQ (Zynq 7000), PYNQ Development Flow, Basic GPIO interfacing with PYNQ FPGA, Image Processing with PYNQ, using PYNQ libraries as sci_pi, OpenCV, Installing Tensorflow on PYNQ,Machine Learning with Pynq, Neural Network Implementation on PYNQ, Creating Custom PYNQ Overlay on Xilinx VIVADO .

After completing this course you will also know about the Acceleration methodology on the PYNQ Development Platform. Another important section of this course is Implementation of Machine Learning Algorithms on Python for Image Processing and other projects. We will implement Artificial Neural Networks (ANN) algorithms as CNN, BNN and other Neural Networks for real time projects as Number Plate Recognition, Face Recognition etc

At the another section we will have sessions on "How to design Overlay system with VIVADO for PYNQ FPGA". This session is based on the VIVADO HLS & IP integrator for creating custom Overlay. 

Who this course is for:

  • Electrical Engineering
  • Computer Science
  • Hardware Design Enthusiast

Course content

10 sections • 22 lectures

PYNQ FPGA Introduction Part I Preview 13:54

This first Lecture is on "Introduction to PYNQ FPGA Architecture". PYNQ is an Zynq 7000 FPGA device from Xilinx. The main goal of PYNQ, Python Productivity for Zynq, is to make it easier for designers of embedded systems to exploit the unique benefits of APSoCs in their applications. PYNQ has specifically XC7Z020-1CLG400C FPGA Device which is Zynq 7000 device, this Zynq 7000 consists of two main block which are Programmable Logic (PL) and Processing System (PS). PL is an 7 series FPGA core (Logical Units, FF, MUX) and PS is dual core ARM Cortex A9.

This introductory session on PYNQ architecture has been included in this first Lecture.

PYNQ Introduction Part II Preview 11:52

This Lecture 2 of Section 1st is on Python Programming Interface, we have here a basics of Python, how it works on PYNQ and a small example of Python program. This session just widen the Python programming use with PYNQ, while we have complete Python programming session on Section 3.

Section 1 PYNQ Boards & Accessories [Demo] Preview 04:59

PYNQ-Z2 Unboxing and Demo [Optional] Preview 04:18

PYNQ Z2 unboxing and demo session, we have presented what are the features of PYNQ-Z2 with respect to the PYNQ-Z1.

PYNQ Development Methodologies Overview Preview 14:48

In this Section 2, we have how to download the PYNQ installation files (PYNQ OS), how to configure the PYNQ Board and how to write a basic Python program with Jupyter interface on your Browser.

PYNQ FPGA Board Setup & Basic Programming Demo Preview 06:35

Section3_0_Python_Overview Preview 20:54

This session is on Python Programming Basics, PYNQ specific libraries, and Basic GPIO Programming with PYNQ.

Section3_1: Python Programming, Conditional Statements and Loops with PYNQ GPIO Preview 19:20

This session is on Python Programming with PYNQ FPGA, we have included the conditional statements and loops with the GPIO based example of PYNQ FPGA. And we also have included the SciPy, MatPlotLib, NumPy and other Python Library with examples in this session.

Section3_2: Python OpenCV Development with PYNQ FPGA Part I: OpenCV Basics Preview 17:47

This session includes the basics of OpenCV Library, image processing functions on OpenCV as transformation, smoothing, blurring functions. We also have included the Jupyter Notebook based LAB example on this session and those LAB project files (.ipnyb) files are attached with this lecture.

Section3_2: Python OpenCV Development with PYNQ Part II: Face & Eye Detection Preview 14:49

This session covers from OpenCV functions as: Image Gradient, Edge Detection, Feature Detection functions (Harris & Fast Corner), Haar Cascade algorithm, Face Detection with Haar, Face and Eye Detection with Haar Cascade algorith. All the LAB sources are attached with this video lecture , so you can download those and explore on your own Jupyter+ PYNQ environment.

Python OpenCV HDMI Streaming & Processing Preview 07:41

This Lab session is on showing the example project of PYNQ on Streaming the HDMI input to HDMI output and Processing the HDMI input with Grayscale function on Software Level and Hardware Level. The Software Level gives 3 Frame/Sec and Software+Hardware Level gives 8 frames/sec.

PYNQ-License Plate Localizer on Python OpenCV Preview 05:39

Localizing the license plate from the given image!

Installing Cryptography Python Library on PYNQ Preview 06:46

This session is on installing "Cryptography" python library on the PYNQ FPGA. We also explore the default project with this library in this session.

Machine Learning with Python Preview 19:58

Overview of Machine Learning, Machine Learning Algorithms, Introduction to Neural Networks and Some Project Examples.

Character Recognition with BNN on PYNQ FPGA Preview 01:02

In this section we have explained the detail on "how to detect and recognize" the character from the given image. This character detection is part of our Vehicle Detection system.

Creating Custom Overlay on PYNQ: Addition & Multiplication Application Preview 22:43

This session is on Creating the custom Overlay using the VIVADO HLS, VIVADO IP integrator and the Jupyter interface. This session focus on the design flow of creating the custom overlay, so that you can accelerate other application on the HLS and create custom overlay.

How to Create a Custom Overlay for the PYNQ FPGA Preview 00:23

This Lecture will let you know the step by step tutorials and details for creating own custom Overlay (VIVADO based project for Jupyter) for PYNQ.

Creating PYNQ VDMA Overlay with VIVADO 2021.1 and Python-Notebook Preview 14:33

In this LAB, we are using PYNQ version 2.6 and VIVADO version 2021.1 for creating VDMA overlay. The VDMA IP is used for cropping functionality on Notebook project. Instead of using OpenCV cropping function which runs on PS of PYNQ, we are accelerating that cropping function on PL using VDMA IP.

Tensorflow Installation on PYNQ FPGA Session Preview 01:57

This session includes the steps for installing the TensorFlow on Pynq FPGA's Board. We step by step tutorial and the explore project on Tensorflow in Pynq Jupyter Notebook. Join the Course and Session and Explore with Tensorflow.

DPU on PYNQ Boards: Ultra96/ZCU104/ZCU111 Preview 01:38

This article is on highlighting the "Deep Learning with PYNQ OS", now this DPU based Machine Learning Acceleration is supported for MPSoC Boards as Ultra96/ZCU104/ZCU111 boards only.

What Next? Preview 00:32

This Session includes the bonus session and reference links after completing this course! We also have included the Ultra Low Cost coupons of our Other Course in this section.