目前,在高層次綜合(HLS, High Level Synthesis)領(lǐng)域,Vivado HLS可謂獨樹一幟。它有效地拉近了軟件工程師與FPGA之間的距離,加速了算法開發(fā)的進程,縮短了產(chǎn)品上市時間。對于工程師,尤其是軟件工程師而言是一個福音。在實際工程中,如何利用好這一工具仍值得考究。本文將介紹使用Vivado HLS時的幾個誤區(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ī)模可變
誤區(qū)2
既然Vivado HLS支持C、C++和System C,那么用三者任意一種都行。
盡管 Vivado HLS支持C、C++和System C,但支持力度是不一樣的。在v2017.4版本ug871 第56頁有如下描述??梢姡?dāng)設(shè)計中如果使用到任意精度的數(shù)據(jù)類型時,采用C++ 和System C 是可以使用Vivado HLS的調(diào)試環(huán)境的,但是C 描述的算法卻是不可以的。而實際上很多真實的硬件模型都要使用任意進度的數(shù)據(jù)類型,所以要想使用Vivado HLS 的調(diào)試功能, 建議最好采用 C++和System
誤區(qū)3
只要有源代碼即可,沒有Test bench也行。
在HLS設(shè)計開發(fā)中,C Test bench起著舉足輕重的作用。C層面算法功能的驗證需要用到它;當(dāng)生成RTL代碼時,C和RTL的協(xié)同仿真也要用到它。如下圖所示。實際上,協(xié)同仿真時,RTL代碼的輸入激勵就是由C Test bench生成的。由此可見,C Test bench是整個設(shè)計不可或缺的一部分。
-
FPGA
+關(guān)注
關(guān)注
1638文章
21861瀏覽量
609966 -
C++
+關(guān)注
關(guān)注
22文章
2116瀏覽量
74369 -
Vivado HLS
+關(guān)注
關(guān)注
0文章
14瀏覽量
2069
原文標(biāo)題:關(guān)于Vivado HLS 的三大誤讀
文章出處:【微信號:FPGA-EETrend,微信公眾號:FPGA開發(fā)圈】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
探索Vivado HLS設(shè)計流,Vivado HLS高層次綜合設(shè)計
請問如何只下載Vivado HLS 2015.2
vivado hls axi接口問題
Vivado HLS設(shè)計流的相關(guān)資料分享
使用Vivado高層次綜合 (HLS)進行FPGA設(shè)計的簡介
Hackaday讀者有話說:Vivado HLS使用經(jīng)驗分享

用Vivado-HLS實現(xiàn)低latency 除法器

如何創(chuàng)建Vivado HLS項目
如何使用Tcl命令語言讓Vivado HLS運作
關(guān)于Vivado HLS錯誤理解

Vivado HLS和Vitis HLS 兩者之間有什么區(qū)別
UltraFast Vivado HLS方法指南

將VIVADO HLS設(shè)計移植到CATAPULT HLS平臺

評論