算法建模之后一项重要的步骤是算法验证,这就需要测试平台(Test Bench)。基于C的算法建模同样需要构建基于C的测试平台。相比于VHDL/Verilog等硬件描述语言,基于C的测试平台更为快捷。这体现在两个方面:一个是可以快速构建起来;一个是仿真速度更快。
一个完整的测试平台通常包括输入激励、待测模型(也就是待测函数)、参考模型(也叫Golden Model)和输出监测4个部分。从C的角度看,这4个部分可以分别对应4个函数,其中输入激励部分和输出监测部分可实现复用,从而进一步缩短验证时间。
VivadoHLS中C测试平台是不可缺少的(尽管没有测试平台并不会影响C综合),它扮演着两个非常重要的角色。第一,C层面的算法验证需要它;第二,C和RTL协同仿真时需要它。此时,RTL的测试平台是由C测试平台生成的。这保证了验证的等效性。
C测试平台往往也是很多初学者容易忽略的,这里再次强调,完整的HLS设计流程需要C和RTL的协同仿真这一步,而这一步能完成的前提是需要C测试平台。
更为深入的介绍可以阅读以下文档:
ug902(v2018.1) High-Level Synthesis User Guide page 32 - page 37
ug902(v2018.1) High-Level Synthesis User Guide page 302 - page 309
ug871(v2018.1) High-level Synthesis Tutorial Ch3: C Validation Lab 1, Lab 2, Lab 3