Vivado HLS工程testbench的三个要素 |
您所在的位置:网站首页 › vivado的testbench › Vivado HLS工程testbench的三个要素 |
编写高效 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 层函数执行多次的处理和验证。 还可以 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |