【vivado约束学习四】跨时钟域路径分析

作者: OpenSLee,来源:FPGA开源工作室

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

A, Reports > Timing > Report Clock Interaction

B, Flow Navigator > Synthesis > Report Clock Interaction

C, Flow Navigator > Implementation > Report Clock Interaction

D,Tcl command: report_clock_interaction -name clocks_1

如图1所示,点击Synthesis-->Report Clock Interaction.

图1 Report Clock Interaction

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

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

图2 跨时钟域路径分析报告

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

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

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

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

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

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

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

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

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

图3 wavegen跨时钟域路径分析报告

wavegen跨时钟域路径分析报上半部分已经讲过,下面来讲下半部分,如图4。

图4 时钟交互报告下半部分内容

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

B,Source Clock: 路径源时钟域。

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

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

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

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

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

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

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

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

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

本文转载自: FPGA开源工作室

推荐阅读