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
    +关注

    关注

    19

    文章

    807

    浏览量

    66312
  • 时序路径
    +关注

    关注

    0

    文章

    12

    浏览量

    1394
收藏 人收藏

    评论

    相关推荐

    常用时序约束使用说明-v1

    的完整路径all_inputs/all_outputs 可以查看输入输出端口get_ports *get_nets *get_pins *|*get cells
    的头像 发表于 11-01 11:06 134次阅读

    Vivado使用小技巧

    有时我们对时序约束进行了一些调整,希望能够快速看到对应的时序报告,而又不希望重新布局布线。这时,我们可以打开布线后的dcp,直接在Vivado Tcl Console里输入更新后的
    的头像 发表于 10-24 15:08 201次阅读
    <b class='flag-5'>Vivado</b>使用小技巧

    使用IBIS模型进行时序分析

    电子发烧友网站提供《使用IBIS模型进行时序分析.pdf》资料免费下载
    发表于 10-21 10:00 0次下载
    使用IBIS模型进行<b class='flag-5'>时序</b><b class='flag-5'>分析</b>

    锁存器的基本输出时序

    在深入探讨锁存器的输出时序时,我们需要详细分析锁存器在不同控制信号下的行为表现,特别是控制信号(如使能信号E)的电平变化如何影响数据输入(D)到输出(Q)的传输过程。以下是对锁存器输出时序
    的头像 发表于 08-30 10:43 427次阅读

    深度解析FPGA中的时序约束

    建立时间和保持时间是FPGA时序约束中两个最基本的概念,同样在芯片电路时序分析中也存在。
    的头像 发表于 08-06 11:40 556次阅读
    深度<b class='flag-5'>解析</b>FPGA中的<b class='flag-5'>时序</b><b class='flag-5'>约束</b>

    FPGA 高级设计:时序分析和收敛

    Static Timing Analysis,简称 STA。它可以简单的定义为:设计者提出一些特定的时序要求(或者说是添加特定的时序约束),套用特定的时序模型,针对特定的电路进行
    发表于 06-17 17:07

    esp idf是否有支持中文路径解析的接口?

    错:implicit declaration of function \'_wfopen\'; did you mean \'fopen\'? 我的代码已经引用了#include 的头文件,这个有办法解决吗?esp idf是否有支持中文路径解析的接口?谢谢!
    发表于 06-05 08:03

    Xilinx FPGA编程技巧之常用时序约束详解

    Register-to-Register Constraint 寄存器到寄存器约束往往指的是周期约束,周期约束的覆盖范围包括: 覆盖了时钟域的时序要求 覆盖了同步数据在内部寄存器
    发表于 05-06 15:51

    FPGA工程的时序约束实践案例

    详细的原时钟时序、数据路径时序、目标时钟时序的各延迟数据如下图所示。值得注意的是数据路径信息,其
    发表于 04-29 10:39 663次阅读
    FPGA工程的<b class='flag-5'>时序</b><b class='flag-5'>约束</b>实践案例

    时序约束实操

    添加约束的目的是为了告诉FPGA你的设计指标及运行情况。在上面的生成约束之后,在Result àxx.sdc中提供约束参考(请注意该文件不能直接添加到工程中,需要热复制到别的指定目录或者新建自己的SDC文件添加到工程)。
    的头像 发表于 04-28 18:36 2183次阅读
    <b class='flag-5'>时序</b><b class='flag-5'>约束</b>实操

    Xilinx FPGA编程技巧之常用时序约束详解

    寄存器到寄存器约束往往指的是周期约束,周期约束的覆盖范围包括: 覆盖了时钟域的时序要求 覆盖了同步数据在内部寄存器之间的传输 分析一个单独
    发表于 04-12 17:39

    “AI+工业互联网”赋能新型工业化的路径分析

    横看成岭侧成峰,探索“AI+工业互联网”技术赋能新型工业化的路径,还要从技术视角、产业视角、应用视角综合分析
    的头像 发表于 03-14 10:57 1067次阅读

    FPGA设计的常用基本时序路径分析

    该条路径包括了触发器内部clock-to-Q的延迟,触发器之间的由组合逻辑造成的路径延迟以及目标触发器的建立时间,其延时是数据从源触发器开始,在下一个时钟沿来到之前通过组合逻辑和布线的最大时间
    的头像 发表于 01-18 16:31 750次阅读
    FPGA设计的常用基本<b class='flag-5'>时序</b><b class='flag-5'>路径分析</b>

    Vivado时序问题分析

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

    VIVADO安装问题解决

    vivado出现安装问题刚开始还以为是安装路径包含中文空格了,重装的注意了一下,发现还是这个问题。。。。后来又一顿操作猛如虎,终于发现了问题。出这个问题的原因是vivado压缩包解压的路径
    发表于 12-22 10:56 0次下载