Advanced Features and Techniques of Embedded Systems Design

DEPRECATED COURSE: This course is older and no longer offered with our regular course list. It is only available as a private class.

Please contact the BLT Training Team to schedule a private class.

Advanced Features and Techniques of Embedded Systems Design provides embedded systems developers the necessary skills to develop complex embedded systems and enables them to improve their designs by using the tools available in the Vivado IP Integrator. This course also helps developers understand and utilize advanced components of embedded systems design for architecting a complex system in the Zynq All Programmable System on a Chip (SoC) or MicroBlaze soft processor.

This course builds on the skills gained in the Embedded Systems Design course. Labs provide hands-on experience with developing, debugging, and simulating an embedded system. Utilizing memory resources and implementing high-performance DMA are also covered. Labs use demo boards in which designs are downloaded and verified.

Skills Gained

After completing this comprehensive training, you will know how to:

  • Assemble an advanced embedded system
  • Take advantage of the various features of Zynq All Programmable SoC and Kintex FPGAs, Cortex-A9 and MicroBlaze processors, including the AXI interconnect and various memory controllers
  • Apply advanced debugging techniques, including the use of the Vivado analyzer tool for debugging an embedded processor system and HDL system simulation for processor-based designs
  • Identify the steps involved in integrating a memory controller into an embedded system using the Cortex-A9 and MicroBlaze processors
  • Integrate an interrupt controller and interrupt handler into an embedded design
  • Design a flash memory-based system and boot load from off-chip flash memory

Course Outline

Day 1

  • Overview of Embedded Hardware Development
    Provides an overview of embedded hardware development.
  • Hardware-Software Flow
    Illustrates how design information generated during the hardware development process is moved into the SDK tool realm.
  • Software Overview
    Provides a thorough understanding of how the integrated design environment works, including how the compiler and linker behave, basics of makefiles, DMA usage, and variable scope.
  • Zynq®-7000 All Programmable SoC Architecture Overview
    Overview of the Zynq®-7000 All Programmable SoC architecture.
  • MicroBlaze® Processor Architecture Overview
    Overview of the MicroBlaze® microprocessor architecture.
  • Zynq® UltraScale+ MPSoC Architecture Overview
    Overview of the Zynq® UltraScale+ MPSoC architecture.
  • Debugging: Hardware Introduction
    Introduces the need and offers a solution for in-chip testing of hardware designs.
  • Debugging: Marking Nets
    Reviews the process of marking nets to show which signals should be monitored without having to explicitly instantiate ILA cores.
  • Debugging: Hardware-Software Co-Debugging (Cross-Triggering)
    Describes how to enable events in hardware to pause the software execution and breakpoints in software to cause an ILA trigger.
  • Memory Types: Memory Overview
    Provides a brief overview of the different types of memory available, as well as when one type of memory would be selected over another.
  • Memory Types: Block RAM Controllers
    Introduces two versions of block RAM controllers and how and why they are needed.
  • Memory Types: Static Memory Controllers
    Discusses static memory controllers in general and the SMC implementation in the Zynq®-7000 family of devices.
  • Memory Types: DDRx Memory Operation
    Provides additional details regarding how DDRx memory interfaces with a controller
  • Memory Types: Dynamic Memory Controller (Zynq®-7000 Device)
    Covers how the DMC is implemented as well as many of its key behaviors.
  • Interrupt Concepts: Introduction to Interrupts
    Introduces the concept of interrupts, basic terminology, and generic implementation.
  • Interrupt Concepts: Interrupts and the Zynq®-7000 Device
    Presents the details of how the Zynq®-7000 platform uses interrupts from both a hardware and software perspective.
  • Interrupt Concepts: General Interrupt Controller
    Introduces the general interrupt controller (GIC), its features, and some examples of its use.
  • Interrupt Concepts: Interrupts and the MicroBlaze® Processor
    Describes how interrupts are handled within the MicroBlaze® processor system from a hardware perspective.
  • Interrupt Concepts: AXI Interrupt Controller for the MicroBlaze® Processor
    Introduces the AXI Interrupt Controller, which augments the MicroBlaze® processor’s interrupt capabilities by managing multiple interrupt sources.

Day 2

  • AXI Concepts: AXI Streaming Introduction
    Provides the context and background for the the streaming configuration of the AXI protocol.
  • AXI Concepts: MicroBlaze® Processor Streaming Ports
    Describes and illustrates how data streaming is performed using the MicroBlaze® processor.
  • AXI Concepts: AXI Streaming FIFO
    Introduces the AXI Streaming FIFO and its capabilities.
  • AXI Concepts: Connecting AXI IP
    Focuses on the relationships between different types of AXI interfaces and how they can be connected to form hierarchies.
  • AXI Concepts: DMA
    Introduces various IP that supports DMA and DMA-like functionality.
  • Zynq®-7000 Device PS-PL Interface
    Discusses the various connection points between the PS and PL.
  • PS Peripherals – High-Speed: USB
    Introduces the USB high-speed peripheral.
  • PS Peripherals – High-Speed: Gigabit Ethernet
    Introduces the Gigabit Ethernet high-speed peripheral.
  • PS Peripherals – Low-Speed: Overview
    Introduces the low-speed peripherals in the Zynq® All Programmable SoC.
  • PS Peripherals – Low-Speed: CAN
    Introduces the CAN low-speed peripheral.
  • PS Peripherals – Low-Speed: I2C
    Introduces the I2C low-speed peripheral.
  • PS Peripherals – Low-Speed: SD/SDIO
    Introduces the SD/SDIO low-speed peripheral.
  • PS Peripherals – Low-Speed: SPI
    Introduces the SPI low-speed peripheral.
  • PS Peripherals – Low-Speed: UART
    Introduces the UART low-speed peripheral.
  • Utility Logic
    Covers the IP that provides basic logic support within the block design.
  • Sharing PS Resources (Hardware Perspective)
    Illustrates from the hardware design perspective how a master in the PL can leverage resources within the PS.
  • Multi-Processor Hardware Architecture
    Addresses some of the mechanisms that a designer can leverage to support cross-processor communications.
  • Caching
    Introduces the concept of caching and describes how this technique is implemented using the Xilinx processor systems.
  • Processor Caching and SCLR
    Introduces the concepts behind processing caching and the System-Level Control Register.
  • Accelerator Coherency Port
    Describes the purpose and general behavior of the accelerator coherency port (ACP).
  • Booting: Flow
    Provides a low-level view of the booting process.
  • Booting: PL
    Introduces the concepts behind configuring the PL at boot.
  • Booting: Flash Image Generation
    Introduces the Flash Image Generator tool, which is used to collect up a variety of files and order them properly in the Flash so that the FSBL can correctly read them.
  • QEMU: Introduction
    Introduction to the Quick Emulator, which is the tool used to run software for the Zynq® device when hardware is not available.

Training Duration:

2 Days

Who should attend:

Hardware, firmware, and system design engineers who are interested in Xilinx embedded systems development flow.


  • Embedded Systems Design course or experience with embedded systems design and the Vivado Design Suite
  • Basic C programming
  • Working knowledge of the Zynq All Programmable SoC or MicroBlaze processor

Version: 2021-03-17_0932
Updated 12-18-2023
©2023 Advanced Micro Devices, Inc. Xilinx, Inc. is now part of AMD. Xilinx, the Xilinx logo, AMD, the AMD Arrow logo, Alveo, Artix, Kintex, Kria, Spartan, Versal, Vitis, Virtex, Vivado, Zynq, and other designated brands included herein are trademarks of Advanced Micro Devices, Inc.