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

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

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

在Vitis中把Settings信息傳遞到底層的Vivado

算法與數(shù)據(jù)結(jié)構(gòu) ? 來源:XILINX開發(fā)者社區(qū) ? 作者:Hong Han ? 2021-08-13 14:35 ? 次閱讀

本篇文章來自賽靈思高級(jí)工具產(chǎn)品應(yīng)用工程師 Hong Han.

本篇博文將繼續(xù)介紹在Vitis中把Settings信息傳遞到底層的Vivado.

對(duì)于Vivado實(shí)現(xiàn)階段策略的指定:

--vivado.impl.strategies

舉例設(shè)置需要嘗試的實(shí)現(xiàn)策略:

--vivado.impl.strategies “Performance_Explore,Area_Explore”

對(duì)應(yīng)configure文件的內(nèi)容:

#Vivado Implementation Strategies

[vivado]

impl.strategies=Performance_Explore,Area_Explore

在Vivado中可以建立多個(gè)基于相同的綜合結(jié)果不同策略的impl run來嘗試在單次運(yùn)行獲取更好的結(jié)果,而過去的Vitis一直以來只能支持單一的策略。這里我們可以看到Vitis 2020.2已經(jīng)可以支持同時(shí)在一個(gè)run中選擇多個(gè)策略進(jìn)行嘗試, 不同策略用逗號(hào)隔開,工具會(huì)自動(dòng)選擇先滿足時(shí)序的策略來直接后續(xù)的步驟并生成XCLBIN文件。

如需等待所有策略都跑完再挑最好的結(jié)果,可以設(shè)置 --advanced.compiler 參數(shù)

[advanced]

param=compiler.multiStrategiesWaitOnAllRuns=1

在Vivado工程中,可以看到有三個(gè)impl runs,一個(gè)default策略和另兩個(gè)用--vivado.impl.strategies 添加的 Performance_Explore和Area_Explore策略。

對(duì)于Vivado仿真階段選項(xiàng)的指定

舉例:意圖在仿真xelab階段覆蓋原有的timeunit, 在Vivado中需要執(zhí)行以下的命令: (關(guān)于仿真選項(xiàng)的具體含義,請(qǐng)參考UG900)

UG900 https://www.xilinx.com/support/documentation/sw_manuals/xilinx2021_1/ug900-vivado-logic-simulation.pdf

set_property -name {xsim.elaborate.xelab.more_options} -value {-override_timeunit -timescale 1ns/1ps} -objects [get_filesets sim_1]

相應(yīng)的v++ --link 的選項(xiàng):

--vivado.prop=fileset.sim_1.xsim.elaborate.xelab.more_options={-override_timeunit -timescale 1ns/1ps}

對(duì)于Vivado綜合階段選項(xiàng)的指定

Vitis加速kernel設(shè)計(jì)實(shí)際是一個(gè)DFX的設(shè)計(jì)(關(guān)于DFX的內(nèi)容可以參考UG909),平臺(tái)的邏輯屬于靜態(tài)邏輯,其布局布線事先就已經(jīng)完成且鎖定。 包含kernel的邏輯屬于動(dòng)態(tài)部分,需要單獨(dú)做out-of-context綜合并連接到平臺(tái)的既有網(wǎng)表中做in-context 實(shí)現(xiàn)。

UG909:https://www.xilinx.com/support/documentation/sw_manuals/xilinx2021_1/ug909-vivado-partial-reconfiguration.pdf

加入我們期望對(duì)于這部分邏輯綜合采用 AreaOptimized_medium Directive,需要執(zhí)行的Vivado命令如下:

synth_design -top ulp -part xcu200-fsgd2104-2-e -mode out_of_context -directive AreaOptimized_medium

對(duì)應(yīng)的V++ --link選項(xiàng)是:

vivado.prop=run.my_rm_synth_1.STEPS.synth_DESIGN.ARGS.DIRECTIVE=AreaOptimized_medium

