0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

基于Vitis Model Composer完成全流程AI Engine开发

安富利 来源:安富利 2025-12-31 11:20 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

基于Vitis Model Composer进行AI Engine(AIE)开发,核心优势体现在AIE专属优化、开发流程简化、灵活的适配性、高效验证及量产适配等方面,具体如下:

专属优化的AI Engine库,降低基础开发成本:提供AIE专用DSPLib库,包含FFT、FIR等预制模块,适配AIE架构且同步开源生态,无需重复开发基础算法

灵活的AIE代码导入方式,适配多样开发需求:支持AIE Kernel、Class Kernel、Graph三种导入形式,兼容缓冲区/流数据访问,适配不同开发场景。

简化的AIE专属开发流程,提升开发效率:Simulink环境中直观搭建设计,支持中间信号查看与调试,降低开发门槛。

自动化代码生成,简化编程流程:一键生成ADF graph、Makefile、Testbench等代码,无需手动适配底层架构。

适配动态场景,配置高度灵活:支持Variable-sized Signals,可建模动态数据处理,支持自定义约束,灵活调整性能。

精准的AIE仿真与调试,保障设计正确性:支持功能与高精度仿真,快速验证设计正确性,确保算法与硬件特性匹配。

82f0177a-e55f-11f0-8c8f-92fbcf53809c.png

01环境准备

Ubuntu 22.04

Vitis 2025.1(必须是选择Vitis完整安装流程,不能是Vivado ML Enterprise安装)

Vitis Model Composer

MATLAB R2024b

02获取Vitis_Libraries

gitclonehttps://gitee.com/light007/Vitis_Libraries.git

03下载依赖文件

gitclonehttps://gitee.com/qinzhusheng/vmc_duc.git

04启动Model Composer

#!/bin/bash
# 设置 Vitis 环境
source/tools/Xilinx//2025.1/Vitis/settings64.sh


# 设置 Model Composer 环境
source/tools/Xilinx/2025.1/Model_Composer/settings64.sh


# 设置 MATLAB 路径
exportPATH=$PATH:/tools/MATLAB/R2024b/bin


# 启动 Model Composer
model_composer

上述的路径需要修改为实际运行环境的安装路径。

05Simulink中创建空白模型

5.1在MATLAB Command Window输入以下命令切换到工作目录,$WORK_PATH需替换为实际目录。

cd/$WORK_PATH/vmc_duc/lab

5.2在MATLAB Command Window输入以下命令创建并打开空白模型。

new_system('duc_chain')
open_system('duc_chain')

按Ctrl+S保存到/$WORK_PATH/vmc/lab目录内。

8354bcde-e55f-11f0-8c8f-92fbcf53809c.png

06添加模型初始化函数

6.1回到duc_chain.slx,右键空白处,选择Model Properties,点击Callbacks窗口,点击InitFcn,在右侧的框口中输入下面的脚本:

PreprocIn0data= dataPreProc('data/input_sig_i0.txt');
PreprocIn1data= dataPreProc('data/input_sig_i1.txt');
PreprocOutdata= dataPreProc('data/output_adder.txt');

83aec5da-e55f-11f0-8c8f-92fbcf53809c.png

6.2点击OK完成设置。

这些模型初始化函数在设计更新或模拟运行时会自动调用dataPreProc.m filter配置脚本。

该filter配置脚本会设置以下内容:

Input 0模块的输入数据变量PreprocIn0data

Input 1模块的输入数据变量PreprocIn1data

Golden_Adder 模块的输出数据变量PreprocOutdata

07查看AI Engine library

按Ctrl+Shift+L打开Library Browser,展开AMD Toolbox,可看到AI Engine的模型library。

840cd4ea-e55f-11f0-8c8f-92fbcf53809c.png

AI Engine library包含:

用于导入Versal AI Engine使用的kernels和graphs

与FIRs、FFTs、Mixers和直接数字合成器相关的AI Engine DSP模块

08添加FIR Resampler Filter

8.1依次展开AMD Toolbox>AI Engine>DSP>Buffer IO library,找到FIR Resampler Filter。

