Embedded Systems

Advanced Systems Software Design

Course Description

Software design engineers will learn how to make full use of the components available in the Zynq® System on a Chip (SoC) processing system (PS).

The course provides experience with:
 Implementing an effective Zynq SoC boot design methodology
 Creating an FSBL image for flash
 Utilizing advanced Cortex™-A9 processor services
 Analyzing the DMA controller in the Zynq SoC
 Examining the various library services for peripherals such as Ethernet and USB controllers



Upcoming Program

xilinx ATP 黑.png

TechSource Systems is the Sole Distributor and Authorised Training Partner of Mathworks Products


2 Days

Who Should Attend

Software design engineers interested in fully utilizing the Zynq extensible processing platform

Course Prerequisites

  • Embedded Systems Software Design or equivalent knowledge

  • C or C++ programming experience

  • Conceptual understanding of embedded processing systems, including device drivers, interrupt routines, Xilinx Standalone library services, user applications, and boot loader operation 

  • Experience developing software for embedded processor applications

Software Tools

  • Vivado® Design or System Edition 2017.3


  • Architecture: Zynq-7000 All Programmable SoC*

  • Demo board: Zynq-7000 All Programmable SoC ZC702 or ZedBoard*

Skills Gained

After completing this training, you will know how to:

  • Implement an effective Zynq All Programmable SoC boot design methodology

  • Create an appropriate FSBL image for flash 

  • Identify advanced Cortex™-A9 processor services for fully utilizing the capabilities of the Zynq All Programmable SoC

  • Analyze the operation and capabilities of the DMA controller in the Zynq All Programmable SoC

  • Examine the various Standalone library services and performance capabilities of the Ethernet and USB controllers in the Zynq All Programmable SoC

  • Describe the Standalone library services available for low-speed peripherals that are contained in the Zynq All Programmable SoC PS

Course Outline

  • ​Booting: Overview {Lecture, Lab}

  • Booting: Boot Memory Technologies {Lecture}

  • Booting: Flow {Lecture}

  • Booting: PS Processors {Lecture, Lab}

  • Booting: PL {Lecture, Lab}

  • Booting: Secure Boot {Lecture}

  • Booting: FSBL {Lecture, Demo}

  • General Interrupt Controller {Lecture}

  • Processor Caching and SCLR {Lecture}

  • NEON Co-Processing {Lecture}

  • DMA: Introduction and Features {Lecture}

  • DMA: Block Design and Interrupts {Lecture}

  • DMA: Read and Write {Lecture, Lab}

  • High-Speed Peripherals: Gigabit Ethernet {Lecture, Lab}

  • High-Speed Peripherals: USB {Lecture}

  • Low-Speed Peripherals: Overview {Lecture, Lab}

  • Low-Speed Peripherals: UART {Lecture, Demo}

  • Low Speed Peripherals: CAN {Lecture, Demo}

  • Low-Speed Peripherals: I2C {Lecture}

  • Low-Speed Peripherals: SPI {Lecture}

  • Low-Speed Peripherals: SD/SDIO {Lecture}

Topic Descriptions


  • Booting: Overview – Introduces the main points to how booting a processor is handled in Zynq All Programmable devices and MicroBlaze processors.

  • Booting: Boot Memory Technologies – introduces the main points of the memories that can be booted or executed from.

  • Booting: Flow – Provides a low-level view of the booting process.

  • Booting: PS Processors – Introduces the concepts behind a single-core boot, a dual-core boot, and symmetric or asymmetric processing.

  • Booting: PL – Introduces the concepts behind configuring the PL at boot.

  • Booting: Secure Boot – Introduces the concepts behind secure booting.

  • Booting: FSBL – Introduces the First Stage Boot Loader (FSBL).

  • General Interrupt Controller – Introduces the general interrupt controller (GIC), its features, and some examples of its use.

  • Processor Caching and SCLR – Introduces the concepts behind processing caching and the System-Level Control Register.

  • NEON Co-Processing – Introduces the concepts behind the NEON co-processor.

  • DMA: Introduction and Features – Introduces the direct memory access controller.

  • DMA: Block Design and Interrupts – Introduces the DMA block design and the DMA interrupts.

  • DMA: Read and Write – Introduces the concepts behind DMA reading and writing.

  • High-Speed Peripherals: Gigabit Ethernet – Introduces the Gigabit Ethernet high-speed peripheral.

  • High-Speed Peripherals: USB – Introduces the USB high-speed peripheral.

  • Low-Speed Peripherals: Overview – Introduces the low-speed peripherals in the Zynq All Programmable SoC.

  • Low-Speed Peripherals: UART – Introduces the UART low-speed peripheral.

  • Low Speed Peripherals: CAN – Introduces the CAN low-speed peripheral.

  • Low-Speed Peripherals: I2C – Introduces the I2C low-speed peripheral.

  • Low-Speed Peripherals: SPI – Introduces the SPI low-speed peripheral.

  • Low-Speed Peripherals: SD/SDIO – Introduces the SD/SDIO low-speed peripheral.