注意:在這里synht run的的名字是my_rm_synth_1,可能隨著Vitis版本或者平臺(tái)有變化,使用的時(shí)候需要注意是否需要做相應(yīng)的修改。

在底層Vivado工程的synth run的log文件中可以看到綜合的Directive已經(jīng)成功改為之前設(shè)置的值A(chǔ)reaOptimized_medium

其他的Vivado屬性指定:

--export_script/--custom_script: 導(dǎo)出腳本/使用用戶腳本定制編譯和連接的過程

--remote_ip_cache: 指定遠(yuǎn)程IP Cache 目錄

--no_ip_cache: 關(guān)閉IP Cache

總結(jié):在這里介紹了通過Vitis選項(xiàng)將各類Vivado的設(shè)置傳遞到底層Vivado工程的方法并舉例說明, 希望能幫助用戶在Vitis側(cè)能很精細(xì)地控制Vivado的各類屬性。

編輯:jq

聲明:本文內(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)投訴
  • 編譯
    +關(guān)注

    關(guān)注

    0

    文章

    647

    瀏覽量

    32746
  • DFx
    DFx
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

    10499
  • Vivado
    +關(guān)注

    關(guān)注

    19

    文章

    803

    瀏覽量

    66156

原文標(biāo)題:開發(fā)者分享 | 如何在Vitis中把設(shè)置信息傳遞到底層的Vivado (下)

