Vivado HLS工程testbench的三个要素.doc_第1页
Vivado HLS工程testbench的三个要素.doc_第2页
Vivado HLS工程testbench的三个要素.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编写高效Vivado HLS工程testbench的三个要素 在C程序的设计中,任何一个C程序的顶层都是main()函数。而在vivado HLS的设计中,只要函数的层次在main()函数以下,都可以被综合。但是每个vivado HLS工程只能指定一个top层函数作为输出RTL模块的顶层,其它和这个函数层次平行,不需要被综合的函数都可以作为testbench来使用。这样就带来一个问题,如何编写vivado HLS工程的testbench更高效,或者说能更好的让HLS工具自动重用C testbench验证产生的RTL代码就变得非常重要。 通常,在Vivado HLS中,好的C testbench设计原则是testbench设计和需要实现的算法函数分别保存在不同的文件中,并且充分利用头文件。Testbench常常包含了一些HLS综合不支持的操作,比如通过文件的读写取得仿真数据并保存结果,或者打印一些测试结果进行分析。在头文件中,完成对testbench中所有的数据类型和函数的定义,以及包含共享的设计文件和函数库。 Vivado HLS中,只能指定一个top层函数用于综合,top层函数可以包含多个子函数。当需要综合多个并行层次的函数时,可以编写一个wrapper函数作为top层函数,将需要综合的多个并行函数封装起来。 C testbench的目不仅是要验证需要综合的top函数功能正确(C编译器验证环境),同时重用C testbench作为综合产生RTL代码的仿真激励,HLS工具自动调用C testbench来验证RTL功能的一致性(C编译器和RTL仿真器的协同仿真环境)。这样,编写一个好的风格testbench可以很好的提高设计的验证效率,如果在HLS综合前和综合过程中,需要修改综合函数的代码,可以用testbench验证,确保需要综合的C算法功能正确。 Vivado HLS中推荐高效的testbench具有如下三个特征: 1.Testbench代码和需要综合的C算法代码保存在不同的文件中(例子1-1)。输入多个不同的数据,对需要综合的Top层函数执行多次的处理和验证。还可以进行top函数多样性的测试。Testbench和C设计分开不同的文件使得HLS工程非常清晰,它们分别作为test bench文件和source文件加入HLS的project中。(Testbench和要综合实现的设计文件分别保存不是HLS强制的,也可以保存在同一个文件中,如果保存为同一个文件,在HLS工程,需要指定这个文件既是testbench文件也是source文件)。需要综合的top层函数文件作为testbench的Main()函数文件和仿真数据文件 例子1-1 testbench函数和要综合的top函数保存在不同文件中 2.Testbench具有自测试功能,testbench调用需综合的top函数,仿真输出结果与已知正确的数值进行对比。已知正确的数值可以通过文件读入(例子2-1),也可以由testbench的其它部分的仿真代码产生(例子2-2)。仿真数据和保存的Golden数据比较 例子2-1:testbench仿真数据与保存的Golden数据比较Golden函数产生仿真的golden数据需要综合的top function 例子2-2:testbench仿真数据与Goden函数输出的数据比较 3.Main()函数作为testbench函数(例子3-1),如果仿真top函数正确,main()函数返回0值;如果仿真不通过,返回任意非0的值即可(例子3-2)。(之所以要求仿真正确返回0值,是因为HLS工具自动进行RTL验证时,如果testbench返回0值,HLS认为仿真正确,而返回其它值时,HLS报告仿真失败)。Main()函数作为testbench 例子3-1:Main函数作为testbench与Golden结果一致,返回“0”,否则,返回非“0”值 例子3-2:Testbench函数的返回值综上所述,掌握三个基本的VivadoHLS工程testbench编写原则,可以轻松书写VHLS高效的testbench仿真激励。首先,testbench和要综合的顶层函数分别保存在不同的文件中,使得vivadoHLS工程简洁清楚;其次,testbench具有自测试功能,通过调用Golden函

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论