在前一篇文章中我们介绍了如何创建一个包含PL/PS和AIE三个domain的Vitis工程,接下来我们介绍一下如何编译该工程。
打开文件full_system_app_system.sprj,将Active build configuration设置为Emulation-HW。一旦设置成功,相应的其他三个应用的同名选项均变为Emulation-HW。
选择AIE Application,点击右键,选择Build Project,如下图所示。
编译之后,我们可以用Vitis Analyzer进行分析,如下图所示。可以看到设计中包含两个kernel,这两个kernel分别运行在AIE Tile[24,0]和[25,0]上。同时还可以看到整个graph的两个输入和两个输出端口。
选择PL Application,点击右键,选择Build Project,如下图所示。需要说明的是在这个系统中3个C/C++ kernel都和AI Engine Array相连,但这并不是设计准则。kernel只是需要在PL上实现的加速函数,因此,可以和AIE没有关系。
在PL的编译过程中,可以看到Vitis会使用V++工具,最终会生成.xo文件。每个kernel对应一个.xo文件,如下图所示。
编译HW Link
如下图所示,选择HW Link Application,点击右键,选择Build Project。这一步在背后会调用Vivado。
v++会使用编译PL Kernel时生成的三个.xo文件和编译AIE时生成的libadf.a文件作为输入,最终输出XCLBIN文件,具体命令如下图所示。
生成XCLBIN之后,我们也可以看到生成该文件的Vivado工程,工程名为prj.xpr,具体路径如下图所示。
打开Vivado工程,查看其中的Block Design,可以看到AIE和3个PL Kernel的连接关系,如下图所示。
没有回复内容