目前,在高層次綜合(HLS, High Level Synthesis)領域,Vivado HLS可謂獨樹一幟。它有效地拉近了軟件工程師與FPGA之間的距離,加速了算法開發的進程,縮短了產品上市時間。對于工程師,尤其是軟件工程師而言是一個福音。在實際工程中,如何利用好這一工具仍值得考究。本文將介紹使用Vivado HLS時的幾個誤區。
誤區1
只要是C或者C++描述的算法都是可綜合(可轉換成RTL)的。
HLS的可綜合功能是有限的,并不是所有的C或者C++語句都可轉換成相應的RTL代碼。下面這些情形是不可綜合的。1. 動態內存分配2. 涉及操作系統層面的操作3. 遞歸函數4. 數組規模可變
誤區2
既然Vivado HLS支持C、C++和System C,那么用三者任意一種都行。
盡管 Vivado HLS支持C、C++和System C,但支持力度是不一樣的。在v2017.4版本ug871 第56頁有如下描述。可見,當設計中如果使用到任意精度的數據類型時,采用C++ 和System C 是可以使用Vivado HLS的調試環境的,但是C 描述的算法卻是不可以的。而實際上很多真實的硬件模型都要使用任意進度的數據類型,所以要想使用Vivado HLS 的調試功能, 建議最好采用 C++和System
誤區3
只要有源代碼即可,沒有Test bench也行。
在HLS設計開發中,C Test bench起著舉足輕重的作用。C層面算法功能的驗證需要用到它;當生成RTL代碼時,C和RTL的協同仿真也要用到它。如下圖所示。實際上,協同仿真時,RTL代碼的輸入激勵就是由C Test bench生成的。由此可見,C Test bench是整個設計不可或缺的一部分。
-
FPGA
+關注
關注
1629文章
21736瀏覽量
603384 -
C++
+關注
關注
22文章
2108瀏覽量
73651 -
Vivado HLS
+關注
關注
0文章
14瀏覽量
2032
原文標題:關于Vivado HLS 的三大誤讀
文章出處:【微信號:FPGA-EETrend,微信公眾號:FPGA開發圈】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論