Versal®
ACAP AI 引擎 SystemC 仿真器 (aiesimulator
) 包含全局存储器(DDR 存储器)和片上网络 (NoC) 的建模,以及 AI 引擎阵列的建模。使用 SystemC 仿真目标完成应用编译后,即可调用 AI 引擎 SystemC 仿真器,如下所示。
aiesimulator –-pkg-dir=./Work
各项配置和二进制文件都是由 AI 引擎编译器生成的,置于 Work 目录下(请参阅 编译 AI 引擎 graph 应用),并使用 --pkg-dir
选项来为仿真器指定这些配置和文件。graph 由 main
应用中所述的控制线程来进行初始化、运行和终止。AI 引擎编译器负责对该控制线程进行编译,并将 PS IP 封装文件直接加载到仿真器中。
默认情况下,graph.run()
选项会指定永续运行的 graph。AI 引擎编译器会生成代码,以通过永续 While
循环来执行数据流 graph,因此仿真也会永续运行。要创建终止程序用于调试,请在 graph 代码中指定 graph.run(<number_of_iterations>)
以将迭代的执行次数限制为指定次数。指定的迭代数可以是任意正整数。
graph::run(-1)
可指定永续运行的 graph。AI 引擎仿真器命令首先按 Work/config/scsim_config.json 文件中生成的编译器中指定的方式来配置仿真器。这包括加载 PL IP 块及其连接、配置 I/O 数据文件驱动程序以及配置 NoC 和全局存储器(DDR 存储器)连接。随后,它会执行指定的 PS 应用,最终退出仿真器。
AI 引擎仿真器具有可选 --profile 选项,该选项会在内核代码中启用 printfs
以将其显示在控制台上,并生成剖析信息。并且,--dump-vcd
<filename> 选项还会在仿真持续期间生成值更改转储 (VCD)。随后,即可使用 --simulation-cycle-timeout
<number-of-cycles> 在指定时钟周期数过后退出仿真。
graph.run()
的运行轮数,那么仿真会永久运行。您需要按两次Ctrl+c才能退出仿真器。--simulation-cycle-timeout
选项在精确周期内停止仿真器。这样剖析报告上显示每一轮运行的总周期数都相同。<iostream>
以启用 printfs
。在内核代码中使用 #include
<iostream>
会导致 x86 仿真器和 SystemC 仿真器都出现编译错误。