Easy FPGA and Embedded Linux on ZYBO


In this tutorial series, I am going to share about how to build a system that consists of FPGA and Embedded Linux web application. We are going to build a hardware accelerator for calculating greatest common divisor (GCD) on the FPGA. The GCD core is connected to the CPU ARM Cortex-A9 through the AXI4-Lite bus. On top of the Linux, we are going to build an embedded web application based on Python Flask web framework. The system is illustrated in the following block diagram.

At the end of this tutorial, you will be able to build the following system. You are going to learn how to develop a system that consists of both hardware and software stack. This kind of methodology is usually called hardware/software (HW/SW) co-design. The hands-on skill that you are going to learn is applicable for your future project, such as IoT or Edge AI.

Throughout this tutorial series, you are going to learn the following technology/programming language: Zynq-7000, AXI4-Lite, Ethernet, Embedded Linux, Verilog, C, HTML, CSS, JavaScript, Python, and Flask.

So, let’s get started!


  • Part 1 – RTL Simulation of the GCD Core
  • Part 2 – Wrap the GCD Core with AXI4-Lite Interface
  • Part 3 – Test the GCD Core with Bare Metal Application
  • Part 4 – Performance Comparison of the GCD Core
  • Part 5 – Configure the Linux System using Xillinux Distribution
  • Part 6 – Communication between ZYBO and PC via Ethernet
  • Part 7 – Install Libraries for Web Application Development
  • Part 8 – Front-end Development using HTML, CSS, and JavaScript
  • Part 9 – Back-end Development using Python and Flask Framewrok



If you benefit from this page, please make a small donation. I suggest $5, but you can choose the amount. We need your help to pay for web hosting and buy new components and equipment for new tutorials. Alternately, you can make a donation by sending me Bitcoin, at address 1JN3zEw8NqCr8bn4UQa3TfZXaz7UZnb5bH

Share this: