vitis hls使用笔记:如何构建高效的Test Bench

1.什么是Test Bench

1. 是一个虚拟的环境

2. 用于验证所设计模型的正确性

3. 用于验证构建的C++函数正确性,即 csim

4. 用于验证RTL设计的正确性,即C/RTL Cosimulation

5. 其用C++语言描述

2. Test Bench的构成 

 

1. Driver / Stimulus: 输入激励

2. Reference Modell: 参考模型(一般作为黄金参考值,即认为该模型为基准)

3. DUT: 待测模型(需要综合的C函数)

4.  Monitor: 监视器(非必须)

5. Scoreboard: 将参考模型和待测模型结果进行对比

 3. 什么是高效的Test Bench

1. 增加测试的多样性:用于合成的顶层函数是为多个事务执行的

2. 将函数输出与已知的良好值进行比较

3. main()函数的返回值被约定为:  0: 结果正确     非0:结果不正确

  4. Test Bench实例

 

 注:左上角是待测模型的.cpp文件; 另外一个是Test Bench的.cpp文件 

 

 5. Test Bench 测试激励

 (1)测试激励的源

1. 直接定义和初始化变量作为激励

2. 将数据存储在一个数组中作为激励

3. 从外部文件读取数据作为激励

 (2)实例:用数组作为激励

(3)实例:从外部文件读取数据作为测试激励

 

 6. Test Bench Scoreboard 

(1) 两种比较方式

(2) 将数据写入外部文件

 (3) 输出格式的控制

输出格式: setw 、left 、right 、internal 

对定点数的输出进行控制 

对符点数的输出进行控制

小结 

 

1. 使用system()去比较DUT的输出与黄金值

2. 通过控制输出格式,可以得到更多的有用信息

3. 一般,to_string() 比dec、oct 等更有效和更容易 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值