HLS 任意精度的數據類型

1、傳統C語言支持的數據類型,Vivado HLS不支持char16_t/char32_t兩種字符型數據類型。
圖1Vivado-HLS學習--如何處理任意精度的數據類型

2、從硬件角度看C語言的數據類型,較浪費資源。C語言中的數據類型以8bit爲界限,分爲8bit、16bit、32bit、64bit,相對於傳統的HDL語言,相對死板。若想計算一個18bitx18bit的乘法,就需要將兩個數據聲明爲32bit,得到64bit結果,比較浪費資源。
Vivado-HLS學習--如何處理任意精度的數據類型

3、因此,Vivado HLS中使用了任意精度數據類型。 
Vivado-HLS學習--如何處理任意精度的數據類型

4、使用任意精度數據類型的好處。從同一工程的兩種solution可看出,使用任意精度數據類型,對綜合後的Timing、Latency、資源使用情況都有明顯改善。
Arbitrary:任意的
accuracy:精確的、準確的
Vivado-HLS學習--如何處理任意精度的數據類型

5、當聲明一個任意精度數據類型的時候,最好在頭文件中聲明,這樣便於修改和查錯。
Vivado-HLS學習--如何處理任意精度的數據類型

6、sizeof()使用。對於任意精度的數據類型,sizeof()同樣有效。
Vivado-HLS學習--如何處理任意精度的數據類型

Vivado-HLS學習--如何處理任意精度的數據類型
7、MCSV軟件也可設置任意精度數據類型。
Vivado-HLS學習--如何處理任意精度的數據類型

Vivado-HLS學習--如何處理任意精度的數據類型
8、總結
Vivado-HLS學習--如何處理任意精度的數據類型

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章