简介
这个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高层次综合任意精度的类型。
?在硬件性能和使用位精确的数据类型的面积计算的优势。
iphone8发布!iPhone8即将上市,价格太贵国人买不起?激将法!iPhoneX回归双玻璃,致敬乔布斯
TR069与中国CPE远程管理标准
工控机是做什么用的
研华AIMB-218工业主板在血液分析诊断中的应用
物联网如何推动互联世界的下一次发展?
查看用任意精度类型的设计
云米科技美国上市,成为小米生态链首家家电上市公司
酒精检测仪的检测原理是怎样的
什么是辐射抗扰度?射频电磁场辐射抗扰度试验
钛材螺旋板换热器管板出现裂纹的原因
控制电路的SPICE仿真模型
智慧城市概念成为现实的关键在于那双看不见的“眼睛”
商汤首份业绩报告 :2021营收47亿元,四年研发投入超80亿
为何份额持续下跌,三星短板在哪里?
人脸识别系统的几个过程浅析
怎样将虚拟机连接到远程串行端口和设备
iBeacon定位设备选择的几个参数介绍
旷视托盘四向车柔性密集存储方案助力宏发集团打造智慧冷链
从九个方面来探讨工业机器人的选型
修复苏泊尔电磁炉触摸故障一例