在Vitis 統(tǒng)一軟件平臺(tái)中使用v++ -link命令,可以把各種類型Kernel(C, C++, OpenCL C, 以及 RTL)的對(duì)象文件(.XO)整合到目標(biāo)平臺(tái)中,最終生成器件的二進(jìn)制文件XCLBIN
在Vitis完成這個(gè)過程的底層,實(shí)際調(diào)用的是Vivado。Vitis會(huì)指定默認(rèn)的Vivado策略來執(zhí)行綜合和實(shí)現(xiàn)的步驟。當(dāng)默認(rèn)的Vivado策略無法達(dá)到預(yù)期的時(shí)序要求時(shí),我們需要在Vivado中分析時(shí)序問題的原因(不在本篇中詳細(xì)討論), 并根據(jù)時(shí)序失敗的原因調(diào)整Vivado各個(gè)步驟的選項(xiàng)。有時(shí)我們也需要調(diào)整Vivado各個(gè)步驟的選項(xiàng)做不同方向的優(yōu)化。
在Vitis中提供了“--vivado” 選項(xiàng)來精細(xì)控制Vivado各個(gè)步驟的選項(xiàng),幾乎所有期望加在Vivado中的選項(xiàng)都可以通過這個(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)無法直接在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)中含有空格,使用起來要相當(dāng)小心。一旦用錯(cuò),這個(gè)選項(xiàng)在v++中可能和其他的選項(xiàng)混淆,導(dǎo)致工具報(bào)一些看似無關(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è)置成功:
本片文章來自賽靈思高級(jí)工具產(chǎn)品應(yīng)用工程師 Hong Han
編輯:jq
-
Vitis
+關(guān)注
關(guān)注
0文章
147瀏覽量
7599
原文標(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)先 登錄
相關(guān)推薦
底層開發(fā)與應(yīng)用開發(fā)到底怎么選?
AMD Vitis Unified Software Platform 2024.2發(fā)布
U50的AMD Vivado Design Tool flow設(shè)置

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

神經(jīng)元的信息傳遞方式是什么
鴻蒙開發(fā):信息傳遞載體Want

abb機(jī)器人怎么設(shè)置原點(diǎn)位置信號(hào)
AMD Vitis?設(shè)計(jì)工具中的Libraries新功能介紹

在Windows 10上創(chuàng)建并運(yùn)行AMD Vitis?視覺庫示例

詳解Vivado非工程模式的精細(xì)設(shè)計(jì)過程

評(píng)論