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

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

3天内不再提示

详细解析vivado约束时序路径分析问题

电子设计 来源:FPGA开源工作室 作者:FPGA开源工作室 2020-11-29 10:34 次阅读

时序不满足约束,会导致以下问题:

• 编译时间长的令人绝望
• 运行结果靠运气——时对时错

导致时序问题的成因及其发生的概率如下表:


由上表可见,造成时序问题的主要原因除了约束不完整,就是路径问题,本文就时序路径分析问题作一介绍:

1、时钟网络分析

时钟网络反映了时钟从时钟引脚进入FPGA后在FPGA内部的传播路径。

报告时钟网络命令可以从以下位置运行:
① Vivado®IDE中的Flow Navigator
② Tcl命令:report_clock_networks -name {network_1}

报告时钟网络提供设计中时钟树的树视图。 如下图。每个时钟树显示从源到端点的时钟网络,端点按类型排序。


时钟树:
• 显示由用户定义或由工具自动生成的时钟。
• 报告从I / O端口加载的时钟。
• 可用于查找驱动其他BUFGs的BUFGs。
• 显示驱动非时钟负载的时钟。

温馨提醒:完整的时钟树仅在报告的GUI形式中详细说明。此报告的文本版本仅显示时钟根的名称。

以vivado自带的例子wavegen为例。点击Synthesis的Report CLock Networks如下图所示:


时钟clk_pin_p从输入引脚输入之后,经过IBUFDS,再通过MMCM生成时钟,同时显示了各个时钟的频率。如果我们未添加时钟约束,报告将显示Unconstrained(未约束的时钟,root clock).可以选中未约束的时钟右击选择Create Clock创建时钟。

如下图所示:


2、 跨时钟域路径分析

若要查看跨时钟域路径分析报告,可选择以下内容之一来查看:

• Reports > Timing > Report Clock Interaction

• Flow Navigator > Synthesis > Report Clock Interaction

• Flow Navigator > Implementation > Report Clock Interaction

• Tcl command: report_clock_interaction -name clocks_1

如下图所示,点击Synthesis–>Report Clock Interaction.


跨时钟域路径分析报告分析从一个时钟域(源时钟)跨越到另一个时钟域(目标时钟)的时序路径。跨时钟域路径分析报告有助于识别可能存在数据丢失或亚稳态问题的情况.

运行“Report Clock Interaction”命令后,结果将在“时钟交互”窗口中打开。如下图所示,时钟交互报告显示为时钟域矩阵,源时钟位于垂直轴,目标时钟位于水平轴。


No Path --用黑色框来表示:没有从源时钟到目标时钟的定时路径。在这种情况下,没有时钟交互,也没有任何报告。

Timed – 用绿色框来表示:源时钟和目标时钟具有同步关系,并安全地被约束在一起。当两个时钟具有共同的主时钟和简单的周期比时,该状态由定时引擎确定。

User Ignored Paths–用深蓝色框来表示:用户定义的假路径或时钟组约束涵盖从源时钟到目标时钟的所有路径。

Partial False Path–用淡蓝色框来表示:用户定义的伪路径约束覆盖了从源时钟到目标时钟的一些时序路径,其中源时钟和目标时钟具有同步关系。

Timed (Unsafe)–用红色框来表示:源时钟和目标时钟具有异步关系。在这种情况下,没有共同的主时钟或没有可扩展的时段。

Partial False Path (Unsafe)–用橘橙色框来表示:此类别与Timed(Unsafe)相同,只是由于伪路径异常,从源时钟到目标时钟的至少一条路径被忽略。

Max Delay Datapath Only --用紫色框来表示:set_max_delay -datapath_only约束涵盖从源时钟到目标时钟的所有路径。

Report_clock_interaction呈现的报告并不是根据时序约束生成的,但是和时序约束有关,它反映出用户定义的伪路径。

以wavegen工程为示例,点击Report Clock Interaction,如下图所示:


ID: 正在显示的源/目标时钟对的数字ID。

Source Clock: 路径源时钟域。

Destination Clock: 路径终端的时钟域。

Edges (WNS):用于计算最大延迟分析(设置/恢复)的最差裕度的时钟边缘。

WNS (Worst Negative Slack):为跨越指定时钟域的各种路径计算的最差裕度时间。负裕量时间表示路径违反了所需的建立(或恢复)时间的问题。

TNS (Total Negative Slack):属于跨越指定时钟域的路径的所有端点的最差松弛违规的总和。

Failing Endpoints (TNS): 交叉路径中的端点数量无法满足时序要求。违规的总和对应于TNS。

Total Endpoints (TNS):交叉路径中端点的总数。

Path Req (WNS):定时路径要求对应于WNS列中报告的路径。如果两个时钟中的至少一个时钟的上升沿和下降沿都有效,则在任何时钟对之间可能存在若干路径要求,或者在两个时钟之间的路径上应用了一些时序异常。本专栏中报告的值并不总是最具挑战性的要求。

Clock Pair Classification: 提供有关公共节点和时钟对之间的公共周期的信息。从最高优先级到最低优先级:忽略,虚拟时钟,无公共时钟,无公共周期,部分公共节点,无公共节点和清除。

