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

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

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

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

Xilinx賽靈思官微 ? 來源:djl ? 作者:賽靈思 ? 2019-07-30 17:04 ? 次閱讀

眾所周知 Hackaday.com 網(wǎng)站上聚集著眾多極客(Geeker),他們打破傳統(tǒng),標(biāo)新立異,敢于嘗試新的東西,今天這篇文章搜集了這些極客對Xilinx Vivado HLS工具使用經(jīng)驗和心得。

Xilinx Vivado HLS是一個高級綜合工具,能夠?qū)?C 語言轉(zhuǎn)換成硬件描述語言(HDL),也就是說我們可以用 C 語言來實現(xiàn) HDL 模塊編程了。


圖1 Vivado HLS工作流程

第一位 Hacker是來自新西蘭的 Mike Field,他是一個硬件Hacker,還建立了自己的網(wǎng)站( www.hamsterworks.com ),他詳細(xì)總結(jié)了Vivado HLS的使用步驟,他認(rèn)為這個很有趣,值得每個人去嘗試,Vivado HLS是一個IDE開發(fā)環(huán)境,開發(fā)人員編寫C工程代碼,測試代碼,然后利用HLS轉(zhuǎn)換為HDL硬件語言邏輯。


圖2 Xilinx贈送給Mike Field的MicroZed開發(fā)套件

Tips技巧 作者總結(jié)如下:

1. HLS工具會將C語言代碼轉(zhuǎn)換成偽機(jī)器代碼,都可以用FPGA邏輯(乘,加,遞增等)來實現(xiàn)。

