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

    文章

    144

    浏览量

    7221

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

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

收藏 人收藏

    评论

    相关推荐

    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

    LabVIEW模板匹配位置信息导出

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

    Vitis2023.2全新GUI的功能特性介绍

    Vitis2023.2之前就安装过了,vivado 2023.2相比于2023.1区别不明显,但嵌入式平台vitis2023.2的变化很大,有种vscode的既视感,更符合软件开发人员的习惯。
    的头像 发表于 01-05 09:42 758次阅读
    <b class='flag-5'>Vitis</b>2023.2全新GUI的功能特性介绍

    Vitis 统一软件平台文档

    AMD Vitis 软件平台是一款开发环境,主要用于开发包括 FPGA 架构、Arm 处理器子系统和 AI 引擎在内的设计。Vitis 工具与 AMD Vivado ML 设计套件相结合,可为
    的头像 发表于 12-20 10:00 310次阅读
    <b class='flag-5'>Vitis</b> 统一软件平台文档

    【KV260视觉入门套件试用体验】Vitis AI Library体验之OCR识别

    的接口。由此可简化深度学习神经网络的使用,对于不具备深度学习或 FPGA 知识的用户也是如此。Vitis AI Library 使开发者能够专注于开发自己的应用,而不是底层硬件。 二、实现 相较于
    发表于 10-16 23:25

    vitisvivado有什么区别和联系呢?

    vitisvivado有什么区别和联系呢
    发表于 10-16 07:55

    【KV260视觉入门套件试用体验】Vitis AI 构建开发环境,并使用inspector检查模型

    FFT运算(Vivado) 四、硬件加速之—使用PL加速矩阵乘法运算(Vitis HLS) 五、Vitis AI 构建开发环境,并使用inspector检查模型 六、Vitis AI
    发表于 10-14 15:34

    【KV260视觉入门套件试用体验】Vitis-AI加速的YOLOX视频目标检测示例体验和原理解析

    本文将介绍如何使用Vitis-AI加速YOLOX模型实现视频的目标检测,并对相关源码进行解读。由于演示的示例程序源码是Vitis-AI开源项目提供的,本文演示之前会介绍所需要的准备工作。演示之后
    发表于 10-06 23:32

    【KV260视觉入门套件试用体验】六、VITis AI车牌检测&amp;车牌识别

    sample_platedetect.jpg “Plate Detection”(车牌检测)库使用 DenseBox 神经网络来检测车牌。输入是由 SSD 检测到的车辆图片,输出是包含车牌位置信息的结构
    发表于 09-26 16:28

    【KV260视觉入门套件试用体验】五、VITis AI (人脸检测和人体检测)

    都已编译到预构建的 Vitis AI 开发板镜像。您可直接运行示例。如有新程序,请在主机侧对其进行编译并将可执行程序复制到目标。 1. 使用 scp 命令将
    发表于 09-26 16:22

    【KV260视觉入门套件试用体验】+02.开发环境安装Vitis/Vivado(zmj)

    【KV260视觉入门套件试用体验】+02.开发环境安装Vitis/Vivado(zmj) 本篇主要介绍在CentOS-7.9安装Vitis2022.2(包括Vivado2022.2)的
    发表于 08-27 21:22

    vivado的仿真器改成modelsim,仿真时modelsim的transcript没法打印出e203实时运行的信息怎么解决?

    原来仿真使用的是vivado simulator,最近将vivado的仿真器改成modelsim,发现仿真的时候modelsim的transcript没法打印出e203实时运行的信息。请问要在modelsim
    发表于 08-11 09:47

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

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

    Vitis-Vivado强制JTAG模式烧录QSPI方法

    本教程提供 VITIS 2021.1 QSPI-FLASH 下载方法如下
    的头像 发表于 07-07 14:14 2666次阅读
    <b class='flag-5'>Vitis-Vivado</b>强制JTAG模式烧录QSPI方法