Revision History - 2024.2 English - XD100

Vitis Tutorials: AI Engine Development (XD100)

Document ID
XD100
Release Date
2024-12-06
Version
2024.2 English

Click on each item below to see the detailed Revision History:

November 2024
  • Upgrading to 2024.2

April 2024
  • Upgrading to 2024.1

September 2023
  • Upgrading to 2023.2

  • Integrating VEK280/VEK280_es1 option

May 2023
  • AI Engine:

    • Replaced kernels and graphs to use AIE API and C++ Object Oriented Style with templates

  • HLS:

    • Replaced qdma_axis type with ap_axis type

February 2023
  • general:

    • Changing dir structure for the upcoming baremetal ps_apps and vitis export flow

December 2022
  • general:

    • Adding the option to use the xpfm and/or linux pre-builds

June 2022
  • general:

    • Updated tutoral to 2022.2

April 2022
  • platform/hw:

    • Added lpddr4 to the base platform

  • general:

    • Updated tutoral to 2022.1

March 2022
  • platform/hw:

    • Removed some ip and connections to end-up with the bare minimum base platform needed

      • Vitis nicely adds and changes IP and connections as required

    • Exposed 1 extra clock via BUFG (clk_out2) next to the 4 exisiting clocks via MBUFGCE (clk_out1_o1-4)

      • id=0 -> clk_out1_o1 -> 500MHz

      • id=1 -> clk_out1_o2 -> 250MHz

      • id=2 -> clk_out1_o3 -> 125MHz

      • id=3 -> clk_out1_o4 -> 62.5MHz

      • id=4 -> clk_out2 -> 333MHz

  • linux:

    • Added Yocto as alternative Linux build tool option with:

      • [project-root]/Makefile - export LINUX_BUILD_TOOL := yocto

      • [project-root]/Makefile - export LINUX_YOCTO_ROOT := ${HOME}/bin

      • Added [project-root]/linux/yocto

    • Petalinux and/or Yocto TMP_DIR is now set and can be changed with export LINUX_TMP_DIR := /tmp/linux/${LINUX_BUILD_TOOL}

    • Moved [project-root]/petalinux to [project-root]/linux/petalinux

    • Moved [project-root]/petalinux/src/boot_custom.bif to [project-root]/linux/src/boot_custom.bif

    • Moved [project-root]/petalinux/src/device-tree to [project-root]/linux/src/recipes-bsp/device-tree

    • Moved [project-root]/petalinux/init-ifupdown to [project-root]/linux/src/recipes-bsp/init-ifupdown

    • Linux build for export LINUX_BUILD_TOOL := petalinux ends up in [project-root]/linux/${BOARD_NAME}-versal

    • Linux build for export LINUX_BUILD_TOOL := yocto ends up in [project-root]/linux/${BOARD_NAME}-versal and [project-root]/linux/${BOARD_NAME}-versal-meta

    • Sysroot build for export LINUX_BUILD_TOOL := petalinux and export LINUX_BUILD_TOOL := yocto ends up in [project-root]/linux/sysroot

    • Updated [project-root]/linux/src/device-tree/files/system-user.dtsi for proper Ethernet PHY configuration

    • Added support for offline petalinux-build (Excluding sysroot build!) with:

      • export LINUX_BUILD_SOURCES := local

      • export LINUX_LOCAL_DOWNLOADS_DIR := /tmp/plnx-workspace/downloads

      • export LINUX_LOCAL_SSTATE_DIR := /tmp/plnx-workspace/sstate_aarch64_2022.1/aarch64

  • platform/sw

    • Updated [project-root]/platform/sw/src/qemu/lnx/qemu_args.txt for adding Ethernet connectivity support (ssh/scp/…) for hardware emulation export TARGET := hw_emu

    • Removed linux generated images dependencies; since NOT required

  • bif:

    • Added [project-root]/linux/${BOARD_NAME}-versal/images/linux/Image and [project-root]/linux/${BOARD_NAME}-versal/images/linux/rootfs.cpio.gz.u-boot copy to the software platform to keep proper naming when export LINUX_BUILD_TOOL := yocto

    • Added some dependencies so its only executed when needed

  • ip:

    • Added vadd streaming kernels: mm2s_vadd_s -> vadd_s -> s2mm_vadd_s

    • Renamed vadd to vadd_mm (vadd memory mapped kernel)

    • Removed dependency on ${TARGET}; since NOT required

  • ps_apps:

    • Added vadd_s to check the vadd_s streaming kernels

    • Renamed vadd_cpp to vadd_mm_cpp to check the vadd memory mapped kernel

    • Renamed vadd_ocl to vadd_mm_ocl to check the vadd memory mapped kernel

    • Using explicit “kernel:{kernel_id}” for kernel selection

    • Streamline print out messages

    • Added dependencies on ${SYSROOT} and on ALL source files from ./src/*

  • vitis:

    • counter and subtractor kernels running @ 500MHz (id=0 -> clk_out1_o1)

    • vadd_mm (vadd memory mapped kernel) running @ 250MHz (id=1 -> clk_out1_o2)

    • mm2s_vadd_s -> vadd_s -> s2mm_vadd_s (vadd_s streaming kernels) running @ 333MHz (id=4 -> clk_out2)

    • Disable ILA when building vitis with export TARGET := hw_emu

    • Added ${SYSTEM_CFG} as dependency for the Vitis Linker

    • Added ${GRAPH_O} as dependency for the vitis linker, since you need to perform extra steps to be able to remove this dependency

    • Added ${LINUX_IMAGE} and ${LINUX_ROOTFS} as dependencies for the vitis packager; and those are now taken from the software platform

  • general:

    • Improved dependencies in almost all Makefiles to ONLY rebuild what is needed to be rebuild after a modification

    • Added following [project-root]/Makefile commands:

      • make clean_vitis to clean everything (ip, ps_apps, vitis) after the (fixed) platform for the specified TARGET.

      • make all_targets to build everything for ALL TARGETS.

      • make ultraclean to clean everything for ALL TARGETS.

      • make ultraclean_vitis to clean everything (ip, ps_apps, vitis) after the (fixed) platform for ALL TARGETS.

    • [project-root]/README.md updated with all new features

      • make all to build everything for the specified TARGET.

      • make clean to clean everything for the specified TARGET.

February 2022
  • petalinux:

    • Added the option LINUX_ETH_CONFIG to setup static Ethernet Configuration

  • ip:

    • Bugfix for the v++ linker to fail in TARGET=hw_emu when other HLS-kernels (like mm2s) are added later on to the design

  • general:

    • Adding the option to build for TARGET=hw_emu

October 2021
  • petalinux:

    • Improved petalinux version check

  • ip/aie:

    • Optimized AI Engine Datamovers

  • general:

    • Added more clarifications in the README.md

September 2021 - Initial Release

Copyright © 2020–2022 Xilinx, Inc

Copyright © 2022–2024 Advanced Micro Devices, Inc

Terms and Conditions