一篇文章看懂HLS中的数据类型.doc

上传人:白大夫 文档编号:3364950 上传时间:2019-08-18 格式:DOC 页数:2 大小:13KB
返回 下载 相关 举报
一篇文章看懂HLS中的数据类型.doc_第1页
第1页 / 共2页
亲,该文档总共2页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《一篇文章看懂HLS中的数据类型.doc》由会员分享,可在线阅读,更多相关《一篇文章看懂HLS中的数据类型.doc(2页珍藏版)》请在三一文库上搜索。

1、一篇文章看懂HLS中的数据类型Vivado HLS的输入可以是C+、C+或者System C,从而继承了这些语言本身就具有的数据类型,例如char、short int、int等整型或float、double等浮点数据类型。不难发现,对于整型,其表示的字长是以8为边界的,这实际上和真实的硬件模型不完全匹配。这一点也不难理解,例如HDL中会根据设计需求设定位宽,而这些位宽很多情形下并不是8-bit、16-bit或者32-bit。因此,HLS引入了任意精度(ArbitraryPrecision)的数据类型(对于SystemC,可查看Table 1-7, ug902)。以C+为例说明。整数1对于任意精

2、度整型数据类型,可通过ap_int声明位宽为W的有符号整数,或通过ap_uint声明位宽为W的无符号整数。需要添加头文件ap_int.h。定点数2对于任意精度的定点小数,可通过ap_fixed声明位宽为W,其中整数部分字长为I的有符号定点小数;或通过ap_ufixed声明位宽为W,其中整数部分字长为I的无符号定点小数。需要添加头文件ap_fixed.h。浮点数3对于浮点数据类型,除了float和double之外,Vivado HLS还引入了半精度浮点数half,需要添加头文件hls_half.h。该浮点数据类型为16-bit。技巧多种数据类型给用户提供了更多的选择,用户可根据实际需求选择可最佳匹配于硬件的数据类型。一个小的技巧是,把数据类型通过typedef定义在用户的头文件中。此外,在仿真时可采用float或double类型,以防止数据溢出,尽快完成算法功能的验证;之后再将设定为整型,观察是否有溢出,完成C综合。结论任意精度的数据类型可以完美地匹配硬件需求,同时还继承了原有数据类型所允许的操作。例如,对于两个13-bit的有符号整数相乘,不必把其定义为int类型,而是直接定义为ap_int,且可直接使用乘法运算符。这样做的最大好处就是更准确地获取资源利用率信息。注意在使用任意精度数据类型时要添加相应的头文件。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1