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()同樣有效。