现在可以指令 Vitis 工具在硬件仿真 (hardware emulation) 期间生成测试矢量用于仿真 (simulation),而无需重新运行
v++
编译和链接。测试矢量将允许 Vitis HLS 允许 C/RTL 协同仿真,而无需专用 C++ 测试激励文件,以满足下列需求:
- 死锁分析
- FIFO 深度最优化
- 其他性能最优化
请使用以下步骤:
-
创建 hlsPre.tcl 文件并插入以下命令:
config_export -cosim_trace_generation
- 运行
v++ --compile
并保留<compile_dir>
下的 HLS 工程目录 - 运行
v++ --link --target hw_emu
- 运行该应用以进行硬件仿真
- 在 HW_EMU 运行目录内找到
hls_cosim
- 此目录针对每个内核包含一个目录,针对内核下的每个内核 CU(内核实例)也包含一个目录:
<build_dir>/.run/<run_number>/hw_em/device0/binary_0/behav_waveform/xsim/hls_cosim/<kernel_name>
- 此目录针对每个内核包含一个目录,针对内核下的每个内核 CU(内核实例)也包含一个目录:
- 将相应的内核目录复制到 HLS 工程目录中,即:
cp -r <build_dir>/.run/<run_number>/.../xsim/hls_cosim/<kernel_name> <compile_dir>/<kernel_name>/<kernel_name>
- 打开 Vitis HLS 工具并以批处理模式或 GUI 模式运行 C/RTL 协同仿真:
cosim_design -hwemu_trace_dir <kernel_name>/<instance_name> ...
仅限满足以下条件时,从 HW_EMU 生成的追踪才有效:
- 内核功能不发生改变
- 内核顶层接口不发生改变
- 顶层接口读写次数(
s_axilite
寄存器、m_axi
接口、axis
接口)不发生改变。