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設(shè)計(jì)流,Vivado HLS高層次綜合設(shè)計(jì)

電子設(shè)計(jì) ? 來源:csdn ? 作者:Mculover666 ? 2020-12-21 16:27 ? 次閱讀

作者:Mculover666

1.實(shí)驗(yàn)?zāi)康?br /> 通過例程探索Vivado HLS設(shè)計(jì)流

  • 用圖形用戶界面和TCL腳本兩種方式創(chuàng)建Vivado HLS項(xiàng)目
  • 用各種HLS指令綜合接口
  • 優(yōu)化Vivado HLS設(shè)計(jì)來滿足各種約束
  • 用不用的指令來探索多個(gè)HLS解決方案

2.實(shí)驗(yàn)內(nèi)容
實(shí)驗(yàn)中文件中包含一個(gè)矩陣乘法器的實(shí)現(xiàn),實(shí)現(xiàn)兩個(gè)矩陣inA和inB相乘得出結(jié)果,并且提供了一個(gè)包含了計(jì)算結(jié)果的testbench文件來與所得結(jié)果進(jìn)行對(duì)比驗(yàn)證。

3.實(shí)驗(yàn)步驟
3.1.在Vivado HLS GUI界面中創(chuàng)建項(xiàng)目
3.1.1.啟動(dòng)Vivado HLS 2018.1

3.1.2.創(chuàng)建一個(gè)新的工程


添加提前創(chuàng)建好的源文件進(jìn)來,因?yàn)槲覀兲剿鞯氖窃O(shè)計(jì)流而不是編程

添加提前創(chuàng)建好的測(cè)試文件進(jìn)來:

o4YBAF9uG1yAVAdRAACEd52I2-U679.png

對(duì)于具體的FPGA進(jìn)行解決方案配置,如圖所示:

pIYBAF9uG16ADFyKAAEIqpr1vRI119.png


工程創(chuàng)建完成,綜合界面如圖所示:

3.2.在Vivado HLS 命令行中快速創(chuàng)建項(xiàng)目
在3.1節(jié)中采用GUI界面完成了創(chuàng)建工程的工作,這個(gè)工程命名和添加文件創(chuàng)建工程的工作可以由一個(gè)TCL腳本完成,可以大幅提高我們的效率~

3.2.1.打開Vivado HLS 命令行界面


3.2.2.編寫創(chuàng)建工程TCL腳本
新建一個(gè)文件run_hls_pynq.tcl,然后編寫以下工程配置:
# 創(chuàng)建工程
open_project -reset matrix_mult_prj

# 添加源文件和測(cè)試文件
add_files matrix_mult.cpp
add_files matrix_mult.h
add_files -tb matrix_mult_test.cpp

# 設(shè)置工程頂層
set_top matrix_mult

# 創(chuàng)建解決方案
open_solution -reset solution1

# 選擇具體的FPGA芯片配置
set_part {xc7z010clg400-1}
create_clock -period 5

# 模擬C代碼
csim_design

exit

3.2.3.在Vivado HLS命令行運(yùn)行TCL腳本
在剛剛打開的Vivado HLS命令行界面中輸入cd ,然后輸入目錄所在盤符,進(jìn)入目錄后使用命令vivado_hls -f run_hls_pynq.tcl即可運(yùn)行腳本,完整過程如圖所示:

這樣一個(gè)工程就創(chuàng)建好了;

3.2.4.在Vivado HLS命令行打開創(chuàng)建的工程
使用命令vivado_hls -p matrix_mult_prj即可在GUI界面打開工程,如圖:


3.3.Vidavo HLS中的設(shè)計(jì)優(yōu)化
3.3.1.文件作用c

  • matrix_mult.cpp 包含了迭代計(jì)算矩陣乘法的代碼
  • matrix_mult.h 包含了宏定義和函數(shù)聲明
  • matrix_mult_test.cpp 測(cè)試文件,包含了使用HLS硬件解決方案計(jì)算和軟件計(jì)算的結(jié)果,并計(jì)算驗(yàn)證

3.3.2.運(yùn)行C仿真
點(diǎn)擊Run C Simulation按鈕,然后不用選擇,直接下一步,可以看到控制臺(tái)輸出:


