自动验证 RTL - 2022.1 Chinese

Vitis 高层次综合用户指南 (UG1399)

Document ID
UG1399
Release Date
2022-06-07
Version
2022.1 简体中文
图 1. C/RTL 验证流程

C/RTL 协同仿真流程使用运行 main() 函数的 C 语言测试激励文件来自动验证行为仿真中运行的 RTL 设计。C/RTL 验证进程由 3 个阶段组成:

  1. 执行 C 语言仿真,顶层函数输入或待测设计 (DUT) 将保存为“输入矢量”。
  2. “输入矢量”在 RTL 仿真中使用,此类 RTL 仿真使用的是在 Vivado 仿真器或受支持的第三方 HDL 仿真器中由 Vitis HLS 创建的 RTL。RTL 输出或仿真结果将保存为“输出矢量”。
  3. RTL 仿真返回的“输出矢量”将返回至 C 语言测试激励文件的 main() 函数,以验证结果是否正确。C 语言测试激励文件在某些情况下通过与已知良好的结果相比较来执行结果验证。

在验证进程中, Vitis™ HLS 将输出以下消息:

运行 C 语言仿真时:

INFO: [COSIM 212-14] Instrumenting C test bench ...
   Build using ".../bin/g++"
   Compiling dct_test.cpp_pre.cpp.tb.cpp
   Compiling dct_inline.cpp_pre.cpp.tb.cpp
   Compiling apatb_dct.cpp
   Generating cosim.tv.exe
INFO: [COSIM 212-302] Starting C TB testing ... 
Test passed !

在此阶段中,由于已执行 C 语言仿真,C 语言测试激励文件编写的所有消息都将输出到“Console”(控制台)窗口和 log 日志文件中。

运行 RTL 仿真时:

INFO: [COSIM 212-333] Generating C post check test bench ...
INFO: [COSIM 212-12] Generating RTL test bench ...
INFO: [COSIM 212-1] *** C/RTL co-simulation file generation completed. ***
INFO: [COSIM 212-323] Starting verilog/vhdl simulation. 
INFO: [COSIM 212-15] Starting XSIM ...

在此阶段中,RTL 仿真生成的所有消息都将输出到控制台窗口或 log 日志文件中。

检查 C 语言测试激励文件返回的结果时:

INFO: [COSIM 212-316] Starting C post checking ...
Test passed !
INFO: [COSIM 212-1000] *** C/RTL co-simulation finished: PASS ***

C/RTL 协同仿真的要求如下所述:

  • 测试激励文件必须进行自我检查(如 撰写测试激励文件 中所述),如果测试成功,则返回 0 值,如果测试失败,则返回非零值。
  • 搜索路径中必须包含所有第三方仿真器,以供 Vitis HLS 启动。
  • 接口综合要求 必须得到满足。
  • 设计接口上的任意 arraysstructs 都不得使用 不受支持的协同仿真最优化 中列示的最优化指令。
  • IP 仿真库必须经过编译后才能搭配第三方仿真器一起使用,如 仿真 IP 核 中所述。