以硬件仿真 (
-t hw_emu
) 为目标完成编译后,VSC 将从加速器源码生成 RTL,并搭配应用层代码来运行 RTL 仿真。要查看仿真波形,您可以在 xrt.ini 文件中启用以下开关:[Emulation]
debug_mode=gui
图 1. 仿真波形视图
上图显示了 Vivado XSim 接口中的波形查看器。默认情况下,VSC 将创建对应于 compute()
接口的分组波形对象。内核代码的编译必须包含 -g 标志,否则分组将在 Vivado XSim 中出错。在此设计中,有 4 个加速器实例 (NCU=4),这些实例作为分组对象 vadd*CU_0
到 vadd*_CU_3
进行枚举。其中每个组都进一步包含对应于 compute()
实参的信号:in1
、in2
、out
和 size
。kernel_execution
组同样是自动创建的,包含对应每个 CU 实例的 ap_start
和 ap_done
信号。
提示: 在硬件仿真中,启动信号的时序相较于真实硬件行为并非时序精确。这是因为主机与仿真模型(数据通过 PCIe 进行传输存在时延,或者数据与 DDR/HBM 存储器之间的传输存在时延)的交互以及主机与应用的交互将无法反应实时硬件执行行为。但
compute()
调用从启动到停止的时序则是周期精确的时序。