84693dc0-e55f-11f0-8c8f-92fbcf53809c.png

8.2按住左键将FIR Resampler Filter拖入到duc_chain.slx当中,双击进行配置,按图中红框部分进行修改,配置为一个3/2分数采样器,实际采样点数为71个。

Filter coefficients:

[-8,-15,2,27,38,-1,-67,-86,1,139,171,-2,-257,-309,2,443,522,-3,-724,-842,4,1144,1324,-4,-1789,-2078,5,2866,3402,-5,-5080,-6495,6,13412,27026,32762,27026,13412,6,-6495,-5080,-5,3402,2866,5,-2078,-1789,-4,1324,1144,4,-842,-724,-3,522,443,2,-309,-257,-2,171,139,1,-86,-67,-1,38,27,2,-15,-8]

84c8d8e8-e55f-11f0-8c8f-92fbcf53809c.png

8.3点击OK完成配置。

09添加三个FIR Halfband Interpolator blocks

9.1依次展开AMD Toolbox>AI Engine>DSP>Buffer IO library,找到FIR Halfband Interpolator。

852ca1de-e55f-11f0-8c8f-92fbcf53809c.png

9.2按住左键将FIR Halfband Interpolator拖入到duc_chain.slx当中,重复三次添加三个FIR Halfband Interpolator,依次双击配置,配置如下:

8589cb48-e55f-11f0-8c8f-92fbcf53809c.png

10添加Mixer

10.1依次展开AMD Toolbox>AI Engine>DSP>Buffer IO library,找到Mixer。

85e92930-e55f-11f0-8c8f-92fbcf53809c.png

10.2按住左键将Mixer拖入到duc_chain.slx当中,配置如下:

Input window size (Number of samples): 3072

Rounding mode: Round symmetrical to infinity

Saturation mode: 3-Symmetric

Phase Increment: 715827883

11添加PLIO

依次展开AMD Toolbox>AI Engine>Interfaces library,找到PLIO,按住左键将PLIO拖入到duc_chain.slx当中,双击修改如下配置:

864614ba-e55f-11f0-8c8f-92fbcf53809c.png

将各模块按下图连接。

86a3efae-e55f-11f0-8c8f-92fbcf53809c.png

按住左键框选上面的所有blocks,复制并粘贴出另一信号通道,如下图所示:

86fdecc0-e55f-11f0-8c8f-92fbcf53809c.png

双击粘贴出来的Mixer,把Phase Increment修改为3042268501。

12从Reference_design_blocks内复制信号输入模块

在MATLAB Command Window输入以下命令打开本设计参考模块合集。

Reference_design_blocks

复制如下几个blocks到duc_chain.slx当中。

87560176-e55f-11f0-8c8f-92fbcf53809c.png

这些模块主要是包含预定义的信号输入、用Simulink原生blocks搭建的对比模块、用于自定义AIE block的AIE Class Kernel以及相减对比结果的波形查看器。

修改粘贴出来的PLIO2 block的配置PLIO width(bits):64

13配置自定义AIE block的AIE Class Kernel

双击AIE Class Kernel打开配置窗口,按下图配置点击Import导入C++设计的AIE加法器Kernel。

87b1bb9c-e55f-11f0-8c8f-92fbcf53809c.png

14完成所有模块的连接

把未连接的模块按如下示意分别连接信号输入和输出。

8809d8ae-e55f-11f0-8c8f-92fbcf53809c.png

88673f80-e55f-11f0-8c8f-92fbcf53809c.png

15添加Vitis Model Composer Hub block

Vitis Model Composer Hub block本质是个控制面板,用于控制系统与仿真参数、选择AMD芯片板卡型号以及调用代码生成流程。

只要Simulink模型包含AMD Toolbox的任一Block,就必须添加Vitis Model Composer Hub block,才能进行自定义代码生成和仿真。

15.1依次展开AMD Toolbox>Utilities>Code Generation,找到Vitis Model Composer Hub block,按住左键将其拖入到duc_chain.slx当中。

