- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编写高效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具有自
您可能关注的文档
- JOB-PP-ZHB005职务说明书(工程经理).doc
- Keil uVision5建立汇编语言工程的过程.doc
- M5、M7.5水泥砂浆。常用混凝土的配合比.doc
- M7.5浆砌石挡土墙技术交底.doc
- MQ-026.1 金属幕墙工程检验批质量验收记录表(Ⅰ)主控项目.doc
- ok授权委托书(建筑总公司对分公司授权项目由分公司负责以及纳税).doc
- MS Project2007培训-协作项目管理.pdf
- Overview of Engineering Mechanics工程力学概述.doc
- p11-p12利君生物制药基地不列为单位工程报建项目一览表.doc
- NADCAP认证项目范围.pdf
- 郑州轻工业大学《国际结算与电子支付》2023-2024学年第一学期期末试卷.doc
- 2025届山东省淄博市沂源县重点达标名校中考三轮模拟试卷化学试题卷含解析.doc
- 郑州体育职业学院《社会保险》2023-2024学年第二学期期末试卷.doc
- 财务部人员安全培训课件.pptx
- 临沂大学《药事管理学》2021-2022学年第一学期期末试卷.doc
- 江苏医药职业学院《高等流体力学》2023-2024学年第二学期期末试卷.doc
- 南京师范大学泰州学院《字体设计与应用》2023-2024学年第二学期期末试卷.doc
- 财务部内部培训课件.pptx
- 电气安全环保知识培训课件.pptx
- 湖北文理学院理工学院《大学外语Ⅳ》2023-2024学年第一学期期末试卷.doc
原创力文档


文档评论(0)