AIE(5)—针对AI Engine进行编译-Xilinx-AMD社区-FPGA CPLD-ChipDebug

AIE(5)—针对AI Engine进行编译

在上一篇文章中,我们介绍了针对x86处理器编译AIE并执行功能仿真。在本篇文章中,我们将介绍针对AI Engine模型编译AIE并执行仿真。
 
打开我们创建的simple_application工程,在Explorer窗口中双击simple_application.prj,如下图所示。将Active build configuration设置为Emulation-AIE,想用的AIE Compiler Options下的Target会自动切换为AIE Simulation
 
图片[1]-AIE(5)—针对AI Engine进行编译-Xilinx-AMD社区-FPGA CPLD-ChipDebug

依次执行下图中的12两个步骤,即可对工程进行编译。对应的命令aiecompiler的相关选项与上一篇文章中用到的基本一致。一个明显的区别是-target的值由x86sim变为hw。编译成功之后,可以在Assistant窗口中看到Emulation-AIE前面会有一个绿色的对勾(编译报错会显示红色叉号)。

图片[2]-AIE(5)—针对AI Engine进行编译-Xilinx-AMD社区-FPGA CPLD-ChipDebug
图片[3]-AIE(5)—针对AI Engine进行编译-Xilinx-AMD社区-FPGA CPLD-ChipDebug
图片[4]-AIE(5)—针对AI Engine进行编译-Xilinx-AMD社区-FPGA CPLD-ChipDebug

一旦编译结束,就可以在Explorer窗口中看到新增了Emulation-AIE这个文件目录,该目录下还有一个文件夹Work。此外,还有一个重要文件libadf.a,用于后续VitisAIE应用工程与系统集成。接下来我们就可以调用AIE仿真器执行仿真,如下图所示。依次执行图中的123步骤。

 

图片[5]-AIE(5)—针对AI Engine进行编译-Xilinx-AMD社区-FPGA CPLD-ChipDebug

仿真结束后会生成仿真结果output.txt,位于aiesimulator_output/data目录下,如下图所示。

 

图片[6]-AIE(5)—针对AI Engine进行编译-Xilinx-AMD社区-FPGA CPLD-ChipDebug

打开output.txt,如下图所示,可以看到与x86仿真结果的差异。这里多了时间戳。这是因为AIE仿真器是周期近似的仿真。图中TLAST用于表明一次迭代的最后一个输出结果。第一个输出结果位于1136ns,由于VCK190AI Engine运行在1GHz,所以可以计算出第一个结果是在1136个时钟周期后获得的。这个设计是一个简单的设计,并没有利用AIE的向量处理器。

 

图片[7]-AIE(5)—针对AI Engine进行编译-Xilinx-AMD社区-FPGA CPLD-ChipDebug
将仿真结果与参考输出进行比较,如下图所示。因为仿真结果带有时间戳,因此比较时要将时间戳去掉。
 
图片[8]-AIE(5)—针对AI Engine进行编译-Xilinx-AMD社区-FPGA CPLD-ChipDebug
图片[9]-AIE(5)—针对AI Engine进行编译-Xilinx-AMD社区-FPGA CPLD-ChipDebug
图片[10]-AIE(5)—针对AI Engine进行编译-Xilinx-AMD社区-FPGA CPLD-ChipDebug
图片[11]-AIE(5)—针对AI Engine进行编译-Xilinx-AMD社区-FPGA CPLD-ChipDebug

 
 

 

 

请登录后发表评论

    没有回复内容