0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

XILINX开发者社区 来源:XILINX开发者社区 作者:Hong Han 2021-07-28 10:12 次阅读

在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 《object》《parameter》=《value》

举例:

--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》。《object_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 实现阶段执行PHYS_OPT_DESIGN步骤

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

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

《3》 指定了在Place_design之前需要先执行一个tcl脚本。

对应configure文件的内容:

[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实现阶段的选项无法直接在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的选项中

245df7b6-ebf1-11eb-a97a-12bb97331649.png

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

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

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

246a7176-ebf1-11eb-a97a-12bb97331649.png

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

24b9bfa6-ebf1-11eb-a97a-12bb97331649.png

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

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Vitis
    +关注

    关注

    0

    文章

    147

    浏览量

    7461

原文标题:开发者分享 | 如何在Vitis中把设置信息传递到底层的Vivado (上)

文章出处:【微信号:gh_2d1c7e2d540e,微信公众号:XILINX开发者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    U50的AMD Vivado Design Tool flow设置

    AMD Alveo 加速卡使用有两种流程,AMD Vitis Software Platform flow 和 AMD Vivado Design Tool flow。比较常见的是 Vitis
    的头像 发表于 11-13 10:14 216次阅读
    U50的AMD <b class='flag-5'>Vivado</b> Design Tool flow<b class='flag-5'>设置</b>

    Vivado使用小技巧

    后的约束在之前版本已存在,那么Vivado会给出警告信息,显示这些约束会覆盖之前已有的约束;如果是新增约束,那么就会直接生效。
    的头像 发表于 10-24 15:08 378次阅读
    <b class='flag-5'>Vivado</b>使用小技巧

    使用Python脚本备份华为交换机的配置信息

    在现代网络管理,备份交换机的配置信息是一项至关重要的任务。备份可以确保在交换机发生故障或配置错误时,能够迅速恢复到之前的工作状态。本文将详细介绍如何使用Python脚本备份华为交换机的配置信息
    的头像 发表于 08-12 17:50 619次阅读
    使用Python脚本备份华为交换机的配<b class='flag-5'>置信息</b>

    神经元的信息传递方式是什么

    神经元是神经系统的基本单位,它们通过电信号和化学信号的方式进行信息传递。 神经元的信息传递方式 神经元的结构和功能 神经元是神经系统的基本单位,它们具有接收、处理和
    的头像 发表于 07-03 11:27 1349次阅读

    鸿蒙开发:信息传递载体Want

    其中,一种常见的使用场景是作为[`startAbility()`]方法的参数。例如,当UIAbilityA需要启动UIAbilityB并向UIAbilityB传递一些数据时,可以使用Want作为一个载体,将数据传递给UIAbilityB。
    的头像 发表于 06-21 15:14 472次阅读
    鸿蒙开发:<b class='flag-5'>信息</b><b class='flag-5'>传递</b>载体Want

    abb机器人怎么设置原点位置信

    ABB机器人设置原点位置信号是一个重要的步骤,它可以帮助机器人准确地定位和执行任务。 了解原点位置信号的重要性 原点位置信号是机器人编程和操作的基础。它为机器人提供了一个参考点,使得机
    的头像 发表于 06-17 09:24 2095次阅读

    AMD Vitis™设计工具的Libraries新功能介绍

    AMD Vitis™ 2023.2 设计工具是 Vitis 设计工具变化较大的一个版本,设计流程和界面都发生了变化。
    的头像 发表于 05-29 09:50 618次阅读
    AMD <b class='flag-5'>Vitis</b>™设计工具<b class='flag-5'>中</b>的Libraries新功能介绍

    在Windows 10上创建并运行AMD Vitis™视觉库示例

    本篇文章将演示创建一个使用 AMD Vitis™ 视觉库的 Vitis HLS 组件的全过程。此处使用的是 Vitis Unified IDE。如果您使用的是旧版 AMD Vitis
    的头像 发表于 05-08 14:02 804次阅读
    在Windows 10上创建并运行AMD <b class='flag-5'>Vitis</b>™视觉库示例

    Vitis2023.2使用之—— updata to Vitis Unified IDE

    2023.2的classic Vitis IDE工程的方法是编译好vivado工程后重新导出硬件.xsa 基于导出的硬件重新生成平台工程和应用工程。 工程编译好后单击Vitis菜单下的Export
    发表于 03-24 17:14

    Vitis2023.2使用之—— classic Vitis IDE

    AMD官网下载全系统安装包,或下载网页版安装包,安装好vitis全套组件。打开vivado建一个测试工程编译好后,在tcl命令输入框子输入命令 vitis –classic 即可打开传统的GUI界面
    发表于 03-24 16:15

    RNC_OTF_Exec函数在otf阶段,pwm输出是关闭的,如何获得转子位置信息

    RNC_OTF_Exec函数在otf阶段,pwm输出是关闭的,如何获得转子位置信息
    发表于 03-12 06:14

    LabVIEW模板匹配位置信息导出

    大家好,我在利用ni vision assistant生成的模板匹配界面时,想要将每一个匹配物体的位置信息导出到word或者Excel,但是他这个匹配个数不确定,怎么样匹配到的所有物体信息导出呀?利用哪些编程?谢谢大家了
    发表于 03-11 20:22

    在做simulink+tasking自动代码生成时,编译找不到底层文件是为什么?

    在做simulink+tasking自动代码生成时,编译找不到底层文件,将文件添加进去后,会出现RT或NRT等重复定义
    发表于 02-20 08:06

    手机是靠电磁波传递信息的吗

    手机通过电磁波传递信息。手机使用无线电波将声音、图像和其他数据转化为电磁波信号,然后通过无线电信号传递到手机基站。基站将信号发送到目标手机或其他通信设备,并将其转化为可理解的形式。
    的头像 发表于 01-30 15:42 5838次阅读
    手机是靠电磁波<b class='flag-5'>传递信息</b>的吗

    大屏幕拼接显示系统:实现高效信息传递的策略

    随着数字化时代的到来,大屏幕拼接显示系统已经成为各类企业和组织传递信息的重要工具。如何利用大屏幕拼接显示系统实现高效的信息传递,提升观众的体验和认知,是摆在我们面前的重要课题。本文将探讨大屏幕拼接
    的头像 发表于 01-26 14:28 516次阅读