HLS 任意精度的数据类型
1、传统C语言支持的数据类型,Vivado HLS不支持char16_t/char32_t两种字符型数据类型。
2、从硬件角度看C语言的数据类型,较浪费资源。C语言中的数据类型以8bit为界限,分为8bit、16bit、32bit、64bit,相对于传统的HDL语言,相对死板。若想计算一个18bitx18bit的乘法,就需要将两个数据声明为32bit,得到64bit结果,比较浪费资源。
3、因此,Vivado HLS中使用了任意精度数据类型。
4、使用任意精度数据类型的好处。从同一工程的两种solution可看出,使用任意精度数据类型,对综合后的Timing、Latency、资源使用情况都有明显改善。
Arbitrary:任意的
accuracy:精确的、准确的
5、当声明一个任意精度数据类型的时候,最好在头文件中声明,这样便于修改和查错。
6、sizeof()使用。对于任意精度的数据类型,sizeof()同样有效。