如何在Vitis中把设置信息传递到底层的Vivado

时间:2025-06-14  作者:Diven  阅读:0

本篇文章来自赛灵思高级工具产品应用工程师 Hong Han

如何在Vitis中把设置信息传递到底层的Vivado

在Vitis 统一软件平台中使用v++ -link命令,可以把各种类型Kernel(C, C++, OpenCL™ C, 以及 RTL)的对象文件(.XO)整合到目标平台中,最终生成器件的二进制文件XCLBIN

在Vitis完成这个过程的底层,实际调用的是Vivado。Vitis会指定默认的Vivado策略来执行综合和实现的步骤。当默认的Vivado策略无法达到预期的时序要求时,我们需要在Vivado中分析时序问题的原因(不在本篇中详细讨论), 并根据时序失败的原因调整Vivado各个步骤的选项。有时我们也需要调整Vivado各个步骤的选项做不同方向的优化.

在Vitis中提供了"--vivado" 选项来精细控制Vivado各个步骤的选项,几乎所有期望加在Vivado中的选项都可以通过这个选项传递给Vivado。以下操作如何选择合适的选项需要对于Vivado的运行机制有一定的了解,对于Vivado不熟悉的用户,建议先阅读UG901以及UG904,两者分别是综合和实现的使用手册

1. 对于应用于Vivado的参数使用选项:

--vivado.param =

举例:

--vivado.param project.writeIntermediateCheckpoints=1

对应Vivado中参数设置的命令:

set_param project.writeIntermediateCheckpoints

这个命令也可以放在Vivado各个阶段的TCL.PRE/TCL.POST所指定的脚本中用--vivado.prop 执行(参考"Vivado工程的属性设置"的内容)

对应configure文件的内容:

[vivado]param=project.writeIntermediateCheckpoints=1

2. 对于Vivado工程的属性设置:

--vivado.prop . .

这里的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

指定了在Vivado 实现阶段执行PHYS_OPT_DESIGN步骤

(注:Vivado中PHYS_OPT_DESIGN步骤默认并不执行)

指定了在PHYS_OPT_DESIGN步骤采用的directive 是 Explore

指定了在Place_design之前需要先执行一个tcl脚本.

对应configure文件的内容:

[vivado]prop=run.impl_1.steps.phys_opt_design.is_enabled=1prop=run.impl_1.STEPS.PHYS_OPT_DESIGN.ARGS.DIRECTIVE=Exploreprop=run.impl_1.STEPS.PLACE_DESIGN.TCL.PRE=/…/xxx.tcl

不少Vivado实现阶段的选项无法直接在Vivado工程模式的各个阶段的既有选项中直接体现,例如在opt_design 阶段,我只想执行 -sweep 选项,这时我们可以用到这些步骤的"More Option"

opt_design -sweep 相当于在在工程模式中设置opt_design的More option 为 -sweep

由于"More Option" 这个选项中含有空格,使用起来要相当小心。一旦用错,这个选项在v++中可能和其选项混淆,导致工具报一些看似无关的错误

示例:

--vivado.prop "run.impl_1.{STEPS.OPT_DESIGN.ARGS.MORE OPTIONS}={-sweep}"

我们先将Vivado的相关属性加到Vitis link的选项中

完成Vitis platform link之后,打开生成的Vivado 工程,我们可以看到之前设置的Vivado 属性都能体现在底层Vivado工程中:

(Vivado工程文件所在目录(不同版本可能有所差异):

XX/XX_system_hw_link/Hardware/binary_container_1.build/link/vivado/vpl/prj/prj.xpr)

在Vivado 的TCL CONSOLE中可以执行get _param命令查看parameter是否已经设置成功:

猜您喜欢

电位器作为调节电压、电流的重要器件,应用于音响设备、仪器仪表、家用电器等领域。金山(ELITE)作为国内知名的电位器品牌,高品质的产品性能和多样化的型号选择,赢...
2014-02-12 12:54:30

可调电阻作为电子元件中的重要组成部分,应用于各种电子设备的调节和控制。作为全球知名的电子元器件制造商,Murata(村田)凭借其很好的技术实力和丰富的产品线,在...
2012-11-25 05:34:29

测电笔是常用的电气工具,主要用于检测电压的存在与否。外形通常为细长的笔状,便于携带和操作。测电笔的工作原理是通过感应电场来判断电源的状态。当测电笔的尖端接触到带...
2025-08-27 00:00:00

其插件电阻系列高品质、多样化选择赢得了市场的认可。本文将深入探讨YAGEO插件电阻的不同品牌及其特点,帮助您更好地了解这一产品线,为电子设计项目选择合适的元件。...
2017-12-07 12:43:07

电压互感器的高压绕组是什么电压互感器(Voltage Transformer)是一种用于测量或保护系统中高压电压的电力设备。它们主要由两个绕组组成:高压绕组和...
2024-02-01 15:49:00

汽车保险丝的重要性日益凸显。作为保护汽车电路安全的关键元件,选择合适的汽车保险丝品牌尤为重要。CNOBLE作为汽车保险丝领域的知名品牌,旗下拥有多个子品牌和系列...
2021-04-21 08:37:30

在现代办公环境中,文件盒是不可少的配件。不仅是存储文件的工具,更是提升工作效率的重要帮手。文件盒能够帮助我们有效分类和整理各类文件,无论是合同、报告还是日常文书...
2014-08-25 00:00:00

变容二极管,又称为可变电容二极管,是利用电压变化而改变其电容值的半导体器件,应用于调谐电路和频率合成电路中。由于其在电子设备中的重要性,了解如何检测变容二极管的...
2025-04-04 07:30:35


雪崩二极管(Avalanche Diode)是特殊类型的二极管,应用于过压保护和高频信号处理等领域。由于其独特的工作原理,测量雪崩二极管的性能和参数显得尤为重要...
2025-03-30 04:01:39