aie-codegen/
├── fal
│ ├── cmake
│ ├── CMakeLists.txt
│ ├── data
│ ├── doc
│ ├── examples
│ ├── README.md
│ └── src
├── license.txt
├── README.md
└── src
├── CMakeLists.txt
├── common
├── config.in
├── core
├── device
├── dma
├── events
├── global
├── interrupt
├── io_backend
├── locks
├── Makefile
├── Makefile.Linux
├── Makefile.rsc
├── memory
├── noc
├── npi
├── perfcnt
├── pl
├── pm
├── stream_switch
├── timer
├── trace
├── util
└── aie_codegen.hAIE Codegen for AIE2/AIE2P/AIE2PS/AIE4 generation devices
Functional abstraction layer
Clone the repository with all submodules:
git clone <repository-url>
cd aie-codegen
git submodule update --init --recursiveThis will download the main repository and initialize all required submodules, including the aie-regdb directory which contains essential register database files.
The Makefile.Linux provides multiple backend options for different use cases:
- Default build (no specific backend):
cd src
make -f Makefile.Linux- Control Code backend:
make -f Makefile.Linux controlcode- To build for specific AIE version:
make -f Makefile.Linux CFLAGS='-DXAIE_DEV_SINGLE_GEN=XAIE_DEV_GEN_AIE -DXAIE_FEATURE_PRIVILEGED_ENABLED -std=c99 '
make -f Makefile.Linux CFLAGS='-DXAIE_DEV_SINGLE_GEN=XAIE_DEV_GEN_AIEML -DXAIE_FEATURE_PRIVILEGED_ENABLED -std=c99 '
make -f Makefile.Linux CFLAGS='-DXAIE_DEV_SINGLE_GEN=XAIE_DEV_GEN_AIE2IPU -DXAIE_FEATURE_PRIVILEGED_ENABLED -std=c99 '
make -f Makefile.Linux CFLAGS='-DXAIE_DEV_SINGLE_GEN=XAIE_DEV_GEN_AIE2P -DXAIE_FEATURE_PRIVILEGED_ENABLED -std=c99 '
make -f Makefile.Linux CFLAGS='-DXAIE_DEV_SINGLE_GEN=XAIE_DEV_GEN_AIE2P_STRIX_A0 -DXAIE_FEATURE_PRIVILEGED_ENABLED -std=c99 '
make -f Makefile.Linux CFLAGS='-DXAIE_DEV_SINGLE_GEN=XAIE_DEV_GEN_AIE2P_STRIX_B0 -DXAIE_FEATURE_PRIVILEGED_ENABLED -std=c99 '
make -f Makefile.Linux CFLAGS='-DXAIE_DEV_SINGLE_GEN=XAIE_DEV_GEN_AIE2PS -DXAIE_FEATURE_PRIVILEGED_ENABLED -std=c99 '
make -f Makefile.Linux CFLAGS='-DXAIE_DEV_SINGLE_GEN=XAIE_DEV_GEN_AIE4_A -DXAIE_FEATURE_PRIVILEGED_ENABLED -std=c99 '
make -f Makefile.Linux CFLAGS='-DXAIE_DEV_SINGLE_GEN=XAIE_DEV_GEN_AIE4_GENERIC -DXAIE_FEATURE_PRIVILEGED_ENABLED -std=c99 '
make -f Makefile.Linux CFLAGS='-DXAIE_DEV_SINGLE_GEN=XAIE_DEV_GEN_AIE4 -DXAIE_FEATURE_PRIVILEGED_ENABLED -std=c99 'make -f Makefile.Linux cleanCMake provides a more modern cross-platform build system with installation support:
- Create a build directory:
mkdir -p build
cd build- Configure the project:
cmake ../src/- Build the library:
makeThe build will produce libaie_codegen.so (shared library by default) in the build/ directory.
-
Shared vs Static Library: Set
AIE_CODEGEN_BUILD_SHAREDtoON(default) for shared library orOFFfor static library:cmake -DAIE_CODEGEN_BUILD_SHARED=OFF ../src/
-
Socket Backend: Enable socket backend support:
cmake -DSOCKET_BACKEND=ON ../src/
-
Debug Backend: Enable debug backend support:
cmake -DDEBUG_BACKEND=ON ../src/
| Feature | CMake | Makefile.Linux |
|---|---|---|
| Backend Support | Control Code only (default) | 5+ backends |
| Library Type | Shared or Static | Shared only |
| Platform Support | Linux, Windows | Linux only |
| Installation | Yes (system-wide) | No |
| SWIG Support | No | Yes |