0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Vivado HLS能否取代HDL開(kāi)發(fā)

Hack電子 ? 來(lái)源:Hack電子 ? 2023-06-27 10:10 ? 次閱讀

大多數(shù)FPGA程序員認(rèn)為,高級(jí)工具總是發(fā)出更大的比特流,作為提高生產(chǎn)率的 "代價(jià)"。但是這總是真的嗎?

在本文中,我們展示了一個(gè)真實(shí)的例子,我們使用傳統(tǒng)的RTL/Verilog工具創(chuàng)建了一個(gè)普通的網(wǎng)絡(luò)函數(shù)(RSS),然后在相同的硬件上使用高級(jí)合成工具(HLS)來(lái)實(shí)現(xiàn)相同的功能。

我們發(fā)現(xiàn),令人驚訝的是:HLS方法實(shí)際上使用了更少的FPGA門和內(nèi)存。這好像和我們習(xí)慣的思維不太一致啊…

通過(guò)使用Vivado(Xilinx)或IntelQuartus)工具,F(xiàn)PGA開(kāi)發(fā)的HLS方法是只抽象出可以在C/C++環(huán)境中輕松表達(dá)的應(yīng)用程序的部分。

要想在HLS取得成功,重要的是要認(rèn)識(shí)到項(xiàng)目中哪些部分或模塊適合在HLS中實(shí)現(xiàn)?;緶?zhǔn)則可以概括如下(可能描述不太清楚準(zhǔn)確):

目標(biāo)用途一般是以高級(jí)語(yǔ)言開(kāi)始定義的IP塊。一個(gè)數(shù)學(xué)算法會(huì)很有效,或者像我們的RSS塊那樣,一些網(wǎng)絡(luò)協(xié)議處理。

另一類用途是定義不明確的塊,因此可能需要多輪的實(shí)現(xiàn)。這里最大的好處是允許HLS工具自動(dòng)對(duì)產(chǎn)生的本地FPGA代碼進(jìn)行流水線處理,通常比快速手工編碼流水線的階段要少。另外,當(dāng)需要修改手工編碼的流水線時(shí),一個(gè)并行路徑上的延遲變化會(huì)對(duì)所有的東西產(chǎn)生連鎖反應(yīng)。使用HLS工具自動(dòng)進(jìn)行第二次流水線,從頭開(kāi)始,消除了這種頭痛的問(wèn)題。

最后,HLS流程使不同F(xiàn)PGA品牌之間的代碼移植變得更加容易。這是因?yàn)镠LS會(huì)自動(dòng)生成適當(dāng)數(shù)量的流水線階段--這是你在使用Verilog或VHDL時(shí)需要手動(dòng)指定的。

目前HLS的局限性很明顯,它的范圍限于IP塊。應(yīng)用團(tuán)隊(duì)仍然需要其他組件的RTL。還應(yīng)該注意的是,對(duì)于最簡(jiǎn)單的代碼或主要由預(yù)先優(yōu)化的組件組成的大型設(shè)計(jì)來(lái)說(shuō),HLS是一個(gè)不太理想的選擇。

1. 用于做對(duì)比的應(yīng)用,F(xiàn)PGA上的聯(lián)網(wǎng)RSS

什么是RSS?RSS是 "接收方擴(kuò)展 "的意思。它是一種散列算法,用于在多個(gè)CPU上有效分配網(wǎng)絡(luò)數(shù)據(jù)包。RSS是現(xiàn)代以太網(wǎng)卡的一項(xiàng)功能,一般實(shí)現(xiàn)微軟定義的特定托普利茨哈希。

f521c4b4-148e-11ee-962d-dac502259ad0.jpg

SmartNIC Shell框架的實(shí)施實(shí)例框圖。這里的RSS塊被替換成了HLS實(shí)現(xiàn)。

2. 用RTL和HLS實(shí)現(xiàn)RSS的結(jié)果對(duì)比

我們?cè)u(píng)估的假設(shè)如下:本地FPGA編碼總是導(dǎo)致最小的資源使用。然而,BittWare的一位工程師對(duì)這一決定提出了質(zhì)疑,并在HLS中重新實(shí)現(xiàn)了RSS,以測(cè)試這一方法。他是對(duì)的,現(xiàn)在BittWare已經(jīng)用HLS代碼取代了我們SmartNIC Shell中的RSS模塊和解析器模塊。

