Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

AMD logo

AMD Vitis™ System Design Tutorials

See Vitis™ Development Environment on amd.com

Vitis Functional Simulation

Version: Vitis 2026.1

Table of Contents

  1. Introduction
  2. Setup Instructions
  3. Available Examples

Support

Introduction

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.

VFS Introduction

Varray

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.

Varray Introduction

For more information on Vitis Functional Simulation and Vitis array, refer to Chapter 6 of Embedded Design Development Using Vitis User Guide (UG1701).

Setup Instructions

Source the appropriate settings file:

[shell]% source <vitis_install_folder>/settings64.sh

Python

Launch Python (supports 3.9 to 3.14). The following modules are required:

  • numpy
  • scipy
  • matplotlib

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 matplotlib

Then in your Python script:

import vfs
import varray as va

DSPLIB_ROOT (for DSP Library examples)

Some 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

MATLAB

Launch MATLAB (supports 2025a, 2025b and 2026a).

Available Examples

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.

Support

GitHub issues are used for tracking requests and bugs. For questions, go to Support.


Copyright © 2026 Advanced Micro Devices, Inc.

Terms and Conditions