Advanced Features and Techniques of Embedded Systems Design
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.
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
- 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.
- 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.
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.
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