f53b1bda-148e-11ee-962d-dac502259ad0.jpg

兩種實(shí)現(xiàn)方式的最大區(qū)別是Verilog/RTL版本使用了FIFO,而HLS C++版本沒(méi)有使用。我們很驚訝地看到,通過(guò)轉(zhuǎn)移到HLS,資源的使用量實(shí)際上下降了——這與我們預(yù)想的差異較大。

開(kāi)發(fā)時(shí)間呢?粗略地說(shuō),我們看到原生RTL版本的時(shí)間線為一個(gè)月,而HLS代碼在一周內(nèi)完成。

3. 總結(jié)

“今天的高層FPGA開(kāi)發(fā)工具被設(shè)計(jì)用來(lái)減少上市時(shí)間和對(duì)硬件工程師的依賴。然而,使用這些工具總是帶來(lái)應(yīng)用性能的妥協(xié)——無(wú)論是速度還是硅資源”。然而這種假設(shè)是錯(cuò)誤的。

我們發(fā)現(xiàn)使用HLS為BittWare的SmartNIC Shell開(kāi)發(fā)IP塊,將開(kāi)發(fā)時(shí)間從大約一個(gè)月縮短到一周。我們還發(fā)現(xiàn),它實(shí)際上使用了更少的門電路來(lái)實(shí)現(xiàn)。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • FPGA
    +關(guān)注

    關(guān)注

    1625

    文章

    21620

    瀏覽量

    601241
  • Verilog
    +關(guān)注

    關(guān)注

    28

    文章

    1343

    瀏覽量

    109925
  • HDL
    HDL
    +關(guān)注

    關(guān)注

    8

    文章

    326

    瀏覽量

    47307
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4283

    瀏覽量

    62325
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    804

    瀏覽量

    66224

原文標(biāo)題:Vivado HLS 能否取代HDL開(kāi)發(fā)

