我是靠谱客的博主 无奈眼神,最近开发中收集的这篇文章主要介绍HLS开发学习-04- 数据类型的处理--任意精度数据类型数据类型为什么要进行任意精度处理任意精度数据类型使用任意精度的数据类型的对比小技巧:在头文件中定义数据类型使用sizeof()函数总结,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
数据类型
下图给出了C和C++的数据类型,同样也指出了在HLS中不支持的数据类型。
为什么要进行任意精度处理
在C语言的数据类型下,比特都是给定的8,16,32,64。而不同于FPGA内部可以实现任意位宽的一个调配。所以在这个标准的下,FPGA内部的资源可能会造成浪费。
在下图的PPT中,高亚军老师也给出了一个18*18的乘法器的例子,输入的端口为18比特仅仅比16多了2个比特,就浪费地使用了32位的资源这不是我们FPGA所期望的。
所以在HLS中我们就使用工具对精度进行了任意分配,以实现最大效率的利用资源。
任意精度数据类型
图中给出了常用的任意精度数据类型的表示方式,当然在使用时要进行头文件的包含。
使用任意精度的数据类型的对比
同样以前面的乘法器为例子对比结果如图,实现的结果中我们可以看出,任意精度的数据类型有更高的时钟频率,也就是我们的设计可以跑到更高的时钟。更快的数据吞吐,以及使用了更少的资源。
小技巧:在头文件中定义数据类型
- 让我们的设计可以更高效的进行修改,方便debug
- 同时在图中可以看到HLS的人性化设计,在Outline中对我们定义并使用到的数据类型进行了高亮显示,方便我们进行设计。
使用sizeof()函数
总结
最后
以上就是无奈眼神为你收集整理的HLS开发学习-04- 数据类型的处理--任意精度数据类型数据类型为什么要进行任意精度处理任意精度数据类型使用任意精度的数据类型的对比小技巧:在头文件中定义数据类型使用sizeof()函数总结的全部内容,希望文章能够帮你解决HLS开发学习-04- 数据类型的处理--任意精度数据类型数据类型为什么要进行任意精度处理任意精度数据类型使用任意精度的数据类型的对比小技巧:在头文件中定义数据类型使用sizeof()函数总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复