HLS开发学习-08- Vivado HLS下C_C++测试平台的基本架构

写在前面

本系列的第8篇,ppt引用来自赛灵思hls教程,主要介绍HLS下C_C++测试平台的基本架构。

什么是TB?

testbench是一种验证的手段。首先,任何设计都是会有输入输出的。但是在软环境中没有激励输入,也不会对你设计的输出正确性进行评估。那么此时便有一种,模拟实际环境的输入激励和输出校验的一种“虚拟平台”的产生。在这个平台上你可以对你的设计从软件层面上进行分析和校验,这个就是testbench的含义。

在HLS中使用C搭建的tb是这样的功能,和RTL层不同的是,这里的TB的主要包括了这些内容:激励(给出一组数据或者一定状态用于检测)、参考模型(也就是用于检测运行结果的答案,如同参考答案)、DUT(待测模型)、SCOREBOARD(这里实际就是一个检测函数的功能测试评分表)。其中,monitor(过程中的检测),可根据选择进行取舍。
在这里插入图片描述

为什么使用C test bench?

好处如下:

  • 可以用来检测C函数 的功能正确性和健壮性。
  • C tb相比RTL tb 效率更高。
  • C tb也可以验证RTL 的设计。
  • C test bench 即可验证C函数的功能,又可以和RTL设计一起进行协同仿真。

在这里插入图片描述

高效的TB

对于高效的TB应该是

  • 综合时,对于顶层函数是针对多个事件执行的,这样可以提高它执行的测试的多样性。
  • 函数输出与已知的好值进行比较。
  • main()函数的返回值设置(0表示正确的,非零值表示结果不正确)
    在这里插入图片描述

用case演示基本架构

根据示例,我们可以对刚刚讲述的C测试平台的架构进行对应。
在这里插入图片描述
下图表示了,对于不同的部分,输入输出的一些设计要求,还有一些设计中的注意事项。在这里插入图片描述

summary

简要总结:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_41445387/article/details/107092192