HLS 基础 (七 如何写高效的C Test Bench)

C Test Bench

是一个用来验证设计程序准确性的虚拟环境。

一般使用C++描述一个Test Bench,用于验证设计程序的正确性。

image-20220508202626114

构成

Driver/Stimulus: 输入激励,给到参考模型和待测模型(DUT)——就是设计的模型C函数。

Reference Model: 参考模型。

DUT(Design Under Test): 待测模型(DUT)——就是设计的模型C函数.

Monitor: (非必须)。

通常认为Reference Model的输出结果是正确的.(所以也称Golden Value

image-20220508202954528

Why Should C Test Bench Be Ued?

  • 使用C Test Bench是为了检测C函数的正确性

  • 使用C Test Bnech 可以提升效率,仿真速度高于RTL 仿真。

  • 算法开发角度使用C++要比Verilog更快捷。

  • Vivado HLS复用C test Bench验证RTL设计。(C/RTL Cosimulation联合仿真)

    • 所以当使用Vivado HLS时不需要再创建RTL Test Bnech.

    image-20220508203700438

image-20220508203735106

尽量把顶层函数与test bench分开来写。

What is a Productive Test Bench?

怎样写高效的Test Bench?

  • 待测的函数可以被多次的执行
  • 函数的输出可以与golded Value做比较
  • main函数的返回值按照以下方式设置:
    • 等于Zero:结果正确时
    • 非Zero:结果错误

Test Bench 架构 in C++

image-20220508204554390

image-20220508204756975

Summary

image-20220508204907625

  • 版权声明: 本博客所有文章除特别声明外,著作权归作者所有。转载请注明出处!
  • Copyrights © 2022-2024 lk
  • 访问人数: | 浏览次数:

请我喝杯咖啡吧~

支付宝
微信