目前,在高層次綜合(HLS, High Level Synthesis)領(lǐng)域,Vivado HLS可謂獨(dú)樹(shù)一幟。它有效地拉近了軟件工程師與FPGA之間的距離,加速了算法開(kāi)發(fā)的進(jìn)程,縮短了產(chǎn)品上市時(shí)間。對(duì)于工程師,尤其是軟件工程師而言是一個(gè)福音。在實(shí)際工程中,如何利用好這一工具仍值得考究。本文將介紹使用Vivado HLS時(shí)的幾個(gè)誤區(qū)。
誤讀1:只要是 C/C++ 描述的算法都是可綜合(可轉(zhuǎn)換成 RTL)的。
HLS的可綜合功能是有限的,并不是所有的C或者C++語(yǔ)句都可轉(zhuǎn)換成相應(yīng)的RTL代碼。下面這些情形是不可綜合的。
○ 動(dòng)態(tài)內(nèi)存分配
○涉及操作系統(tǒng)層面的操作
○遞歸函數(shù)
○數(shù)組規(guī)??勺?/p>
誤讀2:既然Vivado HLS支持C、C++和System C,那么用三者任意一種都行。
盡管 Vivado HLS支持C、C++和System C,但支持力度是不一樣的。在v2017.4版本ug871 第56頁(yè)有如下描述??梢?jiàn),當(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 C。
誤讀3:只要有源代碼即可,沒(méi)有Test bench也行。
在HLS設(shè)計(jì)開(kāi)發(fā)中,C Test bench起著舉足輕重的作用。C層面算法功能的驗(yàn)證需要用到它;當(dāng)生成RTL代碼時(shí),C和RTL的協(xié)同仿真也要用到它。如下圖所示。實(shí)際上,協(xié)同仿真時(shí),RTL代碼的輸入激勵(lì)就是由C Test bench生成的。由此可見(jiàn),C Test bench是整個(gè)設(shè)計(jì)不可或缺的一部分。
-
C++
+關(guān)注
關(guān)注
22文章
2116瀏覽量
74731 -
源代碼
+關(guān)注
關(guān)注
96文章
2950瀏覽量
67789
發(fā)布評(píng)論請(qǐng)先 登錄
探索Vivado HLS設(shè)計(jì)流,Vivado HLS高層次綜合設(shè)計(jì)
vivado HLS 綜合錯(cuò)誤
請(qǐng)問(wèn)如何只下載Vivado HLS 2015.2
來(lái)自vivado hls的RTL可以由Design Compiler進(jìn)行綜合嗎?
Vivado HLS許可證問(wèn)題如何解決
vivado HLS出現(xiàn)錯(cuò)誤怎么處理?
Vivado HLS設(shè)計(jì)流的相關(guān)資料分享
Hackaday讀者有話說(shuō):Vivado HLS使用經(jīng)驗(yàn)分享

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

如何創(chuàng)建Vivado HLS項(xiàng)目
如何使用Tcl命令語(yǔ)言讓Vivado HLS運(yùn)作
UltraFast Vivado HLS方法指南

將VIVADO HLS設(shè)計(jì)移植到CATAPULT HLS平臺(tái)

評(píng)論