HLS開發學習-04- 數據類型的處理--任意精度數據類型

數據類型

下圖給出了C和C++的數據類型,同樣也指出了在HLS中不支持的數據類型。
在這裏插入圖片描述

爲什麼要進行任意精度處理

在C語言的數據類型下,比特都是給定的8,16,32,64。而不同於FPGA內部可以實現任意位寬的一個調配。所以在這個標準的下,FPGA內部的資源可能會造成浪費。
在下圖的PPT中,高亞軍老師也給出了一個18*18的乘法器的例子,輸入的端口爲18比特僅僅比16多了2個比特,就浪費地使用了32位的資源這不是我們FPGA所期望的。
所以在HLS中我們就使用工具對精度進行了任意分配,以實現最大效率的利用資源。
在這裏插入圖片描述

任意精度數據類型

圖中給出了常用的任意精度數據類型的表示方式,當然在使用時要進行頭文件的包含。
在這裏插入圖片描述

使用任意精度的數據類型的對比

同樣以前面的乘法器爲例子對比結果如圖,實現的結果中我們可以看出,任意精度的數據類型有更高的時鐘頻率,也就是我們的設計可以跑到更高的時鐘。更快的數據吞吐,以及使用了更少的資源。
在這裏插入圖片描述

小技巧:在頭文件中定義數據類型

  1. 讓我們的設計可以更高效的進行修改,方便debug
  2. 同時在圖中可以看到HLS的人性化設計,在Outline中對我們定義並使用到的數據類型進行了高亮顯示,方便我們進行設計。

在這裏插入圖片描述

使用sizeof()函數

在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述

總結

在這裏插入圖片描述

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