o4YBAF9uG3SAYxETAAEjf9_iBw0327.png

3.3.2.使用HLS綜合C++代碼
點(diǎn)擊C Synthesis按鈕,Vivado HLS會(huì)開始綜合C++代碼,綜合完成后會(huì)自動(dòng)打開綜合報(bào)告,其中詳細(xì)的描述了設(shè)計(jì)的時(shí)序以及FPGA資源占用估算等:

o4YBAF9uG3WAZYnAAADVlQ88W00053.png

3.3.3.C/RTL共同協(xié)作
點(diǎn)擊Run C/RTL Cosimulation按鈕,選擇生成verilog語言文件,設(shè)計(jì)完成后會(huì)自動(dòng)彈出結(jié)果,如圖所示:


3.3.4.新建一個(gè)解決方案進(jìn)行對(duì)比
點(diǎn)擊New Solution按鈕新建一個(gè)解決方案:

然后打開matrix_mult.cpp文件,選擇右邊的directive視圖,右擊Product,選擇Inser Directive,然后選擇PIPELINE,確定之后運(yùn)行C綜合來綜合出RTL設(shè)計(jì),完成后同樣會(huì)彈出設(shè)計(jì)信息

然后可以將報(bào)告與之前solution1的報(bào)告進(jìn)行對(duì)比,

3.3.5.分析
進(jìn)入Analysis視圖:

3.3.6.新建一個(gè)流水線解決方案

3.3.7.解決方案對(duì)比



o4YBAF9uG4GAPdJzAADqE2DLLgI643.png

3.4.接口綜合
3.4.1.TCL腳本新建工程
在F:/SOC/PYNQ-Z2/HLSproject/hls/tut3C文件夾,使用命令:
vivado_hls -f run_hls_pynq.tcl

3.4.2.打開工程
vivado_hls -p matrix_mult_prj

3.4.3.C Synthesis

pIYBAF9uG4OAGHaBAACgyjbGK0U079.png

