Embedded System Design with Xilinx Zynq FPGA and VIVADO
3.7 (132 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
802 students enrolled

Embedded System Design with Xilinx Zynq FPGA and VIVADO

Zynq Training with VIVADO Tool: Embedded System Design with Zynq 7000 (Zedboard/Zybo/MicroZed), VIVADO IPI & SDK.
3.7 (132 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
802 students enrolled
Created by Digitronix Nepal
Last updated 7/2020
English [Auto]
Current price: $128.99 Original price: $184.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 8 hours on-demand video
  • 7 articles
  • 30 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • To Understand and Familiarize VIVADO Design Methodology and Zynq Architecture for FPGA Design.
  • Rapidly architect an embedded system targeting the ARM processor of Zynq located on ZedBoard using Vivado and IP Integrator
  • Create Custom AXI-4 Slave Led Controller IP with VIVADO IPI in VHDL.
  • Software Design for Embedded Application with VIVADO and SDK
  • To Create a bootable system capable of booting from the SD card and QSPI flash
  • Debug designs with SDK and Utilize Timer Resources of Processing System.
  • Design Custom Embedded System with Xilinx Zynq 7000 FPGA with VIVADO in VHDL
  • Create Designs with VIVADO IPI and Implementing Design in ZedBoard FPGA.
  • Design with VIVADO HLS and Export C/C++ Design into IP/RTL from HLS
  • C Language Programming with Xilinx VIVADO SDK
  • Hardware Description Language -HDL [VHDL/Verilog] basics
  • Basic FPGA Design Flow
  • Idea of Xilinx ISE Design Suit ( best if have idea of VIVADO design methodology)
  • Basic Idea of Embedded Programming with C
  • No Worries!!! we have introduced all the basics of VIVADO, Verilog/VHDL and Zynq in this Course!

Note: Course is updated with HLS Design Lab & Debugging Sessions.

Embedded System Design with Xilinx VIVADO Design Suit and Zynq FPGA is targeted for Hardware (FPGA) Design and Embedded enthusiast who want to upgrade and enhance their hardware(FPGA) Design Skills with State of Art Design Tools and FPGA from Xilinx. This course cover from Introduction to VIVADO, Intellectual Property (IP), IP Design Methodology, designing basic embedded system with Vivado and SDK, Creating custom AXI-4 Lite Led Controller IP, Programming Processing System (PS) of Zynq (i.e Zedboard) with Embedded Application projects from SDK , Utilizing Timer API and Debugging Features on SDK for Zynq PS, and Creating Boot Image of the Application Project for SD and QSPI flash of Zynq (ZedBoard).

Finally we have included the session on "Embedded Design with VIVADO HLS" this session includes the HLS Design Methodology, Synthesizing HLS C/C++ Project, Generating RTL/HDL from C/C++ and Exporting C/C++ project in to IP-XACT/ Pcore/Sys Gen Format.

So from this course you will able to get design/implementation skills of simple embedded system (Memory Test Application) to complex application design (utilizing Timer, Debugging etc.) and Create Bootable Image file of the application project.For more details please watch the demo video and some Free video of course.

Who this course is for:
  • Electrical Engineering
  • Computer Engineering and Computer Science
  • Electronics Engineering
  • Embedded System Design Enthusiast and Professionals
  • Zynq Training Enthusiasts
Course content
Expand all 38 lectures 08:35:02
+ Section_1_Overview with Xilinx VIVADO Design Suit and Zynq FPGA
10 lectures 02:11:03

VIVADO is sophisticated FPGA Design environment developed by Xilinx for its every (latest) FPGA Family. Previously there is ISE Design Suit which is little messy or complex and has less feature on design optimization and timing analysis. So VIVADO came out with latest state of art design methodology, functions and features all in one platform so the design engineer can excel and prototype fast for reducing overall design time (time to market will reduced by VIVADO).

Preview 18:00

VIVADO has included all the necessary options and menus on the left hand side. The main features of VIVADO is IP(Intellectual Property) Repository where lots of Xilinx IP and third IP can be customized and integrate with other logical block and components.

Preview 06:17

While Learning this course and performing with the LAB exercises, VIVADO has to be installed on PC. Vivado can be downloaded from Xilinx.com.For You OS type, You can install Webpack Version or System Edition of VIVADO including SDK and HLS, also include Zynq 7000 Board (select while installation). After installing VIVADO, you can get webpack version of license as (download 30 day evaluation license of vivado). After installation and License management you are ready for performing Lab on it.

How to install VIVADO and Get 30 Day Evaluation License

This Course is Targeted for Zynq FPGA so you can use any of the Zynq FPGA Board's for Learning and performing lab session. In this Lecture session you will learn and add the Zybo Board Files on Your Vivado, so you can just click on Boards--> zybo instead of searching for xc7z010clg400-1 parts. So you can create a project and select the board just by one click.

We also have attached the "vivado-boards-master" with this session so you can use that zip file , extract it and follow the lecture for copying on the Xilinx/.../boards_files directory.

Section 1 How to Add Boards on VIVADO (Adding Zybo Board)

This Reference Guide on Verilog consists of detail explanation of Verilog Examples as Combinational Circuit and Sequential Circuit Design, ALU Design, Counter Design,State Machine Design and Signal Processing Example. Each example consists of Verilog Examples, Testbenchs and Example Output.

Verilog Reference Guide From Digitronix Nepal

This Reference Guide Explains the VHDL Programming Methodology with Examples. Started with Basic Combinational Circuit (gates, decoder, multiplexer) to Sequential Circuit and Signal Processing Projects. This reference Guide also consists of Simulation testbench of all examples and schematic, block diagram.

VHDL Reference Guide From Digitronix Nepal

In this first LAB session we are going to design a combinational circuit in VHDL (we have provided the Verilog sources in the attachment). We start with creating new project, adding new design source, synthesizing design , inserting constraint (constraint for Zedboard while you can insert constraint for other development boards to as, Zybo) and implementing design then finally generating design.

After completing this lab you will be able to create new project, include design and constraint sources, synthesize , implement and generate design.

Lab 1a-Basic Hardware Design with VIVADO IP Integrator for Zedboard

We also have implemented our first lab on Hardware/FPGA. We have included constraint for Zedboard so we have targeted the bitstream to the zedboard. You can watch the implemented project and its functionality on FPGA with this video.

Section 1 Lab 1a Output_Basic HDL implementation on ZedBoard FPGA

This Lab is the Basic HDL Design lab targeting Zybo FPGA. While the Overall Design Flow is same as previous Lab (in Lecture 7). So if you have Zybo you can go through this Lecture. We have presented complete flow of basic HDL design , implementation, generation and configuring Zybo FPGA in this Lecture.

Preview 15:43

Detailing about AXI Protocol and Interface details!

Section 1 AXI Protocol Overview
+ Section_2_Basic Embedded System Architecture and Designing with Zynq PS and GPIO
4 lectures 01:10:49

Embedded System is those system which are designed to do specific task or perform specific job. Embedded system examples can be differentiate from small washing machine, microwave oven, ABS in automotive to specialized military systems (Weapon control system, Guided system, tracking system).

Zynq is System on Chip FPGA Family from Xilinx which lies under Zynq 7000 family, there are xc7z010, xc7z020, 030, and 040 Zynq series for prototyping. Zynq consist of Processing System (PS:- Two ARM Cortex A9) and Programmable Logic (PL:- Traditional Xilinx 7 Series FPGA Core). So the PL can be utilized for High Speed interface and PS for Instructing those PL and Processing data to/from PL. So the Designer can implement algorithms for embedded processing job.

Embedded System Overview & Lab 21 Memory Test Application on Zynq PS

Lab on Memory Test Applicaition targeted for Zybo FPGA. We already have complete the similar lab targeted for ZeddBoard. In this lab a VIVADO IPI project with Zynq PS has been exported to SDK and a Memory test application template is used to program PS of Zybo.

Lab 21b Memory Test Application Zybo FPGA Implementation

In this lab 2, we have session on how to interface Processing System and AXI GPIO (AXI GPIO IP can be configured as input as switch/button or output as LED). We have interface AXI GPIO (buttons and switch with Zynq PS). After interface completes the design has to validate, create HDL wrapper, synthesize design, implement design and generate it. After generation completes we need to write a software for PS for instructing AXI GPIO for that the generated project has to export to SDK. In SDK we are going to write a software application after application project completes we have to program FPGA (Programmable Logic) with bit file and launch Application project on Processing System (PS of Zynq). After implementing the application project we can  setup USB UART with FPGA board (ZedBoard/Zybo) and get updates of the AXI GPIO Address on the UART Terminal of SDK.

Lab22 Interfacing the Zynq PS and AXI GPIO IP (Buttons and Switch)
+ Section_3_How to Create a Cusom IP (Led Controller) with VHDL in VIVADO for Zynq
2 lectures 52:17

In this section we will get idea of Custom IP Design methodology on VIVADO. Advance Extensible BUS (AXI) Interface Protocols , actually it is data transfer serial protocol used all over latest FPGA which was developed and patented by ARM holding, UK. This AXI has adopted from AMBA protocol features while it has different revisions as AXI2.0 , AXI 3.0, AXI 4.0 etc and there are different data transfer mode on AXI as AXI Memory Mapped (memory transfer with memory addresses) and AXI Streaming (Just data transfer no memory location).

One more thing we need to know about AXI is there might have Master or Slave of AXI Terminals. AXI data can also be transferred as AXI Full, AXI Lite.

How to Create a Cusom LED Controller IP with VHDL in VIVADO for Zynq : Overview

In this lab 3, we are going to create a Custom LED Controller IP on VHDL, this IP will be AXI Slave. VIVADO has new feature of Creating Custom IP in HDL or RTL this IP can be imported on the IP integrator Menu and integrate with Zynq PS and other master component (some time microblaze, a 32 bit RISC processor). This led controller IP created and packaged with IP Package and edit menu of VIVADO. After interfacing completes the project has to be validated, autosetup address editors and create HDL wrapper. After HDL created we can Synthesize the project and implement for ZedBoard/Zybo FPGA or other family of FPGA.

Section 3 Lab 1 Creating Custom IP :Create Led_controller IP in VHDL
+ Section_4_Software Development with Xilinx SDK for Embedded Application
4 lectures 42:52

Introduction to Software Development with VIVADO SDK and written in Embedded C Language has been explained on this session. You will get what is Software Application for Embedded System, how to write those application with VIAVDO SDK after Exporting Design from VIVADO IP Integrator (VIVADO Main Program).

We will get to know about the SDK Features and Functions so that we can create new project, launch application on PS of FPGA with USB JTAG Cable.

Section 4_1 Lecture 1 and 2: Overview and Introduction to SDK

Section 4_2 Lab "Writing Software Application with VIVADO SDK for Custom IP Project".

Section_4_2 Lab: Writing Software Application for Led Controller IP

Here we have short demonstration on Implementing our Custom LED Controller IP on FPGA. The FPGA is ZedBoard which is Zynq Family, you can even shange the constraint in Section 3 Lab 1 for other board and can program other FPGA Development Boards to. The Possible other Boards are ZedBoard, Zybo ,Pynq , Zc706 Dev. Boards.

Section 4_2 Demo of Lab: Implementing Led_controller on ZedBoard with SDK

This is optional LAB on "creating led controller IP in Verilog with VIVADO 2018.2 on Ubuntu 16.04". In this lab we create "customizable LED controller IP".

[Optional LAB] LED Controller in Verilog with VIVADO, ZedBoard & Ubuntu
+ Section_5_Software Writing for Timer and Debugging with SDK
2 lectures 50:52

Timer is the Functional Unit on Zynq Processing System which can be called using API on VIVADO SDK, the timer API has to called on the Software Application written in VIVADO SDK. This timer API can provide some time delay for controlling any GPIO's. Aside of Timer there is Debugging features include on VIVADO SDK , this debugging feature can run the current application project on Hardware and check line by line operation.

Timer, Programming and Debugging Methodology with SDK on Zynq FPGA

Zynq Processing System(PS) has Timer functionality block inside of it, this timer can be initialized and called from SDK program written in C Programming. In this overview and LAB we are going to utilize that Timer API for creating some sort of delay on Led Blinking Process.

We are going to utilize SDK debugging feature for debugging C program written in SDK.

Lab 5-Software Writing for Timer and Debugging Using Software Development
+ Section_6_Configuration and Bootloading with SDK (Creating Custom Bootable File)
3 lectures 41:26

The Software Application with the Bitstream can be encapsulate in Boot.bin file so that file can be run by Processing system of Zynq FPGA. Any Software Application can be converted in to Bootable file so that it can run from SD Card attached with the board. The PS part fetch and execute the Boot.bin or bootable file (which includes bitstream and software application) and perform the defined operation.

Overview of Configuration and Bootloading with SDK

In this Session we are going to Create our Custom Bootable File of the previous project (hello world project). This bootable file can be transferred on the SD card and attach with Zynq Device (Zedboard or Zybo) so the device will run the Bootable File and execute (for that you might need to change some Jumper setting for SD Bootup).

Lab 6 Creating Bootable file of the application project for SD

This session is on "How to create a bootable file- BOOT.BIN from the VIVADO SDK".

Lab 62- Creating Bootable File for Zynq FPGA
+ Section_7_Embedded Design with VIVADO High Level Synthesis-HLS: Counter Design
1 lecture 19:32

This Session is Overview of High Level Synthesis (A C/C++ Design Approach on FPGA Design), we have implemented Counter Design on C++ with VIVADO HLS (VIVADO HLS comes with VIVADO you just need to add it from add feature menu of VIVADO). The HLS Tool convert the C/C++ Design in to VHDL/Verilog and System C just after the click on Synthesize Design with HLS. We can generate IP Core or System Generator IP core from HLS which can be imported on VIVADO IP Integrator.

Section 7 VIVADO HLS Design Methodology & Lab 71: Counter Design with HLS
+ Section_8_VIVADO Tcl Scripting: Creating VIVADO Project with Tcl Commands
4 lectures 44:50

Tcl is Tool Command Language powerful Scripting Language (as BASH on Linux) for FPGA Design. VIVADO supports and allows to use Tcl command to do all the process GUI based operations. Correspodingly VIVADO also generates the Tcl commands of the GUI based operation. As example while we go through create new project option (GUI) , on the Tcl Console VIVADO also generates the corresponding Tcl command of that GUI based operation( Creating New Project).

Tcl provides FPGA Designer to optimize the design on resource and reduce design time cause it take less time to execute any process than GUI based operation.

This Section and Lecture will taught and make you familiar with Tcl, Basic Tcl command for creating project, processing , synthesizing etc. We also have Lab sessions for How to create Tcl command file from VIVADO Tcl console and How to run previously created or downloaded (created by another VIVADO) Tcl file to create projects. We also talk on Version Control of Tcl File according to VIVADO.

We also have attached the "Reference Guide on Tcl" Prepared by Digitronix Nepal with this Section.

Section 8 VIVADO Tcl Scripting

In this Lab session you are going to create a Project of "Half Adder" with Tcl commands. We have provided the Tcl command and instruction in the Lab81 Sources Zip File attached with this Video, Please download the Zip file and Follow the Lecture/Lab.

Section 8 Lab 81 Creating Basic Project (Half Adder) with Tcl Commands in VIVADO

In this Lab 82 we are going to use the previously created Tcl file (bcd_counter_tcl.tcl) for Creating , Adding HDL Source, Constraint, Synthesizing , Implementing, and Generating Bitstream automatically. 

We also have attached Lab 82 Sources.zip file with this Lecture/Lab please download the Zip file and Follow the Lecture/Lab. We also have talk on Version Control of Tcl and VIVADO in this Session.

Section 8 Lab82 importing Tcl scripts form Github/Tcl file(Creating BCD Counter)

This Reference Guide explains about the Tcl commands, their examples and Output with Remark and Reference. We would like to request you to also visit UG835 from Xilinx and Wiki of Tcl and Tk. The Reference Guide has objective to introduce the Tcl Programming Language while this language can be used on the VIVADO Tcl Console for all types of operation there( Creating New project to generate and configure hardware).

Tcl Reference Guide From Digitronix Nepal
+ Section_9_ Debugging with VIVADO: Hardware and Software Debuggin
5 lectures 59:23

Learn about Debugging Methodologies: Hardware and Software Debugging from this Lecture. This lecture taught all the Hardware Debugging Methodologies: ILA ,VIO, Setup Debug Option etc and Software Debugging Methodologies: XMD and GDB.

Section 91 Debugging with VIVADO Hardware and Software Debugging

This LAB is base design for the "Debugging with ILA and VIO".

Lab91: GPIO Base Design for Debugging

This is LAB session on "Debugging with Integrated Logic Analyzer (ILA)".

Lab92: Debugging with ILA on Lab91

This is LAB Session on "Debugging with VIO".

Lab93: Debugging with VIO on Lab92

This session is debug lab session, the ILA core is used to capture the XADC output data. The data has been analyzed on the hardware ILA debug waveform.

Lab 94: XADC Debugging Demo with VIVADO and Zybo FPGA
+ Petalinux Development with Zynq
1 lecture 00:45

This session is on "How to develop Petalinux Application" for the Custom VIVADO Project. We are showing the steps for developing the Petalinux Application for the Custom LED Controller Project.

Developing Petalinux for Custom VIVADO Project [Led Controller Project]