|
Version: Vitis 2026.1
Vitis Functional Simulation (VFS) allows you to functionally simulate AI Engine graphs and/or HLS kernels in both MATLAB® and Python™ environments on Linux. It presents simple APIs to compile and simulate your design. VFS is designed to be easy to use and provides a familiar environment for users who are already accustomed to using MATLAB or Python.
Vitis Functional Simulation (VFS) leverages "varray" (Vitis array), a module supporting all the data types available in AMD devices in both MATLAB and Python environments and allowing conversion and casting between the types.
For more information on Vitis Functional Simulation and Vitis array, refer to Chapter 6 of Embedded Design Development Using Vitis User Guide (UG1701).
Source the appropriate settings file:
[shell]% source <vitis_install_folder>/settings64.sh
Launch Python (supports 3.9 to 3.14). The following modules are required:
numpyscipymatplotlib
To set up a virtual environment with all dependencies:
python3 -m venv my-venv
source my-venv/bin/activate
pip install --upgrade pip
pip install numpy scipy matplotlibThen in your Python script:
import vfs
import varray as vaSome AIE examples (aie/firComplex, aie/FIRasyncRTP) use the Vitis DSP Library. Set the DSPLIB_ROOT environment variable to point to the DSP library root:
# Clone the library if you don't have it:
git clone https://github.com/Xilinx/Vitis_Libraries.git
export DSPLIB_ROOT=<path_to_Vitis_Libraries>/dsp
Launch MATLAB (supports 2025a, 2025b and 2026a).
This directory contains simple AI Engine Graphs and HLS kernels to show how to get started with VFS, as well as a more representative system example.
| Example | Description |
|---|---|
varray |
Showcasing basic varray operations |
aie/GraphMultiplyByComplex |
Simple design showcasing the basic structure of a VFS code |
aie/bfloat16 |
Demonstrates partial data being passed to the AIE graph |
aie/FIRasyncRTP |
Instantiation of a symmetric FIR filter with async RTP port from Vitis_Libraries |
aie/firComplex |
Complex-data FIR filter using Vitis DSP Library with scipy validation |
aie/multiplyWithPreproc |
Demonstrates passing preprocessor definitions (Xpreproc) to AIE compilation |
aie/gmio |
Simple weighted-sum design that leverages GMIO |
hls/SumOfFour |
Simple design showcasing the basic structure of a VFS code |
hls/array_pointer_data_type |
Demonstrates a kernel with array and pointer inputs |
hls/arrayOfHlsStreams |
Demonstrates using an HLS kernel where the ports are arrays of streams |
hls/kernel_invert |
Demonstrates usage of the fixed-point varray data type |
hls/complexArguments |
HLS kernel with complex data types (cuint32, cfloat) |
hls/apfixArgument |
HLS kernel demonstrating ap_fixed / ap_ufixed fixed-point data types |
hls/apintArguments |
HLS kernel using ap_int / ap_uint with stream interfaces |
hls/floatArguments |
HLS kernel with float and double stream interfaces |
aie_hls/64kifft |
64k-point IFFT implemented using a 2D breakdown containing resources in both AI Engine and PL. Also includes a Jupyter notebook version. Link to original design. |
GitHub issues are used for tracking requests and bugs. For questions, go to Support.
Copyright © 2026 Advanced Micro Devices, Inc.

