目录
1. 简介
本文以官方 A to Z Bare-metal Flow 为基准,在 VD100 硬件平台上实现的例子。
博文包含如下内容:
- 申请 AIE License
- 创建 Vivado 可扩展平台(XSA)
- 创建 Vitis 平台(XPFM)
- 创建 AIE 应用
- 创建 HLS 应用
- 系统集成:VPP 链接 pl_app、aie_app
- 创建 ps_app 应用
- 系统集成:打包生成 sd_card.img
- 在 VD100 硬件平台上运行
- Vitis2024.2界面介绍
- aie Build report
- aie Run report
2. 申请 License
2.1 申请网址
2.2 填写 Host
2.3 导入 License
导入成功后:
PS,如果没有此 License,构建 AIE 应用时将失败:
AIEMLbuild feature license not found !
make[2]: *** [CMakeFiles/simple_aie_application_libadf.a.dir/build.make:80: libadf.a] Error 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/simple_aie_application_libadf.a.dir/all] Error 2
make[1]: Leaving directory '..../vd100_a2z/simple_aie_application/build/hw'
make: *** [Makefile:91: all] Error 2
[ERROR] simple_aie_application build failed.
3. 示例
3.1 vivado_platform
3.1.1 由模板创建
- Versal Extensible Embedded Platform:基于官方开发板构建示例工程
- Versal Extensible Embedded Platform (Part based):基于 Versal 芯片构建示例工程
点击 Next 选择工程路径和芯片型号。
3.1.2 模板参数
3.1.3 修改BD参数
- 修改参考时钟名称为:ddr_cref
- 修改参考时钟频率为:200 MHz
- 修改 DDR 接口名称为:DDR4
3.1.4 配置CIPS和MC
1)按照《Versal - 基础1(PL点灯+构建CIPS+VD100+查找资料和文档)》博文中,“3.2 CIPS system” 章节,进行 CIPS 和 AXI NoC 的配置:
2)如上述引用博文,同样参考进行 xdc 配置。
3)Validate Design,并忽略警告:
3.1.5 导出PFM
1)生成 PDI 后,选择导出 PFM:
2)平台类型:Hardware and hardware emulation
3)查看生成后的 PFM:
ll vd100_wrapper.xsa
---
-rw-rw-r-- 1 dd dd 28130725 2月 3 18:02 vd100_wrapper.xsa
3.2 vitis_platform
3.2.1 创建组件
1)打开 Vitis IDE,并选择一个工作区
2)File → New Component → Platform 或者 Create Platform Component:
3.2.2 导入XSA并配置
1)导入 XSA 文件。
2)选择操作系统和处理器:
- 操作系统:aie_runtime
- 处理器:ai_engine
3)点击完成,即可创建平台组件。
3.2.3 构建平台组件
完成上一步操作后,单击下面的 Build 即可构建对应的组件。
构建完毕后,可以在 Output 中查看生成的文件(xpfm)
3.3 aie_app
- 输出内容由 aiecompiler 工具执行
- 输出内容包含 Work 目录和 libadf.a 文件。
- libadf.a 文件包含编译的编译的 AI 引擎配置、Graph 和 Kernel.elf 文件。
3.3.1 从示例中创建
- Create AI Engine Component from Template
- Name: simple_aie_application
注意描述:
A simple 2-kernel graph with window based data communication. Note: This template works only for AIE Emulation and SW(x86) Emulation.
模板仅适用于 AI 引擎仿真和软件(x86)模拟。但后续也可硬件上实现它。
选择平台后,完成示例工程创建:
3.3.2 工程结构
创建成功后的 aie 工程结构:
- src 包含 kernels 和 graph
- data 包含模拟输入( input.txt )和输出参考( golden.txt )的数据