This chapter is intended for Embedded System Designers who are developing systems using heterogeneous compute elements supported by Vitis tools. The chapter introduces key concepts for understanding and using Vitis tools for embedded system design. The elements of the embedded system can include Vivado exported hardware designs, Vitis extensible platforms, Arm processor applications, PL kernels, and AI Engine graph applications. Refer to Terminology for Embedded System Design for definitions of these terms.
As shown in the figure below, Vitis tools support two different embedded design flows.
The traditional embedded software development flow relies on a fixed hardware design, processor domains and OS, boot files, software drivers, and Arm processor based software applications. This traditional design flow is described briefly in Fixed Platforms versus Extensible Platforms, and is documented with more detail in the Vitis Embedded Software Development User Guide (UG1400). Refer to that document for more information on the traditional embedded software flow.
- Hardware design and custom platform development
- Embedded processor software design
- Programmable-logic (PL) kernel design
- Versal AI Engine graph design
The tools and techniques for creating and integrating these different components are the focus of the following sections, beginning with some terminology for a common understanding.