vivado约束之时钟路径分析
0 2023-03-21

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

  • 编译时间长的令人绝望

  • 运行结果靠运气——时对时错

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

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

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: 显示源时钟和目标时钟之间所有路径的约束摘要。


声明: 本文转载自其它媒体或授权刊载,目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如有新闻稿件和图片作品的内容、版权以及其它问题的,请联系我们及时删除。(联系我们,邮箱:evan.li@aspencore.com )
0
评论
  • 【6.29直播】西门子EDA工具在3D IC设计中的应用


  • 相关技术文库
  • FPGA
  • 可编程
  • PLC
  • verilog
  • 时钟发生器的相位噪声和抖动性能

    系统设计师通常侧重于为应用选择最合适的数据转换器,在向数据转换器提供输入的时钟发生器件的选择上往往少有考虑。然而,如果不慎重考虑时钟发生器的相位噪声和抖动性能,

    前天
  • 雷达信号处理上是选FPGA还是GPU,它们各自的特点又是什么?

      FPGA和CPU一直是雷达信号处理不可分割的组成部分。传统上FPGA用于前端处理,CPU用于后端处理。随着雷达系统的处理能力越来越强,越来越复杂,对信息处理

    05-29
  • PLC的相关知识分析

    写点纯理论的东西,最近一直在思考怎么跟零基础的人讲PLC。也就是当你面对一个门外汉时,怎么让他对PLC感兴趣,然后慢慢的带着学习PLC。思考了很多,又把学校的里

    05-27
  • 一文分析DDR线长匹配与时序

    DDR布线在PCB设计中占有举足轻重的地位,设计成功的关键就是要保证系统有充足的时序裕量。要保证系统的时序,线长匹配又是一个重要的环节。我们来回顾一下,DDR布

    05-27
  • 带你区分时序图、活动图、状态图、协作图

      时序图  时序图用于描述对象之间的传递消息的时间顺序,即用例中的行为顺序。  当执行一个用例时,时序图中的每条消息对应了一个类操作或者引起转换的触发事件。 

    05-26
  • 区分FPGA与DSP特点及用途

      FPGA是一种可编程的硅芯片,DSP是数字信号处理,当系统设计人员在项目的架构设计阶段就面临到底采用FPGA还是DSP的重要问题。本文将首先分别介绍FPGA

    05-26
  • FPGA概念对比CPU架构有啥特点

      你还没听过FPGA?那你一定是好久没有更新自己在企业级IT领域的知识了。今天笔者就和大家聊聊何为FPGA?FPGA主要应用场景是什么?有人说FPGA是替代传

    05-26
  • 时序收敛十大准则

    本文摘自《Vivado使用误区与进阶》,作者为Xilinx工具与方法学应用专家Ally Zhou。 时序收

    05-26
  • 仿真软件ModelSim及其应用

    如果您是FPGA开发方面的初学者,那么这个教程一定能够帮助你在仿真技术上越过新人的台阶;如果您是FPGA开发的老手,这篇文档也并非对您没有帮助,您可以把教程发给其他刚入门的同事,免去您亲自上阵指导的麻烦,把主要的精力放在更有价值的地方。

    05-25
  • 快速认识FPGA

      学习FPGA,在不同层次的人明显有不同的答案。先说一句,说不要开发版的都是菜鸟级选手。  我把FPGA层次划分为,鸡蛋级别,菜鸟级别,老鸟级别,高手级别四类

    05-25
  • 分析FPGA与CPLD的差别在哪

      1.CPLD  CPLD主要是由可编程逻辑宏单元(LMC,LogicMacroCell)围绕中心的可编程互连矩阵单元组成,其中LMC逻辑结构较复杂,并具有复

    05-25
  • FPGA与CPLD的作用及不同之处

      FPGA/CPLD能完成任何数字器件的功能,上至高性能CPU,下至简单的74电路,都可以用FPGA/CPLD来实现。  FPGA/CPLD如同一张白纸或是一

    05-24
下载排行榜
更多
广告