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

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

3天内不再提示

如何缩短Vivado的运行时间

电子工程师 来源:fqj 2019-05-29 14:37 次阅读

在Vivado Implementation阶段,有时是有必要分析一下什么原因导致运行时间(runtime)过长,从而找到一些方法来缩短运行时间。

首先,要明确到底哪个阶段耗时过长。Vivado Implementation主要有三个子步骤:opt_design、place_design和route_design。Implementation结束后,会在".runs/impl_x"目录下生成一个runme.log文件。在这个文件中可以查看每个子步骤的耗时。如下图所示,可以看到place_design耗时2分41秒。

如何缩短Vivado的运行时间

可采用如下一些方法缩短运行时间。

Implementation Strategy

如果只是评估资源利用率,可使用Flow_Quick策略。该策略不是时序驱动的策略,因此可以快速执行Implementation。策略Flow_RuntimeOptimized是时序驱动的策略,可以快速完成Implementation,它是设计性能和运行时间之间一种折中。

检查约束

对于时序约束,我们要求“干净且合理”。所谓“干净”,是指约束完备,不会出现漏约或者约束被覆盖的情形。例如,由于set_clock_groups的优先级高于set_max_delay,这就有可能造成后者的约束被覆盖。所谓“合理”,是指约束的数值是正确的。这在多周期路径约束以及跨时钟域路径约束中会经常碰到,对于这类路径要格外注意。例如,如果多周期路径的hold requirement不是0,那么有可能就是约束不合理;如果跨时钟域路径的path requirement为1ns,这也是不合理的。

此外,在用Tcl命令时,尽可能地去缓存被复用的对象。例如,如果通过get_nets获得的一组nets在后续约束中被反复使用,那么可将get_nets的返回结果赋给一个变量,后续使用时只需调用该变量即可。同时,通过选项-filter找到更准确的对象,例如:对于时序路径,通过属性IS_SEQUENTIAL找到时序单元,从而避免了获得其他一些不期望的结果。

约束路径越具体越节省运行时间,例如:如果set_false_path只使用了-from选项,那么Vivado在搜索这些路径时就会比较耗时。

管理生成报告

生成报告也会消耗一些时间。Vivado提供了Report strategy,如下图所示。根据设计分析的需求选择生成报告可节省一定的运行时间。

如何缩短Vivado的运行时间

布线

拥塞对运行时间有很大的影响。因此,如果设计出现了拥塞问题,就要把其作为首要问题去解决。同时,在route_design阶段,使用选项-ultrathreads也可缩短运行时间。

增量编译

如果设计只是有一小部分改动,那么可尝试增量Implementation。这在一定程度上也会缩短运行时间。

设置多线程

Vivado 2018.x的版本,无论是Synthesis还是Implementation,都可以支持多线程。只需要通过如下命令即可设置线程个数。对于Synthesis,最大线程数为4,对于Implementation,最大线程数为8。

如何缩短Vivado的运行时间

ECO流程

对于微小的改动,例如修改ILA的Debug probes或者把内部net链接到某个Package Pin,都可以采用ECO流程,可以极大地缩短运行时间。ECO具体流程可看这里(替换Debug Probes其实很简单),文档ug904中也有详细介绍。

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

    关注

    19

    文章

    812

    浏览量

    66497
  • 时序驱动
    +关注

    关注

    0

    文章

    4

    浏览量

    1498

原文标题:如何缩短Vivado运行时间

