Outputs - 2022.1 English

Versal ACAP AI Engine Programming Environment User Guide (UG1076)

Document ID
UG1076
Release Date
2022-05-25
Version
2022.1 English

By default the AI Engine compiler writes all outputs to a directory called Work and a file libadf.a, where Work is a sub-directory of the current directory where the tool was launched and libadf.a is a file used as an input for the Vitis compiler created in the same directory as the AI Engine compiler was launched from. The type of output and contents of the output directory depend on the --target specified, as described in AI Engine Compiler Options. For more information about the Vitis compiler, see Vitis Compiler Command in the Vitis Unified Software Platform Documentation: Application Acceleration Development (UG1393).

Tip: You can specify a different output directory using the --workdir option.

The structure and contents of the ./Work directory are described in the following table.

Table 1. Work Directory Structure
Directory/Files Description
./Work/  
  <name>.aiecompile_summary A generated file that can be opened in Vitis Analyzer to see a compilation summary.
  config/scsim_config.json A JSON script that specifies options to the SystemC simulator. It includes AI Engine array tile geometry, input/output file specifications, and their connections to the stream switches.
  arch/  
  logical_arch_aie.larch This is a JSON file describing the hardware requirements of the AI Engine application.
  aieshim_constraints.json If present, this JSON file represents the user-defined physical interface constraints between AI Engine array and programmable logic provided through the AI Engine application.
  aieshim_solution.aiesol This is a JSON file describing the mapping from logical to physical channels crossing the interface between the AI Engine array and the programmable logic.
  cfgraph.xml This is an XML file describing the hardware requirements of the AI Engine application. This is used by the Vitis tools flow.
  aie/  
  Makefile A Makefile to compile code for all AI Engines.
  array and programmable<n>_<m>/ These are individual AI Engine compilation directories.
  Release/ Synopsys release directory for the AI Engine including ELF file.
  <n>_<m>.lst Microcode of the kernel at <n>_<m>.
  <n>_<m>.map Shows the memory mapping of the kernel at <n>_<m>. It also includes the memory size, width, and offset.
  scripts/ Synopsys compiler project and linker scripts.
  src/ Source files for the processor including kernels and main.
  ps/c_rts/ Directory containing C-based run-time control for modeling PS interaction.
aie_control.cpp This is the AI Engine control code generated implementing the init, run, end graph APIs for the specific graph objects present in the program. This file is linked with the application main to create a PS thread for the simulator and bare metal.
  aie_control_xrt.cpp This is the AI Engine control code generated implementing the init, run, end graph APIs for the specific graph objects present in the program. This file is linked with the application main to create a PS thread for the Linux application.
  systemC/ Directory containing SystemC models for PS main.
  Makefile A Makefile to compile all PS SystemC models.
  generated-source/ SystemC wrappers for PS main.
  generated-objects/ Compiled shared libraries for PS main.
  ps/cdo/ Directory containing generator code for graph configuration and initialization in configuration data object (CDO) format. This is used during SystemC-RTL simulation and during actual hardware execution.
Makefile A Makefile to compile graph CDO
  generateAIEConfig A bash script for building graph CDO
  generated-sources/ C++ program to generate CDO.
  generated-objects/ Compiled program to generate CDO.
  pthread/  
  PthreadSim.c A source-to-source translation of the input data flow graph into a C program implemented using pthreads.
  sim.out The GCC compiled binary for PthreadSim.c.
  reports/  
  <graph>_mapping_analysis_report.txt Mapping report describing allocation of kernels to AI Engines and window buffers to AI Engine memory groups.
  <graph>.png A bitmap file showing the kernel graph connectivity and partitioning over AI Engines.
  <graph>.xpe An XML file describing the estimated power profile of the graph based on hardware resources used. This file is used with the Xilinx® Power Estimator (XPE) tool.
  sync_buffer_address.json Shows kernel sync buffer addresses with local and global addresses.
  lock_allocation_report.json Describes the ports and what locks and buffers are associated with the kernels.
  dma_lock_report.json Shows DMA locks for inputs/outputs to the AI Engine as well as the kernel(s) they connect to with buffer information.
  temp/ This directory contains some temporary files generated by the AI Engine compiler that can be useful in debugging. In addition, the CF graph .o file is also created here by default.