See Vitis™ AI Development Environment on amd.com |
Version: Vitis 2025.2
This tutorial targets AIE-ML device, but shares test cases and description files with AIE 20-aiecompiler-features.
IMPORTANT: Before beginning the tutorial make sure you have installed the AMD Vitis™ 2025.2 software. The Vitis release includes all the embedded base platforms including the VEK280 base platform that this tutorial uses.
Set up your PLATFORM_REPO_PATHS environment variable to $XILINX_VITIS/base_platforms.
This tutorial targets VEK280 board.
After completing this tutorial, you can do the following:
- Work with multirate design that the compiler to handle frame length mismatch between consecutive kernels in a kernel chain.
- Send output data to different other kernels for stream-based and buffer-based I/O.
- Conditionally instantiate graph objects.
The basis of this tutorial is on simple data passthrough to avoid another level of complexity.
This tutorial contains 3 different sections that are independant one from each other.
Follow instructions in AIE Compiler Features. But, run all make commands with ARCH=aie-ml.
The following examples illustrate various ways to generate conditional objects at the graph level. All examples are available in different source directories: src1 to src4. They can be compiled using: make CASE=N clean data aie aieviz with N= 1,2,3,4. Type make help to get the list of all available examples.
You can compile all these examples for the AI Engine ML architecture by including ARCH=aie-ml in the make command.
To get the visualization type:
make ARCH=aie-ml CASE=1 clean data aie aieviz
To get the visualization type:
make ARCH=aie-ml CASE=2 aie aieviz
To get the visualization type:
make ARCH=aie-ml CASE=3 aie aieviz
To get the visualization type:
make ARCH=aie-ml CASE=4 aie aieviz
make VERSION=1 ARCH=aie-ml buffer aieYou can run the simulation and visualize the result:
make aiesim aievizIn this design the first kernel in the dataflow is the down-converter 5/7 followed by the up-converter.
make ARCH=aie-ml VERSION=2 clean buffer aie aiesim aievizTwo branches share the same PLIO. Their outputs connect to a kernel that computes the difference between the branches.
make ARCH=aie-ml VERSION=3 clean buffer aieLet run the simulation and visualize:
make aiesim aievizmake ARCH=aie-ml VERSION=1 clean stream aie aiesim aievizIn this configuration, the repetition rates are five (UpConv) and seven (DownConv). The simulation duration is slightly less 40 µs.
make ARCH=aie-ml VERSION=2 clean stream aie aiesim aievizIn this configuration, the repetition rates are seven (DownConv) and five (UpConv). The simulation duration is slightly more than 40 µs.
Two branches share the same PLIO. Their outputs connect to a kernel that computes the difference between the branches.
VERSION=3 of this design stalls almost immediately because this design needs FIFOs set up at the input and output of each branch.
VERSION=4 sets these FIFOs and the overall simulation lasts approximately 275 µs.
To explore the graph view and the array view shown by Vitis Analyzer:
make ARCH=aie-ml CASE=1 clean data aie aieviz
Explore the graph view and the array view shown by the AMD Vitis™ Analyzer:
make ARCH=aie-ml CASE=2 clean data aie aieviz
Copyright © 2020–2025 Advanced Micro Devices, Inc.