88c2bf4a-e55f-11f0-8c8f-92fbcf53809c.png

15.2双击Vitis Model Composer Hub block打开配置窗口,点击右侧红框的按钮打开硬件平台选择窗口。

8919bab6-e55f-11f0-8c8f-92fbcf53809c.png

15.3选择platform窗口,下拉选择VCK190,点击OK关闭窗口。

897740fa-e55f-11f0-8c8f-92fbcf53809c.png

15.4点击OK关闭Vitis Model Composer Hub block配置窗口。

16编译工程并运行仿真

16.1按Ctrl+S保存工程,按Ctrl+D执行编译,等待编译完成。

89d4ce00-e55f-11f0-8c8f-92fbcf53809c.png

16.2把仿真的停止时间设置为100,点击Run运行仿真。

8a2f503c-e55f-11f0-8c8f-92fbcf53809c.png

16.3仿真结果,中间一个窗口波形是AIE仿真结果和Simulink对照组相减后的结果,可以从波形上看到基本为0,说明AIE仿真结果达到预期效果。

8a8a54aa-e55f-11f0-8c8f-92fbcf53809c.png

17创建子系统并生成graph代码

17.1按住左键选中如下的Blocks。

8afb40ca-e55f-11f0-8c8f-92fbcf53809c.png

17.2按Ctrl+G将这些Blocks创建为一个子系统,如下图所示。

8b5f8be8-e55f-11f0-8c8f-92fbcf53809c.png

17.3双击上图蓝色部分,把子系统重命名为DUCchain,双击Vitis Model Composer Hub block打开配置窗口,点击Code Generation窗口,选中DUCchain,右侧窗口切换到Analyze,点击Analyzer按钮。

8bbb2bb0-e55f-11f0-8c8f-92fbcf53809c.png

17.4随后会自动运行仿真、编译生成graph代码。

8c1ff8ba-e55f-11f0-8c8f-92fbcf53809c.png

17.5完成后如下图所示,点击。

8c80992c-e55f-11f0-8c8f-92fbcf53809c.png

17.6生成的graph源代码在如下目录中。

8cdd4618-e55f-11f0-8c8f-92fbcf53809c.png

/$WORK_PATH/vmc_duc/lab/code/ip/DUCchain/src

8cdd4618-e55f-11f0-8c8f-92fbcf53809c.png

通过上述流程,可基于Vitis Model Composer完成从模型搭建、配置、仿真验证到代码生成的全流程AIE开发。借助其可视化设计与自动化工具链,能显著降低开发复杂度,提升设计效率与可靠性,为AIE应用的快速实现提供有力支撑。

关于安富利

安富利是全球领先的技术分销商和解决方案提供商,在过去一个多世纪里一直秉持初心,致力于满足客户不断变化的需求。通过遍布全球的专业化和区域化业务覆盖,安富利可在产品生命周期的每个阶段为客户和供应商提供支持。安富利能够帮助各种类型的公司适应不断变化的市场环境,在产品开发过程中加快设计和供应速度。安富利在整个技术价值链中处于中心位置,这种独特的地位和视角让其成为了值得信赖的合作伙伴,能够帮助客户解决复杂的设计和供应链难题,从而更快地实现营收。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 仿真
    +关注

    关注

    55

    文章

    4567

    浏览量

    138814
  • AI
    AI
    +关注

    关注

    91

    文章

    41966

    浏览量

    303061
  • ENGINE
    +关注

    关注

    0

    文章

    8

    浏览量

    7493
  • Vitis
    +关注

    关注

    0

    文章

    160

    浏览量

    8443

原文标题:AMD技术干货 | 基于Vitis Model Composer进行AIE开发