編輯:hfy

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

    關(guān)注

    19

    文章

    797

    瀏覽量

    65855
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Vivado 高層次綜合

    感謝你對(duì)Vivado HLS也就是XILINX’s 高層次綜合解決方案有興趣,這個(gè)解決方案綜合c,c++和系統(tǒng)c代碼成Verilog和VHD
    發(fā)表于 04-25 08:59 ?2785次閱讀

    來自vivado hls的RTL可以由Design Compiler進(jìn)行綜合嗎?

    您好我有一個(gè)關(guān)于vivado hls的問題。RTL是否來自xivix FPGA的vivado hls onyl?我們可以在Design Compiler上使用它進(jìn)行
    發(fā)表于 04-13 09:12

    高層次綜合工作的基本流程

      下圖揭示了高層次綜合工作的基本流程,以及它于傳統(tǒng)的RTL綜合流程的對(duì)比。接下來將對(duì)行為描述,行為綜合,分析與優(yōu)化三個(gè)主要子流程詳細(xì)描述?!   ?、行為描述  當(dāng)我們把
    發(fā)表于 01-06 17:52

    vivado高層次綜合HLS定義及挑戰(zhàn)

    HLS高階綜合(highlevelsynthesis)在被廣泛使用之前,作為商業(yè)技術(shù)其實(shí)已經(jīng)存在了20多年。設(shè)計(jì)團(tuán)隊(duì)對(duì)于這項(xiàng)技術(shù)可以說呈現(xiàn)出兩極化的態(tài)度:要么堅(jiān)信它是先進(jìn)技術(shù)之翹楚,要么對(duì)其持謹(jǐn)慎
    發(fā)表于 07-06 08:00

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

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

    FPGA高層次綜合HLS之Vitis HLS知識(shí)庫簡析

    1、HLS最全知識(shí)庫介紹高層次綜合(High-level Synthesis)簡稱HLS,指的是將高層次語言描述的邏輯結(jié)構(gòu),自動(dòng)轉(zhuǎn)換成低抽象
    發(fā)表于 09-07 15:21

    使用Vitis HLS創(chuàng)建屬于自己的IP相關(guān)資料分享

    1、使用Vitis HLS創(chuàng)建屬于自己的IP高層次綜合(High-level Synthesis)簡稱HLS,指的是將高層次語言描述的邏輯結(jié)
    發(fā)表于 09-09 16:45

    使用Vivado高層次綜合 (HLS)進(jìn)行FPGA設(shè)計(jì)的簡介

    Introduction to FPGA Design with Vivado High-Level Synthesis,使用 Vivado 高層次綜合 (
    發(fā)表于 01-06 11:32 ?65次下載

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

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

    Vivado Hls 設(shè)計(jì)分析(二)

    在使用高層次綜合,創(chuàng)造高質(zhì)量的RTL設(shè)計(jì)時(shí),一個(gè)重要部分就是對(duì)C代碼進(jìn)行優(yōu)化。Vivado Hls總是試圖最小化loop和function的latency,為了實(shí)現(xiàn)這一點(diǎn),它在loop
    發(fā)表于 11-16 14:44 ?3560次閱讀

    使用Vivado高層次綜合工具高效評(píng)估和實(shí)現(xiàn)所選壓縮算法

    ,有助于應(yīng)對(duì)這種挑戰(zhàn)。 我們使用 Vivado? Design Suite 的高層次綜合 (HLS) 工具來評(píng)估針對(duì) E-UTRA I/Q 數(shù)據(jù)的開放無線電設(shè)備接口 (ORI) 標(biāo)準(zhǔn)壓
    發(fā)表于 11-16 20:05 ?2076次閱讀
    使用<b class='flag-5'>Vivado</b><b class='flag-5'>高層次</b><b class='flag-5'>綜合</b>工具高效評(píng)估和實(shí)現(xiàn)所選壓縮算法

    關(guān)于賽靈思高層次綜合工具加速FPGA設(shè)計(jì)的介紹和分享

    Vivado HLS配合C語言等高級(jí)語言能幫助您在FPGA上快速實(shí)現(xiàn)算法。 高層次綜合HLS)是指自動(dòng)
    發(fā)表于 10-06 10:44 ?1319次閱讀
    關(guān)于賽靈思<b class='flag-5'>高層次</b><b class='flag-5'>綜合</b>工具加速FPGA設(shè)計(jì)的介紹和分享

    基于Vivado高層次綜合工具評(píng)估IQ數(shù)據(jù)的無線電設(shè)備接口壓縮算法設(shè)計(jì)

    我們使用 Vivado ?Design Suite 的高層次綜合HLS) 工具來評(píng)估針對(duì) E-UTRA I/Q 數(shù)據(jù)的開放無線電設(shè)備接口 (ORI) 標(biāo)準(zhǔn)壓縮方案,以估計(jì)其對(duì)信號(hào)
    發(fā)表于 07-24 09:30 ?2097次閱讀
    基于<b class='flag-5'>Vivado</b><b class='flag-5'>高層次</b><b class='flag-5'>綜合</b>工具評(píng)估IQ數(shù)據(jù)的無線電設(shè)備接口壓縮算法設(shè)計(jì)

    PYNQ上手筆記 | ⑤采用Vivado HLS進(jìn)行高層次綜合設(shè)計(jì)

    1.實(shí)驗(yàn)?zāi)康耐ㄟ^例程探索Vivado HLS設(shè)計(jì)流用圖形用戶界面和TCL腳本兩種方式創(chuàng)建Vivado HLS項(xiàng)目用各種
    發(fā)表于 11-06 09:20 ?6次下載
    PYNQ上手筆記 | ⑤采用<b class='flag-5'>Vivado</b> <b class='flag-5'>HLS</b>進(jìn)行<b class='flag-5'>高層次</b><b class='flag-5'>綜合</b>設(shè)計(jì)

    使用Vivado高層次綜合(HLS)進(jìn)行FPGA設(shè)計(jì)的簡介

    電子發(fā)燒友網(wǎng)站提供《使用Vivado高層次綜合(HLS)進(jìn)行FPGA設(shè)計(jì)的簡介.pdf》資料免費(fèi)下載
    發(fā)表于 11-16 09:33 ?0次下載
    使用<b class='flag-5'>Vivado</b><b class='flag-5'>高層次</b><b class='flag-5'>綜合</b>(<b class='flag-5'>HLS</b>)進(jìn)行FPGA設(shè)計(jì)的簡介