HLS 任意精度的数据类型

1、传统C语言支持的数据类型,Vivado HLS不支持char16_t/char32_t两种字符型数据类型。
图1HLS 任意精度的数据类型

2、从硬件角度看C语言的数据类型,较浪费资源。C语言中的数据类型以8bit为界限,分为8bit、16bit、32bit、64bit,相对于传统的HDL语言,相对死板。若想计算一个18bitx18bit的乘法,就需要将两个数据声明为32bit,得到64bit结果,比较浪费资源。
HLS 任意精度的数据类型

3、因此,Vivado HLS中使用了任意精度数据类型。 
HLS 任意精度的数据类型

4、使用任意精度数据类型的好处。从同一工程的两种solution可看出,使用任意精度数据类型,对综合后的Timing、Latency、资源使用情况都有明显改善。
Arbitrary:任意的
accuracy:精确的、准确的
HLS 任意精度的数据类型

5、当声明一个任意精度数据类型的时候,最好在头文件中声明,这样便于修改和查错。
HLS 任意精度的数据类型

6、sizeof()使用。对于任意精度的数据类型,sizeof()同样有效。
HLS 任意精度的数据类型

HLS 任意精度的数据类型
7、MCSV软件也可设置任意精度数据类型。
HLS 任意精度的数据类型

HLS 任意精度的数据类型
8、总结
HLS 任意精度的数据类型