在Vitis 統(tǒng)一軟件平臺(tái)中使用v++ -link命令,可以把各種類型Kernel(C, C++, OpenCL C, 以及 RTL)的對(duì)象文件(.XO)整合到目標(biāo)平臺(tái)中,最終生成器件的二進(jìn)制文件XCLBIN
在Vitis完成這個(gè)過(guò)程的底層,實(shí)際調(diào)用的是Vivado。Vitis會(huì)指定默認(rèn)的Vivado策略來(lái)執(zhí)行綜合和實(shí)現(xiàn)的步驟。當(dāng)默認(rèn)的Vivado策略無(wú)法達(dá)到預(yù)期的時(shí)序要求時(shí),我們需要在Vivado中分析時(shí)序問(wèn)題的原因(不在本篇中詳細(xì)討論), 并根據(jù)時(shí)序失敗的原因調(diào)整Vivado各個(gè)步驟的選項(xiàng)。有時(shí)我們也需要調(diào)整Vivado各個(gè)步驟的選項(xiàng)做不同方向的優(yōu)化。
在Vitis中提供了“--vivado” 選項(xiàng)來(lái)精細(xì)控制Vivado各個(gè)步驟的選項(xiàng),幾乎所有期望加在Vivado中的選項(xiàng)都可以通過(guò)這個(gè)選項(xiàng)傳遞給Vivado。以下操作如何選擇合適的選項(xiàng)需要對(duì)于Vivado的運(yùn)行機(jī)制有一定的了解,對(duì)于Vivado不熟悉的用戶,建議先閱讀UG901以及UG904,兩者分別是綜合和實(shí)現(xiàn)的使用手冊(cè)
1. 對(duì)于應(yīng)用于Vivado的參數(shù)使用選項(xiàng):
--vivado.param 《object》《parameter》=《value》
舉例:
--vivado.param project.writeIntermediateCheckpoints=1
對(duì)應(yīng)Vivado中參數(shù)設(shè)置的命令:
set_param project.writeIntermediateCheckpoints
這個(gè)命令也可以放在Vivado各個(gè)階段的TCL.PRE/TCL.POST所指定的腳本中用--vivado.prop 執(zhí)行(參考“Vivado工程的屬性設(shè)置”的內(nèi)容)
對(duì)應(yīng)configure文件的內(nèi)容:
[vivado]
param=project.writeIntermediateCheckpoints=1
2. 對(duì)于Vivado工程的屬性設(shè)置:
--vivado.prop 《object_type》?!秓bject_name》。《prop_name》
這里的Object_type是可以是run, fileset, file 或者 project
舉例:
v++ --link --vivado.prop run.impl_1.STEPS.PHYS_OPT_DESIGN.IS_ENABLED=true
--vivado.prop run.impl_1.STEPS.PHYS_OPT_DESIGN.ARGS.DIRECTIVE=Explore
--vivado.prop run.impl_1.STEPS.PLACE_DESIGN.TCL.PRE=/…/xxx.tcl
《1》 指定了在Vivado 實(shí)現(xiàn)階段執(zhí)行PHYS_OPT_DESIGN步驟
(注:Vivado中PHYS_OPT_DESIGN步驟默認(rèn)并不執(zhí)行)
《2》 指定了在PHYS_OPT_DESIGN步驟采用的directive 是 Explore
《3》 指定了在Place_design之前需要先執(zhí)行一個(gè)tcl腳本。
對(duì)應(yīng)configure文件的內(nèi)容:
[vivado]
prop=run.impl_1.steps.phys_opt_design.is_enabled=1
prop=run.impl_1.STEPS.PHYS_OPT_DESIGN.ARGS.DIRECTIVE=Explore
prop=run.impl_1.STEPS.PLACE_DESIGN.TCL.PRE=/…/xxx.tcl
不少Vivado實(shí)現(xiàn)階段的選項(xiàng)無(wú)法直接在Vivado工程模式的各個(gè)階段的既有選項(xiàng)中直接體現(xiàn),例如在opt_design 階段,我只想執(zhí)行 -sweep 選項(xiàng),這時(shí)我們可以用到這些步驟的“More Option”
opt_design -sweep 相當(dāng)于在在工程模式中設(shè)置opt_design的More option 為 -sweep
由于“More Option” 這個(gè)選項(xiàng)中含有空格,使用起來(lái)要相當(dāng)小心。一旦用錯(cuò),這個(gè)選項(xiàng)在v++中可能和其他的選項(xiàng)混淆,導(dǎo)致工具報(bào)一些看似無(wú)關(guān)的錯(cuò)誤
示例:
--vivado.prop “run.impl_1.{STEPS.OPT_DESIGN.ARGS.MORE OPTIONS}={-sweep}”
我們先將Vivado的相關(guān)屬性加到Vitis link的選項(xiàng)中
完成Vitis platform link之后,打開生成的Vivado 工程,我們可以看到之前設(shè)置的Vivado 屬性都能體現(xiàn)在底層Vivado工程中:
(Vivado工程文件所在目錄(不同版本可能有所差異):
XX/XX_system_hw_link/Hardware/binary_container_1.build/link/vivado/vpl/prj/prj.xpr)
在Vivado 的TCL CONSOLE中可以執(zhí)行g(shù)et _param命令查看parameter是否已經(jīng)設(shè)置成功:
本片文章來(lái)自賽靈思高級(jí)工具產(chǎn)品應(yīng)用工程師 Hong Han
編輯:jq
-
Vitis
+關(guān)注
關(guān)注
0文章
150瀏覽量
7937
原文標(biāo)題:開發(fā)者分享 | 如何在Vitis中把設(shè)置信息傳遞到底層的Vivado (上)
文章出處:【微信號(hào):gh_2d1c7e2d540e,微信公眾號(hào):XILINX開發(fā)者社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
如何在Unified IDE中創(chuàng)建視覺庫(kù)HLS組件

解碼LuatOS:短信功能的底層運(yùn)作機(jī)制

使用AMD Vitis Unified IDE創(chuàng)建HLS組件

如何使用AMD Vitis HLS創(chuàng)建HLS IP

如何設(shè)置信令測(cè)試儀的發(fā)射參數(shù)
一文詳解Vivado時(shí)序約束

底層開發(fā)與應(yīng)用開發(fā)到底怎么選?
AMD Vivado Design Suite IDE中的設(shè)計(jì)分析簡(jiǎn)介

AMD Vitis Unified Software Platform 2024.2發(fā)布
U50的AMD Vivado Design Tool flow設(shè)置

CDCE949如何使用Clock Pro 1.21來(lái)計(jì)算寄存器的值,并導(dǎo)出配置信息呢?
請(qǐng)問(wèn)labview是否無(wú)法向matlab傳遞3維數(shù)組
使用Python腳本備份華為交換機(jī)的配置信息

評(píng)論