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

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

3天内不再提示

在Vitis中把Settings信息传递到底层的Vivado

算法与数据结构 来源:XILINX开发者社区 作者:Hong Han 2021-08-13 14:35 次阅读

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

本篇博文将继续介绍在Vitis中把Settings信息传递到底层的Vivado.

对于Vivado实现阶段策略的指定:

--vivado.impl.strategies

举例设置需要尝试的实现策略:

--vivado.impl.strategies “Performance_Explore,Area_Explore”

对应configure文件的内容:

#Vivado Implementation Strategies

[vivado]

impl.strategies=Performance_Explore,Area_Explore

在Vivado中可以建立多个基于相同的综合结果不同策略的impl run来尝试在单次运行获取更好的结果,而过去的Vitis一直以来只能支持单一的策略。这里我们可以看到Vitis 2020.2已经可以支持同时在一个run中选择多个策略进行尝试, 不同策略用逗号隔开,工具会自动选择先满足时序的策略来直接后续的步骤并生成XCLBIN文件。

如需等待所有策略都跑完再挑最好的结果,可以设置 --advanced.compiler 参数

[advanced]

param=compiler.multiStrategiesWaitOnAllRuns=1

在Vivado工程中,可以看到有三个impl runs,一个default策略和另两个用--vivado.impl.strategies 添加的 Performance_Explore和Area_Explore策略。

对于Vivado仿真阶段选项的指定

举例:意图在仿真xelab阶段覆盖原有的timeunit, 在Vivado中需要执行以下的命令: (关于仿真选项的具体含义,请参考UG900)

UG900 https://www.xilinx.com/support/documentation/sw_manuals/xilinx2021_1/ug900-vivado-logic-simulation.pdf

set_property -name {xsim.elaborate.xelab.more_options} -value {-override_timeunit -timescale 1ns/1ps} -objects [get_filesets sim_1]

相应的v++ --link 的选项:

--vivado.prop=fileset.sim_1.xsim.elaborate.xelab.more_options={-override_timeunit -timescale 1ns/1ps}

对于Vivado综合阶段选项的指定

Vitis加速kernel设计实际是一个DFX的设计(关于DFX的内容可以参考UG909),平台的逻辑属于静态逻辑,其布局布线事先就已经完成且锁定。 包含kernel的逻辑属于动态部分,需要单独做out-of-context综合并连接到平台的既有网表中做in-context 实现。

UG909:https://www.xilinx.com/support/documentation/sw_manuals/xilinx2021_1/ug909-vivado-partial-reconfiguration.pdf

加入我们期望对于这部分逻辑综合采用 AreaOptimized_medium Directive,需要执行的Vivado命令如下:

synth_design -top ulp -part xcu200-fsgd2104-2-e -mode out_of_context -directive AreaOptimized_medium

对应的V++ --link选项是:

vivado.prop=run.my_rm_synth_1.STEPS.synth_DESIGN.ARGS.DIRECTIVE=AreaOptimized_medium

注意:在这里synht run的的名字是my_rm_synth_1,可能随着Vitis版本或者平台有变化,使用的时候需要注意是否需要做相应的修改。

在底层Vivado工程的synth run的log文件中可以看到综合的Directive已经成功改为之前设置的值AreaOptimized_medium

其他的Vivado属性指定:

--export_script/--custom_script: 导出脚本/使用用户脚本定制编译和连接的过程

--remote_ip_cache: 指定远程IP Cache 目录

--no_ip_cache: 关闭IP Cache

总结:在这里介绍了通过Vitis选项将各类Vivado的设置传递到底层Vivado工程的方法并举例说明, 希望能帮助用户在Vitis侧能很精细地控制Vivado的各类属性。

编辑:jq

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

    关注

    0

    文章

    611

    浏览量

    32358
  • DFx
    DFx
    +关注

    关注

    0

    文章

    35

    浏览量

    10367
  • Vivado
    +关注

    关注

    18

    文章

    787

    浏览量

    65089

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