文章出处:【微信号:Lauren_FPGA,微信公众号:FPGA技术驿站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    如何检查Linux服务器的运行时间

    Linux 中的 uptime 用于查看系统启动后的运行时间。它是一个比较简单的 Linux 命令,可以不带参数直接运行
    发表于 11-25 15:25 1.5w次阅读
    如何检查Linux服务器的<b class='flag-5'>运行时间</b>

    运行时错误Vivado 2016.2

    消息。在此之后我甚至无法打开检查点 - 如果我正在尝试打开dcp,我将收到运行时错误“R6025 -pure虚函数调用”。在本主题中看起来像是一个错误:得到-R6025-运行时错误 - 运行 - 解构
    发表于 10-30 18:02

    双电池电源管理器使运行时间延长12%,并将充电时间缩短一半

    DN277- 双电池电源管理器使运行时间延长12%,并将充电时间缩短一半
    发表于 08-12 08:06

    freertos的任务运行时间怎么设置

    对于相同优先级的任务采用时间片轮询的方式运行,那比如说有两个优先级都为5的任务,那这两个任务的运行时间如何设置呢?在rt-thread中创建任务时就可以设置任务的运行时间,在freer
    发表于 07-19 08:03

    C语言教程之显示程序运行时间

    C语言教程之显示程序运行时间,很好的C语言资料,快来学习吧。
    发表于 04-25 16:09 0次下载

    如何用SysTick实现测量程序运行时间

    在实际的项目开发过程中,常常遇到需要得到一段代码的运行时间,通常的方法是用示波器来测量,这篇博文将用 SysTick 来实现 精确测量 程序运行时间。 STM32F4 的内核定时器SysTick是一个24位的定时器,需要注
    的头像 发表于 05-09 14:07 6052次阅读
    如何用SysTick实现测量程序<b class='flag-5'>运行时间</b>

    电机运行时间进行排列 是分为两个部分来完成这个程序的设计的

    前几天有个学员咨询一个程序设计的问题,程序的控制要求如下:需要控制5台电机的运行,每台电机运行时需要记录运行时间,电机启动运行时,根据记录的运行时间
    的头像 发表于 07-19 08:57 7198次阅读
    电机<b class='flag-5'>运行时间</b>进行排列 是分为两个部分来完成这个程序的设计的

    最大化延长即使具有老化电池的汽车电池组运行时间

    最大化延长即使具有老化电池的汽车电池组运行时间
    发表于 03-20 12:44 9次下载
    最大化延长即使具有老化电池的汽车电池组<b class='flag-5'>运行时间</b>

    DN277-双电池电源管理器将运行时间提高12%,并将充电时间缩短一半

    DN277-双电池电源管理器将运行时间提高12%,并将充电时间缩短一半
    发表于 04-27 15:35 1次下载
    DN277-双电池电源管理器将<b class='flag-5'>运行时间</b>提高12%,并将充电<b class='flag-5'>时间</b><b class='flag-5'>缩短</b>一半

    如何高效测量ECU的运行时间

    ,最终可能会引起运行时间方面的问题。这在项目后期需要大量的时间和金钱来解决。如果不能掌握系统的运行状态,则很难发现系统内缺陷的根源。 解决方案 将TA软件工具套件与VX1000测量标定硬件相结合,可同步分析 ECU内部
    的头像 发表于 10-28 11:05 2216次阅读

    浅析STM32代码运行时间的技巧

    前言     测试代码的运行时间的两种方法: 使用单片机内部定时器,在待测程序段的开始启动定时器,在待测程序段的结尾关闭定时器。为了测量的准确性,要进行多次测量,并进行平均取值。 借助示波器的方法
    的头像 发表于 11-09 09:52 3876次阅读
    浅析STM32代码<b class='flag-5'>运行时间</b>的技巧

    单片双电池电源管理器可延长运行时间缩短充电时间

    效的方法是并行充电和放电,与顺序系统相比,它可以使单个电池的运行时间增加一倍以上,并将充电时间缩短一半。虽然长期以来一直可以并联多个电池的充电和放电,但到目前为止,很难设计出威廉希尔官方网站 来做到这一点。
    的头像 发表于 03-09 16:39 1795次阅读
    单片双电池电源管理器可延长<b class='flag-5'>运行时间</b>并<b class='flag-5'>缩短</b>充电<b class='flag-5'>时间</b>

    ch32v307记录程序运行时间

    ch32v307记录程序运行时间 在程序开发中,很重要的一项任务就是对程序的运行时间进行评估。对于大型的程序系统来说,它们通常需要处理大量的数据或进行复杂的计算操作。因此,如果程序的运行时间过长
    的头像 发表于 08-22 15:53 903次阅读

    西门子SCL编程50台电机运行时间累计方法

    当RUN信号为TRUE时,开始计时,为FALSE时停止计时,单次运行时间清零,长按RESET为5秒时,单次和总运行时间都清零。
    发表于 11-27 09:59 1884次阅读
    西门子SCL编程50台电机<b class='flag-5'>运行时间</b>累计方法

    三菱plc累计运行时间怎么编程

    具有重要意义。本文将详细介绍如何使用三菱PLC编程实现累计运行时间的统计功能。 一、概述 累计运行时间是指设备或系统在一定时间内的总运行时间。在工业生产中,对设备的累计
    的头像 发表于 06-20 11:31 2294次阅读