文章出处:【微信号:AvnetAsia,微信公众号:安富利】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    闲谈Vitis AI|DPU在UltraScale平台下的软硬件流程(1)

    本篇中,我想跳过一些细枝末节, 先简单介绍 AMD Xilinx Vitis AI 在 Zynq 这个硬件加速平台下软硬件开发的基本思路和流程,把各个
    的头像 发表于 12-21 10:15 3661次阅读

    Vitis AI Model Zone软件平台具备哪些功能?

    Vitis AI Model Zone软件平台具备哪些功能?Vitis AI Model Zon
    发表于 07-09 06:44

    【KV260视觉入门套件试用体验】部署vitis-ai环境以及测试demo

    %80%E4%BD%93%E4%B8%AD%E6%96%87/ug1414-vitis-ai/Vitis-AI-%E6%A6%82%E8%BF%B0 首次开发流程和api
    发表于 08-27 23:35

    【KV260视觉入门套件试用体验】部署DPU镜像并运行Vitis AI图像分类示例程序

    Composer 今天我们将会重点介绍Vitis AI。 1.2 Vitsi AI简介 本节内容主要参考了自官方github.io文档。 AMD
    发表于 09-10 23:01

    【KV260视觉入门套件试用体验】五、VITis AI (人脸检测和人体检测)

    都已编译到预构建的 Vitis AI 开发板镜像中。您可直接运行示例。如有新程序,请在主机侧对其进行编译并将可执行程序复制到目标。 1. 使用 scp 命令将
    发表于 09-26 16:22

    【KV260视觉入门套件试用体验】六、VITis AI车牌检测&车牌识别

    model = argv[1]; return vitis::ai::main_for_jpeg_demo( argc, argv, [model] { return
    发表于 09-26 16:28

    【KV260视觉入门套件试用体验】八、VITis AI自动驾驶多任务执行MultiTask V3

    ]; return vitis::ai::main_for_jpeg_demo( argc, argv, [model] { return vitis::
    发表于 09-26 16:43

    【KV260视觉入门套件试用体验】基于Vitis AI的ADAS目标识别

    ,从而帮助不具备 FPGA 知识的用户轻松开发深度学习推断应用。 (二)Vitis AI Model Zoo Vitis
    发表于 09-27 23:21

    【KV260视觉入门套件试用体验】Vitis-AI加速的YOLOX视频目标检测示例体验和原理解析

    =vitis_ai_library_r3.0.0_video.tar.gz 在开发板上下载、解压的命令为: # 跳转到HOME目录 cd ~ # 下载 tar.gz 文件 TGZ=[vitis_ai
    发表于 10-06 23:32

    【KV260视觉入门套件试用体验】Vitis AI 构建开发环境,并使用inspector检查模型

    视觉和自然语言处理模型,以及相应的推断接口。 提供多种工具和框架,如 Vitis Model Composer, Vitis Video Analytics SDK,
    发表于 10-14 15:34

    【KV260视觉入门套件试用体验】Vitis AI Library体验之OCR识别

    的接口。由此可简化深度学习神经网络的使用,对于不具备深度学习或 FPGA 知识的用户也是如此。Vitis AI Library 使开发者能够专注于开发自己的应用,而不是底层硬件。 二、
    发表于 10-16 23:25

    VitisModel Composer 2023.1现已更新

    Vitis Model Composer 是一个基于模型的设计工具,不仅可在 MathWorks MATLAB 和 Simulink 环境中进行快速设计探索,而且还可通过自动代码生成在 AMD 器件上加速投产进程。
    的头像 发表于 05-31 10:23 3642次阅读

    Vitis Model Composer用户指南

    电子发烧友网站提供《Vitis Model Composer用户指南.pdf》资料免费下载
    发表于 09-14 09:59 26次下载
    <b class='flag-5'>Vitis</b> <b class='flag-5'>Model</b> <b class='flag-5'>Composer</b>用户指南

    Vitis Model Composer教程

    电子发烧友网站提供《Vitis Model Composer教程.pdf》资料免费下载
    发表于 09-14 09:52 8次下载
    <b class='flag-5'>Vitis</b> <b class='flag-5'>Model</b> <b class='flag-5'>Composer</b>教程

    Model Composer入门指南

    电子发烧友网站提供《Model Composer入门指南.pdf》资料免费下载
    发表于 09-15 17:39 1次下载
    <b class='flag-5'>Model</b> <b class='flag-5'>Composer</b>入门指南