文章出处:【微信号:TheAlgorithm,微信公众号:算法与数据结构】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

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

    Vitis完成这个过程的底层,实际调用的是VivadoVitis会指定默认的Vivado策略来执行综合和实现的步骤。当默认的
    发表于 08-02 08:03 1044次阅读
    如何在<b class='flag-5'>Vitis</b>中把设置<b class='flag-5'>信息</b><b class='flag-5'>传递</b><b class='flag-5'>到底层</b>的<b class='flag-5'>Vivado</b>

    使用Vitis EBAZ4205(ZYNQ)矿机上实现"Hello World!"

    。3.Vitsi 开始调试 Vivado 2019.2 启动 Vitis 的方式 与我现在用的 vivado 2017.4 有些不一样,
    发表于 03-06 22:59

    如何使用vivadoverilog传递shell命令

    大家好,我试图verilog文件中将命令传递给系统。 (最初的开始循环中)我尝试使用$ system命令行。它现在处于verilog标准,但它似乎不适用于vivado。谁知道怎么做
    发表于 05-22 15:23

    Vitis的使用教程

    在学习ZYNQ嵌入式开发的过程,正点原子的教程是采用SDK,而我下载的vivado2020.1已经变成了vitis,所以写一这篇博客,方便后续查阅。
    发表于 02-04 07:09

    更新Vivado硬件平台后如何快捷更新Vitis工程?

    Vivado硬件平台更新后Vitis工程如何快捷更新
    发表于 03-08 08:00

    使用Vitis HLS创建属于自己的IP相关资料分享

    ,我们一直使用Vivado给我们提供的IP或者使用硬件描述语言制作 IP 。今天我们将讲解如何使用HLS-高级综合语言来创建属于我们自己的IP。我们将使用的工具称为Vitis HLS,此后称为 HLS
    发表于 09-09 16:45

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

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

    vitisvivado有什么区别和联系呢?

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

    Vivado HLS和Vitis HLS 两者之间有什么区别

    的是VivadoIP,用于支持Vivado IP 设计流程。后者用于Vitis应用加速流程,此时,Vitis HLS会自动推断接口,无需在代码里通过Pragma或Directive的方式定义Interface,最终会输出.xo文
    的头像 发表于 11-05 17:43 3.7w次阅读

    Vivado硬件平台更新后Vitis工程要如何快捷更新

    Vivado硬件平台更新后Vitis工程如何快捷更新
    的头像 发表于 01-22 05:51 1124次阅读
    <b class='flag-5'>Vivado</b>硬件平台更新后<b class='flag-5'>Vitis</b>工程要如何快捷更新

    Vitis初探—1.将设计从SDSoC/Vivado HLS迁移到Vitis上的教程

    本文介绍如何一步一步将设计从SDSoC/Vivado HLS迁移到Vitis平台。
    的头像 发表于 07-25 17:45 3164次阅读
    <b class='flag-5'>Vitis</b>初探—1.将设计从SDSoC/<b class='flag-5'>Vivado</b> HLS迁移到<b class='flag-5'>Vitis</b>上的教程

    Vivado硬件平台更新后Vitis工程如何快捷更新

    Vivado硬件平台更新后Vitis工程如何快捷更新
    发表于 01-28 09:28 12次下载
    <b class='flag-5'>Vivado</b>硬件平台更新后<b class='flag-5'>Vitis</b>工程如何快捷更新

    Vitis初探—1.将设计从SDSoC/Vivado HLS迁移到Vitis

    本文介绍如何一步一步将设计从SDSoC/Vivado HLS迁移到Vitis平台。
    发表于 01-31 08:12 8次下载
    <b class='flag-5'>Vitis</b>初探—1.将设计从SDSoC/<b class='flag-5'>Vivado</b> HLS迁移到<b class='flag-5'>Vitis</b>上

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

    XCLBIN 在Vitis完成这个过程的底层,实际调用的是VivadoVitis会指定默认的Vivado策略来执行综合和实现的步骤。当默认
    的头像 发表于 07-28 10:12 1774次阅读
    如何基于<b class='flag-5'>Vitis</b>中把设置<b class='flag-5'>信息</b><b class='flag-5'>传递</b><b class='flag-5'>到底层</b>的<b class='flag-5'>Vivado</b>

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

    本篇博文将继续介绍在Vitis中把Settings信息传递到底层Vivado
    发表于 08-02 10:26 736次阅读
    如何在<b class='flag-5'>Vitis</b>中把设置<b class='flag-5'>信息</b><b class='flag-5'>传递</b><b class='flag-5'>到底层</b>的<b class='flag-5'>Vivado</b>