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

时间:2025-04-25  作者: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是否已经设置成功:

猜您喜欢

在选择打印机时,规格尺寸是一个不可忽视的重要因素。不同类型的打印机,其尺寸和规格各有不同,适合不同的使用场景。家用打印机的尺寸较小,通常在40厘米宽、30厘米深...
2010-01-16 00:00:00

贴片电阻的功率与其尺寸密切相关。一般来说,尺寸越大,功率越大,可以承受更大的电流和电压。常见的贴片电阻尺寸有01005、0201、0402、0603、0805、...
2024-11-26 11:29:19

缠绕膜和防锈膜在现代工业和日常生活中有着着重要作用。应用领域,涵盖了多个行业。缠绕膜常用于物流和运输行业。能够有效地包裹和固定货物,防止在运输过程中发生碰撞和损...
2014-08-10 00:00:00

IGBT管(绝缘栅双极型晶体管)是应用于电力电子领域的重要器件,其主要作用是实现高效的电能转换和控制。IGBT模块结合了多个IGBT管,能够在高电压和大电流的环...
2012-05-23 00:00:00

DC-DC转换器作为现代电子设备中重要的组件,发挥着关键的作用,尤其在便携式电子设备、汽车电子和可再生能源系统中。通过了解DC-DC转换器的基本组成,我们可以更...
2023-12-22 00:00:00

有源晶振是应用于电子设备中的频率控制元件,其分类主要可以根据不同的标准进行划分。从工作原理上看,有源晶振可分为压电式和电容式两种。压电式晶振利用压电效应实现频率...
2010-12-18 00:00:00

现代工业和技术快速发展的背景下,连接器的应用愈发广泛。CONN_80X6MM_TM作为一种重要的连接器型号,其设计和应用引起了众多行业的关注。本文将对CONN_...
2025-03-08 00:46:11

十字槽圆头带介平尾自攻螺钉是应用于各类材料连接的紧固件,因其独特的设计而受到青睐。该螺钉采用十字槽设计,能够有效提高螺丝刀的抓取力,确保在安装过程中更加稳定,减...
2022-10-06 00:00:00

防护帽是保护头部的重要装备,尤其在工业、建筑和某些运动领域中,合适的规格和尺寸非常重要。防护帽的尺寸通常分为小号、中号和大号,具体的尺寸标准可能因品牌而异。常见...
2011-01-03 00:00:00

十字槽盘头机螺钉是常见的紧固件,其设计和用途各有不同。十字槽的形状使得螺丝刀能够更好地与螺钉配合,提供更大的扭矩,避免滑脱。盘头设计使得螺钉在安装时能够更好地与...
2008-11-07 00:00:00