文章出處:【微信號(hào):TheAlgorithm,微信公眾號(hào):算法與數(shù)據(jù)結(jié)構(gòu)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    如何在Vitis設(shè)置信息傳遞到底層Vivado

    Vitis完成這個(gè)過程的底層,實(shí)際調(diào)用的是VivadoVitis會(huì)指定默認(rèn)的Vivado策略
    發(fā)表于 08-02 08:03 ?1272次閱讀
    如何在<b class='flag-5'>Vitis</b><b class='flag-5'>中</b><b class='flag-5'>把</b>設(shè)置<b class='flag-5'>信息</b><b class='flag-5'>傳遞</b><b class='flag-5'>到底層</b>的<b class='flag-5'>Vivado</b>

    使用Vitis EBAZ4205(ZYNQ)礦機(jī)上實(shí)現(xiàn)"Hello World!"

    。3.Vitsi 開始調(diào)試 Vivado 2019.2 啟動(dòng) Vitis 的方式 與我現(xiàn)在用的 vivado 2017.4 有些不一樣,
    發(fā)表于 03-06 22:59

    如何使用vivadoverilog傳遞shell命令

    大家好,我試圖verilog文件中將命令傳遞給系統(tǒng)。 (最初的開始循環(huán)中)我嘗試使用$ system命令行。它現(xiàn)在處于verilog標(biāo)準(zhǔn),但它似乎不適用于vivado。誰知道怎么做
    發(fā)表于 05-22 15:23

    Vitis的使用教程

    在學(xué)習(xí)ZYNQ嵌入式開發(fā)的過程,正點(diǎn)原子的教程是采用SDK,而我下載的vivado2020.1已經(jīng)變成了vitis,所以寫一這篇博客,方便后續(xù)查閱。
    發(fā)表于 02-04 07:09

    更新Vivado硬件平臺(tái)后如何快捷更新Vitis工程?

    Vivado硬件平臺(tái)更新后Vitis工程如何快捷更新
    發(fā)表于 03-08 08:00

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

    ,我們一直使用Vivado給我們提供的IP或者使用硬件描述語言制作 IP 。今天我們將講解如何使用HLS-高級(jí)綜合語言來創(chuàng)建屬于我們自己的IP。我們將使用的工具稱為Vitis HLS,此后稱為 HLS
    發(fā)表于 09-09 16:45

    【KV260視覺入門套件試用體驗(yàn)】+02.開發(fā)環(huán)境安裝Vitis/Vivado(zmj)

    【KV260視覺入門套件試用體驗(yàn)】+02.開發(fā)環(huán)境安裝Vitis/Vivado(zmj) 本篇主要介紹CentOS-7.9安裝Vitis2022.2(包括
    發(fā)表于 08-27 21:22

    vitisvivado有什么區(qū)別和聯(lián)系呢?

    vitisvivado有什么區(qū)別和聯(lián)系呢
    發(fā)表于 10-16 07:55

    Vivado HLS和Vitis HLS 兩者之間有什么區(qū)別

    的是VivadoIP,用于支持Vivado IP 設(shè)計(jì)流程。后者用于Vitis應(yīng)用加速流程,此時(shí),Vitis HLS會(huì)自動(dòng)推斷接口,無需代碼里通過Pragma或Directive的方
    的頭像 發(fā)表于 11-05 17:43 ?3.9w次閱讀

    Vivado硬件平臺(tái)更新后Vitis工程要如何快捷更新

    Vivado硬件平臺(tái)更新后Vitis工程如何快捷更新
    的頭像 發(fā)表于 01-22 05:51 ?1454次閱讀
    <b class='flag-5'>Vivado</b>硬件平臺(tái)更新后<b class='flag-5'>Vitis</b>工程要如何快捷更新

    Vitis初探—1.將設(shè)計(jì)從SDSoC/Vivado HLS遷移到Vitis上的教程

    本文介紹如何一步一步將設(shè)計(jì)從SDSoC/Vivado HLS遷移到Vitis平臺(tái)。
    的頭像 發(fā)表于 07-25 17:45 ?3725次閱讀
    <b class='flag-5'>Vitis</b>初探—1.將設(shè)計(jì)從SDSoC/<b class='flag-5'>Vivado</b> HLS遷移到<b class='flag-5'>Vitis</b>上的教程

    Vivado硬件平臺(tái)更新后Vitis工程如何快捷更新

    Vivado硬件平臺(tái)更新后Vitis工程如何快捷更新
    發(fā)表于 01-28 09:28 ?12次下載
    <b class='flag-5'>Vivado</b>硬件平臺(tái)更新后<b class='flag-5'>Vitis</b>工程如何快捷更新

    Vitis初探—1.將設(shè)計(jì)從SDSoC/Vivado HLS遷移到Vitis

    本文介紹如何一步一步將設(shè)計(jì)從SDSoC/Vivado HLS遷移到Vitis平臺(tái)。
    發(fā)表于 01-31 08:12 ?8次下載
    <b class='flag-5'>Vitis</b>初探—1.將設(shè)計(jì)從SDSoC/<b class='flag-5'>Vivado</b> HLS遷移到<b class='flag-5'>Vitis</b>上

    如何基于Vitis設(shè)置信息傳遞到底層Vivado

    XCLBIN Vitis完成這個(gè)過程的底層,實(shí)際調(diào)用的是Vivado。Vitis會(huì)指定默認(rèn)的Vivad
    的頭像 發(fā)表于 07-28 10:12 ?1998次閱讀
    如何基于<b class='flag-5'>Vitis</b><b class='flag-5'>中</b><b class='flag-5'>把</b>設(shè)置<b class='flag-5'>信息</b><b class='flag-5'>傳遞</b><b class='flag-5'>到底層</b>的<b class='flag-5'>Vivado</b>

    如何在Vitis設(shè)置信息傳遞到底層Vivado

    本篇博文將繼續(xù)介紹VitisSettings信息傳遞
    發(fā)表于 08-02 10:26 ?958次閱讀
    如何在<b class='flag-5'>Vitis</b><b class='flag-5'>中</b><b class='flag-5'>把</b>設(shè)置<b class='flag-5'>信息</b><b class='flag-5'>傳遞</b><b class='flag-5'>到底層</b>的<b class='flag-5'>Vivado</b>