《如何在Vitis中把设置信息传递到底层的Vivado.docx》由会员分享,可在线阅读,更多相关《如何在Vitis中把设置信息传递到底层的Vivado.docx(5页珍藏版)》请在第一文库网上搜索。
1、如何在Vitis中把设置信息传递到底层的Vivado本篇文章来自赛灵思高级工具产品应用工程师HongHan在Vi旦S统一软件平台中使用v+Tink命令,可以把各种类型KerneI(C,C+,-openC1C,以及RT1)的对象文件(.XO)整合到目标平台中,最终生成器件的二进制文件XC1B1N在VitiS完成这个过程的底层,实际调用的是ViVMo。VitiS会指定默认的Vivado策略来执行综合和实现的步骤。当默认的Vivado策略无法达到预期的时序要求时,我们需要在ViVadO中分析时序问题的原因(不在本篇中详细讨论),并根据时序失败的原因调整Vivado各个步骤的选项。有时我们也需要调整V
2、ivado各个步骤的选项做不同方向的优化.在VitiS中提供了一vivado”选项来精细控制ViVadO各个步骤的选项,几乎所有期望加在Vivado中的选项都可以通过这个选项传递给Vivado0以下操作如何选择合适的选项需要对于Vivado的运行机制有一定的了解,对于Vivado不熟悉的用户,建议先阅读UG901以及UG904,两者分别是综合和实现的使用手册1 .对于应用于Vivado的参数使用选项:一vivado.param举例:-vivado.paramproject.Write1ntermec1iateCheckpoints=I对应Vivado中参数设置的命令:set_paramproj
3、ect.WriteIntermediateCheckpoints这个命令也可以放在Vivado各个阶段的TC1.PRE/TC1.POST所指定的脚本中用-vivado.prop执行(参考Vivado工程的属性设置的内容)对应configure文件的内容:vivadoParam=Project.WriteIntermediateCheckpoints=I2 .对于ViVado工程的属性设置:一一vivado.prop.这里的ObjeCt_type是可以是run,fi1eset,fi1e或者project举例:v+-1ink-vivado.proprun.STEPS.PHYSJ)PTDESIGN.
4、ISENAB1ED=true-vivado.proprun.STEPS.PHYSJ)PTDESIGN.RGS.DIRECTIVE=Exp1orevivado.proprun.imp1_1.STEPS.P1ACEDESIGN.TC1.PRE=xxx.tc1指定了在ViVaeiO实现阶段执行PHYSJ)PTDES1GN步骤(注:Vivado中PHYS_OPT_DESIGN步骤默认并不执行)指定了在PHYS_OPT_DESIGN步骤采用的directive是Exp1ore指定了在P1ace_design之前需要先执行一个tc1脚本.对应configure文件的内容:vivadoprop=run.im
5、p1_1.steps.phys_opt_design.is_enabIed=IProP=run.imp1_1.STEPS.PHYS_OPT_DESIGN.ARGS.D1REcTIVE=Exp1oreprop=run.imp11.STEPS.P1ACE_DESIGN.TC1.PRE-xxx.tc1不少Vivado实现阶段的选项无法直接在Vivado工程模式的各个阶段的既有选项中直接体现,例如在OPt_design阶段,我只想执行-sweep选项,这时我们可以用到这些步骤的MOreOptionopt_design-sweep相当于在在工程模式中设置opt_design的MOreoption为-sw
6、eep由于MoreOptionzz这个选项中含有空格,使用起来要相当小心。一旦用错,这个选项在V+中可能和其他的选项混淆,导致工具报一些看似无关的错误示例:vivado.proprun.imp1_1.STEPS.OPT_DESIGN.ARGS.MOREOPTIONS=-sweep我们先将Vivado的相关属性加到Vitis1ink的选项中PrQPtrUoforiuu4.yum.tw.u*(FMicrtd)CC*6u4dSettrgsCcngwrCw,*iwrc(Atvc,STooISetting,0VKerne1UnkerFfMhrgmtr4fnmhfttKtet?/1pr*MMe1UneS.
7、OPT.DESi.ARGS.MOROPnONSMrFP-YAradoproprun11STEPSPHYS.O,DfSNIS-ENAB1EDtrue-SMproprunJSTfPSPHYS.OPT.DSNARGSWCVEExp(ore-wadopropfunInp11STEPSPUCE-DESIGNARGSDiRECnVE-Eiptofe完成VitiSp1atformIink之后,打开生成的ViVadO工程,我们可以看到之前设置的Vivado属性都能体现在底层Vivado工程中:(Vivado工程文件所在目录(不同版本可能有所差异):XX/XX_system_hw_1ink/Hardware/b
8、inarycontainer1.bui1d/1inkvivadovp1/prj/prj.xpr)Ko0(MOHMMnQfCMmJIiomtrrMt:CS1trt1CMeuKMpotttA1ttf2vm.0b4ctw(MUVIMoonbePO1WrOPtO19n(pr.cpt.835).ttM4tc1pmE31UpM0Mon-MCOevgn(ptc.8Qn)9c1pr9rM4ton4nJU.2M9reb4A0fJtf.2tmQ“RC2iOpt0p9r.00.ettQn)n.4rM44tctpeQtc1poM0moOOOmHMtcCa84Q.opt.8wgn)ci在Vivado的TC1CONSO1E中可以执行getparam命令查看parameter是否已经设置成功:Tc1Conso1eMessages1ogReportsDesignRunsQ7I1E1iiiget-par3Bproject.Vrite1nteriediatGCheckpoints1JCIgejparaProjeC7r1mesediateCheCkPointS