文章出處:【微信號(hào):Hack電子,微信公眾號(hào):Hack電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    探索Vivado HLS設(shè)計(jì)流,Vivado HLS高層次綜合設(shè)計(jì)

    作者:Mculover666 1.實(shí)驗(yàn)?zāi)康?通過(guò)例程探索Vivado HLS設(shè)計(jì)流 用圖形用戶界面和TCL腳本兩種方式創(chuàng)建Vivado HLS項(xiàng)目 用各種
    的頭像 發(fā)表于 12-21 16:27 ?3541次閱讀

    請(qǐng)問(wèn)如何只下載Vivado HLS 2015.2

    嗨伙計(jì),在我的PC Vivado設(shè)計(jì)套件2015.2和SDK 2015.2工作,但只有vivado HLS 2015.2沒(méi)有打開(kāi),這就是為什么我想重新安裝Vivado
    發(fā)表于 12-27 10:57

    Vivado HLS設(shè)計(jì)流的相關(guān)資料分享

    1.實(shí)驗(yàn)?zāi)康耐ㄟ^(guò)例程探索Vivado HLS設(shè)計(jì)流用圖形用戶界面和TCL腳本兩種方式創(chuàng)建Vivado HLS項(xiàng)目用各種HLS指令綜合接口優(yōu)化
    發(fā)表于 11-11 07:09

    嵌入式硬件開(kāi)發(fā)學(xué)習(xí)教程——Xilinx Vivado HLS案例 (流程說(shuō)明)

    前 言本文主要介紹HLS案例的使用說(shuō)明,適用開(kāi)發(fā)環(huán)境:Windows 7/10 64bit、Xilinx Vivado 2017.4、Xilinx Vivado
    發(fā)表于 11-11 09:38

    Hackaday讀者有話說(shuō):Vivado HLS使用經(jīng)驗(yàn)分享

    ,Xilinx Vivado HLS是一個(gè)高級(jí)綜合工具,能夠?qū)語(yǔ)言轉(zhuǎn)換成硬件描述語(yǔ)言(HDL),也就是說(shuō)我們可以用C語(yǔ)言來(lái)實(shí)現(xiàn)HDL模塊編程了。 圖1
    發(fā)表于 02-08 20:01 ?647次閱讀
    Hackaday讀者有話說(shuō):<b class='flag-5'>Vivado</b> <b class='flag-5'>HLS</b>使用經(jīng)驗(yàn)分享

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

    1 Vivado HLS簡(jiǎn)介 2創(chuàng)建一個(gè)Vivado-HLS工程 2.1打開(kāi)Vivado HLS GUI 2.2創(chuàng)建新工程 在 Welcom
    發(fā)表于 12-04 10:07 ?0次下載
    用<b class='flag-5'>Vivado-HLS</b>實(shí)現(xiàn)低latency 除法器

    介紹使用Vivado HLS時(shí)的幾個(gè)誤區(qū)

    在實(shí)際工程中,如何利用好這一工具仍值得考究。本文將介紹使用Vivado HLS時(shí)的幾個(gè)誤區(qū)。
    的頭像 發(fā)表于 01-10 14:33 ?2w次閱讀
    介紹使用<b class='flag-5'>Vivado</b> <b class='flag-5'>HLS</b>時(shí)的幾個(gè)誤區(qū)

    基于Vivado HLS的計(jì)算機(jī)視覺(jué)開(kāi)發(fā)

    OPENCV(Open Source Computer Vision)被廣泛的使用在計(jì)算機(jī)視覺(jué)開(kāi)發(fā)上。使用Vivado HLS視頻庫(kù)在zynq-7000全可編程soc上加速OPENCV 應(yīng)用的
    發(fā)表于 11-10 10:47 ?1445次閱讀

    如何創(chuàng)建Vivado HLS項(xiàng)目

    了解如何使用GUI界面創(chuàng)建Vivado HLS項(xiàng)目,編譯和執(zhí)行C,C ++或SystemC算法,將C設(shè)計(jì)合成到RTL實(shí)現(xiàn),查看報(bào)告并了解輸出文件。
    的頭像 發(fā)表于 11-20 06:09 ?3888次閱讀

    如何使用Tcl命令語(yǔ)言讓Vivado HLS運(yùn)作

    了解如何使用Tcl命令語(yǔ)言以批處理模式運(yùn)行Vivado HLS并提高工作效率。 該視頻演示了如何從現(xiàn)有的Vivado HLS設(shè)計(jì)輕松創(chuàng)建新的Tcl批處理腳本。
    的頭像 發(fā)表于 11-20 06:06 ?3149次閱讀

    關(guān)于Vivado HLS錯(cuò)誤理解

    盡管 Vivado HLS支持C、C++和System C,但支持力度是不一樣的。在v2017.4版本ug871 第56頁(yè)有如下描述。可見(jiàn),當(dāng)設(shè)計(jì)中如果使用到任意精度的數(shù)據(jù)類型時(shí),采用C++ 和System C 是可以使用Vivado
    的頭像 發(fā)表于 07-29 11:07 ?5451次閱讀
    關(guān)于<b class='flag-5'>Vivado</b> <b class='flag-5'>HLS</b>錯(cuò)誤理解

    極客對(duì)Xilinx Vivado HLS工具使用經(jīng)驗(yàn)和心得

    介紹了如何利用Vivado HLS生成FIR濾波算法的HDL代碼,并將代碼添加到ISE工程中,經(jīng)過(guò)綜合實(shí)現(xiàn)布局布線等操作后生成FPGA配置文件,下載到FPGA開(kāi)發(fā)板中,Darren采用
    的頭像 發(fā)表于 07-30 17:04 ?4840次閱讀

    Vivado HDL編寫示例

    Vivado 軟件提供了HDL編寫中常用的示例,旨在幫助初學(xué)者更好地理解和掌握HDL編程,這里分享一下verilog代碼示例。
    的頭像 發(fā)表于 05-16 16:58 ?983次閱讀

    UltraFast Vivado HLS方法指南

    電子發(fā)燒友網(wǎng)站提供《UltraFast Vivado HLS方法指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-13 11:23 ?1次下載
    UltraFast <b class='flag-5'>Vivado</b> <b class='flag-5'>HLS</b>方法指南

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

    電子發(fā)燒友網(wǎng)站提供《將VIVADO HLS設(shè)計(jì)移植到CATAPULT HLS平臺(tái).pdf》資料免費(fèi)下載
    發(fā)表于 09-13 09:12 ?2次下載
    將<b class='flag-5'>VIVADO</b> <b class='flag-5'>HLS</b>設(shè)計(jì)移植到CATAPULT <b class='flag-5'>HLS</b>平臺(tái)