Vitis Functional Simulation Overview - 2025.2 English - UG1701

Embedded Design Development Using Vitis User Guide (UG1701)

Document ID
UG1701
Release Date
2025-11-20
Version
2025.2 English

In AMD Vitis™ tools, there have traditionally been two options for functional simulation of subsystems. The first is Vitis Model Composer, which enables simulation of subsystems comprising of AIE engines and programmable logic (PL) within the Simulink graphical environment. The second is a command-line interface (CLI) approach, which involves manually providing data files for each simulation run to model the subsystem.

Vitis Functional Simulation (VFS) introduces an alternative by supporting simulation management of the design under test (DUT) in both MATLAB and Python—two widely used, high-level, text-based environments.

Supported Versions and Setup

VFS is supported with the following tools:

  • Python versions 3.9, 3.10, 3.11, 3.12, and 3.13
  • MATLAB R2024a, R2024b, R2025a, and R2025b.

VFS is automatically set up when running the script as described in Setting Up the Vitis Environment. To use in Python, add VFS and VARRAY as a libraries with:

import vfs
import varray

VFS is designed to manage AI Engine graphs and HLS kernels as simulation objects. These objects are instantiated in a test bench and simulated by running the instance with the provided input data. The simulations of the AI Engine and HLS kernels are bit-accurate but not cycle-accurate, as they aim to demonstrate functionality. The methods for instantiation are in the VFS Objects section.

Note: Currently, there are limitations on HLS kernels that can get simulated in VFS. These limitations apply to kernels using tasks, return non void value, or use non-blocking read or writes.

A test bench can include multiple simulation objects, allowing both block-level and subsystem-level functional verification.

To simplify data management for the simulation objects, VFS uses the VARRAY library. The library provides data constructs for handling and converting stimuli data created in the test bench to and from the simulation object. The VARRAY Supported Data Types section describes the types and syntax used for AI Engine and HLS simulation object input and output data structures.

See the following Vitis tutorials using this feature.