2. 循環(huán)操作代碼分析,主要是根據(jù)語法。不能夠被充分執(zhí)行的循環(huán)會導(dǎo)致吞吐量的瓶頸,如果一個復(fù)雜的乘運(yùn)算要花費(fèi)30個周期,并且你要執(zhí)行256次那么延遲時間就會介于30和7680周期之間。然而如果你使用原語指令(#pragma HLS_PIPELINE)將其展開256次,那么實現(xiàn)方式就會變成7680級流水線,每個循環(huán)還可以接受新的數(shù)據(jù)。

3. 函數(shù)調(diào)用可能會引起分離的邏輯實例,支持子函數(shù)的創(chuàng)建,也可能引起一系列仲裁接口用于訪問單個函數(shù)邏輯實例。

4. 對于這些偽機(jī)器代碼如何連接會生成一個計劃時間表,并且會充分考慮到期望的性能約束條件(時鐘速度等)。

5. 然后代碼生成器會將偽機(jī)器代碼映射為HDL邏輯邏輯代碼(Verilog或VHDL),使用簡單的流水線接口來處理參數(shù)和和、返回值。其實你還可以添加其它語法或者數(shù)據(jù)類型來構(gòu)造AXI協(xié)議接口的模塊。

6. 最后你就可以將轉(zhuǎn)換后的代碼或者IP核添加到傳統(tǒng)的HDL工程中。

看起來很簡單,其實最重要的是最后我們要進(jìn)行代碼優(yōu)化,排除bug。我們可以定制很多數(shù)據(jù)類型(n位的整數(shù),或者固定精度的整數(shù)等),靈活的使用這些數(shù)據(jù)類型,可以幫助我們精簡邏輯代碼,提升系統(tǒng)設(shè)計性能。

第二位 Hacker是 Darren,他直接錄制了一個說明視頻。介紹了如何利用Vivado HLS生成FIR濾波算法的HDL代碼,并將代碼添加到ISE工程中,經(jīng)過綜合實現(xiàn)布局布線等操作后生成FPGA配置文件,下載到FPGA開發(fā)板中,Darren采用的目標(biāo)板卡是Spartan-3 FPGA。


圖3 基于Vivado HLS生成FIR濾波算法

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

    關(guān)注

    32

    文章

    1794

    瀏覽量

    131371
  • C++
    C++
    +關(guān)注

    關(guān)注

    22

    文章

    2113

    瀏覽量

    73742
  • 極客
    +關(guān)注

    關(guān)注

    0

    文章

    12

    瀏覽量

    8011
收藏 人收藏

    評論

    相關(guān)推薦

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

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

    熟悉Vivado HLS基本功能要多少時間?

    您好Xilinx的用戶和員工,我們正在考慮購買Zynq 7000用于機(jī)器視覺任務(wù)。我們沒有編程FPGA的經(jīng)驗,并希望使用Vivado HLS來指導(dǎo)和加速我們的工作。關(guān)于這種方法的一些問
    發(fā)表于 03-25 09:04

    Vivado HLS許可證問題如何解決

    我在Vivado HLS中有以下錯誤的合成。我試圖更新許可證文件但沒有成功。請給我一個建議。@E [HLS-72]許可證簽出不成功。確??梢栽L問許可證或通過環(huán)境變量指定適當(dāng)?shù)脑S可證。 執(zhí)行
    發(fā)表于 05-20 09:13

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

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

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

    SDK 2017.4。Xilinx Vivado HLS(High-Level Synthesis,高層次綜合)工具支持將C、C++等語言轉(zhuǎn)化成硬件描述語言,同時支持基于OpenCL
    發(fā)表于 11-11 09:38

    Vivado環(huán)境下如何在IP Integrator中正確使用HLS IP

    testbench來驗證設(shè)計。 Integrate帶有Xilinx IP Block的 HLS IP 這里展示了在IP Integrator中,如何將兩個HLS IP blocks跟Xili
    發(fā)表于 02-07 17:59 ?4434次閱讀
    <b class='flag-5'>Vivado</b>環(huán)境下如何在IP Integrator中正確使用<b class='flag-5'>HLS</b> IP

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

    眾所周知 Hackaday.com 網(wǎng)站上聚集著眾多極(Geeker),他們打破傳統(tǒng),標(biāo)新立異,敢于嘗試新的東西,今天這篇文章搜集了這些Xilinx
    發(fā)表于 02-08 20:01 ?690次閱讀
    Hackaday讀者有話說:<b class='flag-5'>Vivado</b> <b class='flag-5'>HLS</b>使用<b class='flag-5'>經(jīng)驗</b>分享

    Xilinx Vivado HLS可以快速、高效地實現(xiàn)QRD矩陣分解

    使用Xilinx Vivado HLSVivado 高層次綜合)工具實現(xiàn)浮點(diǎn)復(fù)數(shù)QRD矩陣分解并提升開發(fā)效率。使用VivadoHLS可以快
    發(fā)表于 11-17 17:47 ?3838次閱讀
    用<b class='flag-5'>Xilinx</b> <b class='flag-5'>Vivado</b> <b class='flag-5'>HLS</b>可以快速、高效地實現(xiàn)QRD矩陣分解

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

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

    TCL腳本簡介 vivado hls 的設(shè)計流程

    Vivado HLSXilinx 提供的一個工具,是 Vivado Design Suite 的一部分,能把基于 C 的設(shè)計 (C、C
    發(fā)表于 06-05 10:31 ?6684次閱讀
    TCL腳本簡介 <b class='flag-5'>vivado</b> <b class='flag-5'>hls</b> 的設(shè)計流程

    FPGA設(shè)計中的HLS 工具應(yīng)用

    在集成電路行業(yè)飛速發(fā)展的今天,縮短產(chǎn)品開發(fā)的周期而又不犧牲驗證過程,這不可避免地成為了商業(yè)市場的一個關(guān)鍵因素。Xilinx Vivado High Level Synthesis (即Vivado
    發(fā)表于 06-04 01:43 ?7431次閱讀
    FPGA設(shè)計中的<b class='flag-5'>HLS</b> <b class='flag-5'>工具</b>應(yīng)用

    XIlinx利用HLS進(jìn)行加速設(shè)計進(jìn)度

    接著開始正文。據(jù)觀察,HLS的發(fā)展呈現(xiàn)愈演愈烈的趨勢,隨著Xilinx Vivado HLS的推出,intel也快馬加鞭的推出了其HLS
    的頭像 發(fā)表于 07-31 09:45 ?6747次閱讀
    <b class='flag-5'>XIlinx</b>利用<b class='flag-5'>HLS</b>進(jìn)行加速設(shè)計進(jìn)度

    Vitis HLS知識庫總結(jié)

    對于AMD Xilinx而言,Vivado 2019.1之前(包括),HLS工具Vivado HLS
    的頭像 發(fā)表于 09-02 09:06 ?3543次閱讀

    HLS最全知識庫

    對于AMD Xilinx而言,Vivado 2019.1之前(包括),HLS工具Vivado HLS
    的頭像 發(fā)表于 01-15 11:27 ?2696次閱讀

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

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