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