首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

学习Vivado第5章lab2——查看用任意精度类型的设计

学习Vivado第5章lab2——查看用任意精度类型的设计




简介
这个lab练习采用了和lab1同样的设计,但是数据类型现在是任意精度类型。您首先查看设计,并检查设计结果。
步骤1:创建并仿真工程
1. 在lab1中用命令提示符窗口,变为lab2路径如图99
2. 执行TCL并建立vivado HLS Project,采用的是vivado_hls–f run_hls.tcl如图99所示


3. 在用户界面里打开工程。用vivado_hls–pwindow_fn_prj命令打开,
4.在资源管理器中打开源文件夹,并双击window_fn_top.cpp打开代码,如图100


5. 按住ctrl键,并在45行单击window_fn_top.h,打开头文件
6. 滚动文件的下方,查看类型定义如图101


头文件,window_fn_top.h仅有这个文件不同于lab1,数据类型已更改为ap_fixed点类型,类似于float和double类型的,他们支持整数和小数位表示。数据类型在头文件ap_fixed中被定义。在头文件中的定义定义数据类型的大小:
首先规定了总字的长度第二定了整形位数因此小数位的数目是第一项减去第二项当你修改 C代码使用任意精度的类型,而不是标准的 C类型,你必须做出最常见的变化之一是降低数据类型的大小。在这种情况下,你改变使用8位,24位和18位的字,而不是32位浮点类型的设计。这将导致较小的操作,减小的面积,以及更少的时钟周期来完成。
类似的优化帮助,当你改变较为常见的C类型,如int,short和char。例如,改变只需要从整形(32位)变为INT18位数据类型,确保只用一个单一的DSP48需要执行任何乘法。
在这两种情况下,必须确认该设计仍执行正确的操作,并且它也具有所要求的精度。设置有Vivado高级综合的任意精度类型的好处是可以模拟的更新的C代码,以确认其功能和精确度。
7. 在资源管理器中打开测试平台文件夹,并双击
8. 滚到文件下方,查看如图102


为了这个设计的测试平台包括代码用了检查结果的精度。预期的结果是使用浮点类型仍然产生。结果检查验证的结果是准确的指定范围之内(在这种情况下,内0.001的预期结果)。
这使得更新后的设计可以快速,高效地使用C进行验证,以快速编译和运行时间。
9. 在工具栏中点击Run C Simulation按钮,打开C仿真对话框
10. 接受默认设置(没有选项的选择)并点击OK
控制台窗口展示了C仿真的结果,用更新数据类型,其结果与期望的结果不再相同,但是它们是在误差范围内。


步骤2:综合设计并查看结果
1. 在工具栏里点击Run C Synthesis按钮,把设计综合成RTL。
当综合完成,综合报告自动打开,如图104所示综合报告


注意通过使用任意精度类型,你可以减少延迟和资源使用(25%和60%),和在RTL硬件中的操作是不大于必要了。
2. 向下滚动到接口总结报告图105
图105展示了数据端口现在是8位和24位


3. 退出VIVADO HLS用户界面,返回命令提示符
总结
在这个教程中,您学习到:
•如何更新现有的标准C类型为Vivado高层次综合任意精度的类型。
•在硬件性能和使用位精确的数据类型的面积计算的优势。

记录学习中的点点滴滴,让每一天过的更加有意义!
返回列表