Training Duration: 4 sessions (6 hours per session)
PLEASE NOTE: This is a LIVE INSTRUCTOR-LED training event delivered ONLINE.
It covers the same scope and content as a scheduled in-person class and delivers comparable learning outcomes.
This course brings experienced FPGA designers up to speed on developing embedded systems for the Zynq™ System on Chip (SoC), or Zynq Ultrascale+™ MPSoC and adding and simulating AXI-based peripherals using bus functional model (BFM) simulation. In addition, this course introduces the concepts, tools, and techniques required for software design and development for the Zynq System on a Chip (SoC) using the AMD Software Development Kit (SDK).
This course uses materials developed by AMD and conveniently combines the courses:
Software and hardware design engineers who are interested in developing embedded systems with the Zynq System on Chip (SoC), or Zynq Ultrascale+ MPSoC and debugging using the AMD Standalone library.
- FPGA design experience
- Completion of Vivado FPGA Design Essentials training or equivalent knowledge of Vivado™ software tools
- Basic understanding of C or C++ programming (including general debugging techniques)
- Some HDL modelling experience
- Conceptual understanding of embedded processing systems including device drivers, interrupt routines writing / modifying scripts, user applications and boot loader operation
- Vivado™ Design or System Edition
- Architecture: Zynq-7000 SoC (Arm® Cortex®-A9), Zynq Ultrascale+ MPSoC (Cortex-A53 and Cortex-R5 processors)
* This course focuses on the Zynq SoC and 7 Series FPGA architectures. Please contact Doulos for the specifics of the in-class lab board, other customizations or architecture.
After completing this training, you will be able to:
- Describe the various tools that encompass an AMD embedded design
- Rapidly architect an embedded system containing an Arm Cortex-A9/A53/R5 processor by using the Vivado IP Integrator and Configuration Wizard
- Develop software applications using the Eclipse-based Software Development Kit (SDK)
- Create and integrate an IP-based processing system component in the Vivado Design Suite
- Design and add a custom AXI interface-based peripheral to the embedded processing system
- Simulate a custom AXI interface-based peripheral using verification IP (VIP)
- Implement an effective software design environment for an AMD embedded system using the AMD SDK tools
- Write a basic user application (under Standalone or Linux) using the AMD Software Development Kit (SDK)
- Use Xilinx debugger tools to troubleshoot user applications
- Apply software techniques to improve operability
- Maintain and update software projects with changing hardware
- Embedded UltraFast Design Methodology {Lecture, Demo} Outlines the different elements that comprise the Embedded Design Methodology
- Overview of Embedded Hardware Development {Lecture, Demo} Overview of the embedded hardware development flow
- Driving the IP Integrator Tool {Lecture, HW Lab 1} Describes how to access and effectively use the IPI tool
- AXI: Introduction {Lecture} Introduces the AXI protocol
- AXI: Variations {Lecture} Describes the differences and similarities among the three primary AXI variations.
- AXI: Transactions {Lecture, Demo} Describes different types of AXI transactions
- Introduction to Interrupts {Lecture} Introduces the concept of interrupts, basic terminology, and generic implementation
- Interrupts: Hardware Architecture and Support {Lecture} Reviews the hardware that is typically available to help implement and manage interrupts
- AXI: Connecting AXI IP {Lecture, Demo} Describes the relationships between different types of AXI interfaces and how they can be connected to form hierarchies
- Creating a New AXI IP with the Wizard {Lecture, HW Lab 4} Explains how to use the Create and Import Wizard to create and package an AXI IP
- AXI: BFM Simulation Using Verification IP (Lecture, HW Lab 5} Describes how to perform BFM simulation using the Verification IP
- Zynq-7000 SoC Architecture Overview {Lecture, HW Lab 7, Demo} Overview of the Zynq-7000 SoC architecture
- Zynq UltraScale+ MPSoC Architecture Overview {Lecture, Lab, Demo} Overview of the Zynq UltraScale+ MPSoC architecture
- Overview of Embedded Software Development {Lecture} Overview of the process for building a user application
- Embedded UltraFast Design Methodology {Lecture, Demo} Outlines the different elements that comprise the Embedded Design Methodology
- Zynq-7000 SoC Architecture Overview {Lecture, Lab, Demo} Overview of the Zynq-7000 SoC architecture.
- Zynq UltraScale+ MPSoC Architecture Overview {Lecture, Demo} Overview of the Zynq UltraScale+™ MPSoC architecture
- Driving the SDK Tool {Lecture, SW Lab4} Introduces the basic behaviors required to drive the SDK tool to generate a C/C++ application that can be debugged
- System Debugger {Lecture, Demo} Describes the basics of running a debugger and illustrates the most commonly used debugging commands.
- Standalone Software Platform Development {Lecture, Lab 6} Covers the various software components, or layers, supplied by AMD that aid in the creation of low-level software
- C Coding Support for Standalone {Lecture} Reviews the basic services (libraries) available when coding in the Standalone environment
- Memory File System (Standalone) {Lecture, Lab 7} Introduces the memory file system (MFS) from the Standalone library, which provides drivers and utilities for effectively converting a region of memory into a file system
- Using Linker Scripts {Lecture, Lab 8} Provides and overview and typical use of a linker script
- Introduction to Interrupts {Lecture, Lab 9} Introduces the concept of interrupts, basic terminology, and generic implementation
- Operating System: Introduction & Concepts {Lecture} Introduces the concept of the operating system and provides a simplified view into the generic way that operating systems work
- Linux Software Application Development {Lecture, Lab 10} Introduces the Linux operating system, a brief history and how to use it
- Writing Code in the AMD Linux Environment {Lecture, Demo} Reviews the use of the AMD SDK tool for Linux software development
- Booting Overview {Lecture, SW Lab 11} Describes the main points to how booting a processor is handled for Zynq SoC devices
- Profiling Overview {Lecture, Demo} – Introduces the purpose and techniques for profiling a user application
- Understanding Device Drivers {Lecture, Demo} Explains the concept of a device driver and how it is used by embedded systems
- Custom Device Drivers {Lecture, SW Lab 13} Describes how to successfully write a custom device driver