admin 管理员组文章数量: 1184232
2024年4月16日发(作者:sql查询主要包括哪些查询)
HLS 使用整理
1 任意精度数据类型
1.1 HLS新的数据类型
C/C++数据类型:
图 1.1 C/C++数据类型
其中HLS中不支持char16_t和char32_t两种数据类型。在C/C++中,所有
的数据位宽都是基于8-bit,即位宽都是8-bit的倍数,当在逻辑中使用时,会明
显造成资源的浪费,因此HLS中引入了Arbitrary Precision Data Type。
HLS中的Arbitraty Precision Data Types:
图 1.2 HLS中任意精度数据类型和所需头文件
其中W表示数据长度;I表示整数长度;Q表示量化方式;默认的为
AP_TRN_ZERO,即Truncation to zero方式;O表示溢出模式,默认为AP_WPAP即
Wrap Around方式。
图 1.3 AP类型的具体解释
eg1.截位方式的影响
ap_fixed<3,2> var1 = 1.25;
ap_fixed<3,2,AP_RDN> var2 = 1.25;
1.25的二进制表示为:0 1.0 1,按第一种方式默认的TRN模式,则会将后面的1
直接砍掉,剩下0 1.0,得到实际的结果是1.0;第二种方式的RDN是4舍5入
的方式,后面的1进位到前一位,得0 1.1,实际结果为1.5。
eg2.溢出方式的影响
ap_fixed<4,4> var3 = 19;
ap_fixed<4,4,AP_RND,AP_SAT> var4 = 19;
19的二进制表示为0 1 0 0 1 1,第一种方式截取低4位,得到0011,对应10进
制3;第二种方式中,由于19大于4 bits无符号数能表示的最大范围,因此按最
大值取,得15。
可以使用sizeof()函数来查看数据所占用的空间大小。
eg. ap_int<1> a; a占用1个Byte
ap_int<8> b; b也占用1个Byte
在VS中也可以使用HLS的任意数据类型,只需将VS工程的库路径设置为
HLS的路径即可。当头文件中包含
里面包含的几个其他的头文件中的错误,这是将hls_math.h改为cmath,再综合
就没有错误了。
版权声明:本文标题:HLS使用整理 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1713213357a624206.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论