Inter-Clock Constraints: 显示源时钟和目标时钟之间所有路径的约束摘要。

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

    关注

    18

    文章

    787

    浏览量

    65089
  • 时序路径
    +关注

    关注

    0

    文章

    12

    浏览量

    1371
收藏 人收藏

    评论

    相关推荐

    Vivado时序问题分析

    有些时候在写完代码之后呢,Vivado时序报红,Timing一栏有很多时序问题。
    的头像 发表于 01-05 10:18 377次阅读

    FPGA时序约束--基础理论篇

    和修复时序路径时序路径对于设计的正确性和时序性能来说都是非常重要的。为了最大程度地提高性能并避免瓶颈,我们必须对
    发表于 11-15 17:41

    FPGA的约束设计和时序分析

    FPGA/CPLD的综合、实现过程中指导逻辑的映射和布局布线。下面主要总结一下Xilinx FPGA时序约束设计和分析
    发表于 09-21 07:45

    FPGA时序约束时序路径时序模型

    时序路径作为时序约束时序分析的物理连接关系,可分为片间路径
    发表于 08-14 17:50 504次阅读
    FPGA<b class='flag-5'>时序</b><b class='flag-5'>约束</b>之<b class='flag-5'>时序</b><b class='flag-5'>路径</b>和<b class='flag-5'>时序</b>模型

    浅谈时序设计和时序约束

      本文主要介绍了时序设计和时序约束
    的头像 发表于 07-04 14:43 774次阅读

    Vivado综合阶段什么约束生效?

    Vivado综合默认是timing driven模式,除了IO管脚等物理约束,建议添加必要的时序约束,有利于综合逻辑的优化,同时综合后的design里面可以评估
    的头像 发表于 07-03 09:03 434次阅读

    同步电路设计中静态时序分析时序约束时序路径

    同步电路设计中,时序是一个主要的考虑因素,它影响了电路的性能和功能。为了验证电路是否能在最坏情况下满足时序要求,我们需要进行静态时序分析,即不依赖于测试向量和动态仿真,而只根据每个逻辑
    发表于 06-28 09:35 545次阅读
    同步电路设计中静态<b class='flag-5'>时序</b><b class='flag-5'>分析</b>的<b class='flag-5'>时序</b><b class='flag-5'>约束</b>和<b class='flag-5'>时序</b><b class='flag-5'>路径</b>

    如何在Vivado中添加时序约束呢?

    今天介绍一下,如何在Vivado中添加时序约束Vivado添加约束的方法有3种:xdc文件、时序
    的头像 发表于 06-26 15:21 2138次阅读
    如何在<b class='flag-5'>Vivado</b>中添加<b class='flag-5'>时序</b><b class='flag-5'>约束</b>呢?

    详解时序路径的相关概念

    reg2reg路径约束的对象是源寄存器(时序路径的起点)和目的寄存器(时序路径的终点)都在FPG
    的头像 发表于 06-26 14:28 661次阅读
    详解<b class='flag-5'>时序</b><b class='flag-5'>路径</b>的相关概念

    FPGA时序约束理论篇之时序路径时序模型

    典型的时序路径有4类,如下图所示,这4类路径可分为片间路径(标记①和标记③)和片内路径(标记②和标记④)。
    发表于 06-26 10:30 273次阅读
    FPGA<b class='flag-5'>时序</b><b class='flag-5'>约束</b>理论篇之<b class='flag-5'>时序</b><b class='flag-5'>路径</b>与<b class='flag-5'>时序</b>模型

    如何在Vivado中添加时序约束

    前面几篇文章已经详细介绍了FPGA时序约束基础知识以及常用的时序约束命令,相信大家已经基本掌握了时序
    的头像 发表于 06-23 17:44 1361次阅读
    如何在<b class='flag-5'>Vivado</b>中添加<b class='flag-5'>时序</b><b class='flag-5'>约束</b>

    FPGA时序约束之伪路径和多周期路径

    前面几篇FPGA时序约束进阶篇,介绍了常用主时钟约束、衍生时钟约束、时钟分组约束的设置,接下来介绍一下常用的另外两个
    发表于 06-12 17:33 977次阅读

    FPGA时序约束之衍生时钟约束和时钟分组约束

    在FPGA设计中,时序约束对于电路性能和可靠性非常重要。在上一篇的文章中,已经详细介绍了FPGA时序约束的主时钟
    发表于 06-12 17:29 1383次阅读

    FPGA主时钟约束详解 Vivado添加时序约束方法

    在FPGA设计中,时序约束的设置对于电路性能和可靠性都至关重要。在上一篇的文章中,已经详细介绍了FPGA时序约束的基础知识。
    发表于 06-06 18:27 6899次阅读
    FPGA主时钟<b class='flag-5'>约束</b>详解 <b class='flag-5'>Vivado</b>添加<b class='flag-5'>时序</b><b class='flag-5'>约束</b>方法

    约束时序分析的概念

    很多人询问关于约束时序分析的问题,比如:如何设置setup,hold时间?如何使用全局时钟和第二全局时钟(长线资源)?如何进行分组约束?如何约束
    的头像 发表于 05-29 10:06 400次阅读
    <b class='flag-5'>约束</b>、<b class='flag-5'>时序</b><b class='flag-5'>分析</b>的概念