跟Xilinx SAE 学HLS系列视频讲座笔记(2)——编写高效的C Test Bench(上)

简介: 目录第一讲 C Test batch的结构第二讲 测试激励(Stimulus)第三讲 Scoreboard and Output Format

第一讲 C Test batch的结构

1. 什么是 C Test batch

test bench或testing workbench是一个(通常是虚拟的)环境,用于验证设计或模型的正确性或合理性。对于Vivado HLS而言,我们需要用c++来描述一个Test batch用来验证这个模型和设计的合理性。

使用C Test batch目的是为了验证我们C函数的准确性,此外采用 C Test batch可以提高我们的效率,因为在仿真过程中,C比DHL等硬件描述语言更快,即在综合之前使用C开发和验证算法比在RTL开发更有效。

值得强调的是C Test batch在Vivado HLS中起到了两个重要的作用,第一个是验证了C函数的正确性(我们在执行C Simulation时这个作用就体现出来了),第二个是验证RTL设计正确性(这个是在我们执行C / RTL协同仿真时候)



2. 怎样是一个高效的C Test Batch

  • 我们希望我们待测的函数可以被多次的执行,这就需要我们有更多的输入激励给到这个顶层函数,使其能遍历更多的可能性,这样就提高可代码的覆盖率。
  • 将函数的输出值与good values进行比较。
  • main( )函数的返回值为0,表示结果正确;返回值为非0,结果正确。

  • 例子:


3. 总结

  • C Test batch在HLS中扮演着重要角色。它可以验证C函数的正确性并验证RTL设计的正确性。
  • C Test batch由激励,参考模型,DUT和scoreboard组成
  • 如果结果正确,则C测试台应返回0。否则,应返回1。这是强制性的。


第二讲 测试激励(Stimulus)

1. 测试激励的源

  • 我们可以直接定义一个变量,并对其进行初始化。
  • 可以把数据存储在数组中。
  • 可以在外部文件中读取数据。
    但是他们各有优势。


例子:使用数组作为测试激励

例子:使用文件作为测试激励



我们可以用C++中的Template Function的方式。



  • 2.总结
  • 数组和外部文件都可以被用作激励的源。
  • 外部文件可以提供大量数据,涵盖大多数情况。
  • 从外部文件读取数据时,使用模板功能更有效。
相关实践学习
基于小程序Serverless开发个人相册小程序
本场景基于小程序云Serverless+小程序开发者工具(IDE),快速搭建个人相册小程序
SAE的功能与使用入门
欢迎来到《SAE的功能与使用入门》,本课程是“云原生Serverless Clouder认证“系列中的第三阶段。课程将向您介绍阿里云Serverless应用引擎(SAE)服务相关的概念、特性与使用方式。通过课程将带您逐步深入探索Serverless世界,借助SAE服务,即使没有丰富的云计算和IT经验,也能够让开发人员在实际业务场景中便捷的掌握如何构建和部署应用程序,快速拥抱Serverless架构,将精力聚焦在应用代码和业务逻辑的实现上。 学习完本课程后,您将能够: 掌握Serverless应用引擎(SAE)的基本概念与核心优势 了解Serverless应用引擎(SAE)的核心功能 掌握使用Serverless应用引擎(SAE)的开发和部署流程 了解Serverless应用引擎(SAE)的适用场景和最佳实践  
相关文章
跟Xilinx SAE 学HLS系列视频讲座笔记(6)—— 函数优化
1. 函数层面的优化 从函数这个角度来说代码风格,主要是看参数的数据类型,C++中的数据类型是以8为边界的,而实际硬件中我们可能会遇到任意精度的数据类型,因此我们一定在C++中定义为任意精度的数据类型;
80 0
跟Xilinx SAE 学HLS系列视频讲座笔记(6)—— 函数优化
跟Xilinx SAE 学HLS系列视频讲座笔记(5)—— 数组优化(下)
第一讲 数组分割 第二讲 数组映射与重组 第三讲 其他优化方法
81 0
跟Xilinx SAE 学HLS系列视频讲座笔记(5)—— 数组优化(下)
跟Xilinx SAE 学HLS系列视频讲座笔记(5)—— 数组优化(上)
第一讲 数组分割 第二讲 数组映射与重组 第三讲 其他优化方法
138 0
跟Xilinx SAE 学HLS系列视频讲座笔记(5)—— 数组优化(上)
跟Xilinx SAE 学HLS系列视频讲座笔记(4)——For循环优化(下)
目录 第一讲 For循环优化的性能指标 第二讲 for循环优化-循环合并 第三讲 for循环优化-数据流 第四讲 嵌套for循环优化 第五讲 for循环优化其他方法
91 0
跟Xilinx SAE 学HLS系列视频讲座笔记(4)——For循环优化(下)
|
存储 调度
跟Xilinx SAE 学HLS系列视频讲座笔记(4)——For循环优化(中)
目录 第一讲 For循环优化的性能指标 第二讲 for循环优化-循环合并 第三讲 for循环优化-数据流 第四讲 嵌套for循环优化 第五讲 for循环优化其他方法
173 0
跟Xilinx SAE 学HLS系列视频讲座笔记(4)——For循环优化(中)
|
1月前
|
缓存 Java Serverless
Serverless 应用引擎常见问题之安装完serverless dev报错如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
30 4
|
1月前
|
缓存 Java Serverless
Serverless 应用引擎常见问题之SAE设置超时时间如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
25 0
|
6月前
|
Serverless
Serverless 应用引擎中,sae2.0绑定域名出问题了,提交了之后没显示出来,然后再添加就提示已存在,是必现,为什么?
Serverless 应用引擎中,sae2.0绑定域名出问题了,提交了之后没显示出来,然后再添加就提示已存在,是必现,为什么?
204 1
|
3月前
|
IDE Java Serverless
Serverless 应用引擎问题之sae部署错误如何解决
Serverless部署是指将应用程序部署到无服务器架构中,该架构允许开发者专注于代码而无需关心底层服务器的运行和维护;针对Serverless部署过程中可能遇到的挑战,本合集提供全面的指南和最佳实践,帮助开发者顺利实现应用的无服务器化部署。
192 2
Serverless 应用引擎问题之sae部署错误如何解决
|
1月前
|
人工智能 JavaScript 小程序
Serverless 应用引擎常见问题之函数计算安装serverless devs成功了但是配置密钥这步一直不成功如何解决
Serverless 应用引擎(Serverless Application Engine, SAE)是一种完全托管的应用平台,它允许开发者无需管理服务器即可构建和部署应用。以下是Serverless 应用引擎使用过程中的一些常见问题及其答案的汇总:
22 1

热门文章

最新文章