TNS、WNS、THS 和 WHS

        运行“report_timing” 或 “report_timing_summary” 命令后,我注意到 WNS、TNS、WHS 和 THS。什么是 WNS、TNS、WHS 和 THS?

        这是一个关于 Vivado 时序分析中几个核心概念的中文详解。理解这些指标对于判断您的设计是否满足时序要求至关重要。


一、核心概念:建立时间与保持时间

在理解这些指标之前,必须首先理解寄存器(Flip-Flop)的两个基本时序要求:

  • 建立时间(Setup Time, Tsu: 在时钟有效沿(如上升沿)到来之前,数据输入(D)必须保持稳定的最短时间。

  • 保持时间(Hold Time, Th: 在时钟有效沿到来之后,数据输入(D)必须继续保持稳定的最短时间。

Vivado 的静态时序分析(STA)就是用来检查设计中的每一条时序路径是否满足这两个要求。


二、四大关键时序指标

1. WNS - 最差负裕量(Worst Negative Slack)
  • 它是什么? Slack 是指“时序裕量”,即 要求的时间 与 实际的时间 之间的差值WNS 是所有时序路径中 最差的(即数值最小的)建立时间裕量

  • 它衡量什么? 衡量设计在建立时间方面的最坏情况。

  • 如何解读?

    • WNS >= 0 ns: 恭喜!您的设计满足建立时间要求。所有路径上的数据都能在时钟沿到来之前足够早地到达。数值越大,时序裕量越充足。

    • WNS < 0 ns: 时序违规!至少有一条路径存在建立时间问题。数据到达得太晚,无法被正确捕获。这个负值表示最严重的那条路径晚了多少时间。

  • 目标: WNS >= 0。这是必须满足的时序目标。

2. TNS - 总负裕量(Total Negative Slack)
  • 它是什么? 所有存在建立时间违规(即 Slack 为负)的路径 的 Slack 值的总和。

  • 它衡量什么? 衡量设计中建立时间问题的严重程度和规模

  • 如何解读?

    • TNS = 0: 意味着没有任何建立时间违规(因为所有路径的 Slack >= 0,没有负值可加)。

    • TNS < 0: 表示存在建立时间违规。这个数值的绝对值越大,说明:

      1. 越多的路径存在违规。

      2. 和/或,这些违规路径的 WNS(负值)越大

  • 目标: TNS = 0。一个非零的 TNS 意味着设计有时序问题需要修复。

WNS 与 TNS 的关系:

  • WNS 告诉你最坏的一条路径有多差。

  • TNS 告诉你整个设计中有多少路径是“差”的。

  • 例子: 一个设计的 WNS = -0.1ns, TNS = -0.15ns。这说明最差的一条路径违规了 0.1ns,并且可能只有一两条路径违规。而另一个设计 WNS = -0.1ns, TNS = -5ns,则说明虽然最差路径的违规程度相同,但有大量路径都存在轻微违规,问题更普遍。


3. WHS - 最差保持裕量(Worst Hold Slack)
  • 它是什么? 所有时序路径中 最差的(数值最小的)保持时间裕量

  • 它衡量什么? 衡量设计在保持时间方面的最坏情况。

  • 如何解读?

    • WHS >= 0 ns: 满足保持时间要求。所有路径上的数据在时钟沿到来之后都能保持足够长的时间。数值越大,表示对毛刺和偏差的容忍度越高。

    • WHS < 0 ns: 保持时间违规!至少有一条路径存在保持时间问题。数据变化得太早,可能会覆盖掉当前应该被锁存的值,导致亚稳态或功能错误。

  • 目标: WHS >= 0。这也是必须满足的时序目标。

重要提示: 保持时间问题通常是在布局布线之后,当线路的实际延迟被精确计算后才能准确分析。建立时间问题通常与逻辑级数(组合逻辑延迟)和时钟频率更相关。

4. THS - 总保持裕量(Total Hold Slack)
  • 它是什么? 所有存在保持时间违规(即 Slack 为负)的路径 的 Slack 值的总和。

  • 它衡量什么? 衡量设计中保持时间问题的严重程度和规模

  • 如何解读?

    • THS = 0: 意味着没有任何保持时间违规。

    • THS < 0: 表示存在保持时间违规。这个数值的绝对值越大,说明存在保持时间问题的路径越多、和/或问题越严重。

  • 目标: THS = 0


三、总结与类比

缩写全称中文检查类型含义目标
WNSWorst Negative Slack最差负裕量建立时间最差路径的时序裕量>= 0
TNSTotal Negative Slack总负裕量建立时间所有违规路径的总和= 0
WHSWorst Hold Slack最差保持裕量保持时间最差路径的时序裕量>= 0
THSTotal Hold Slack总保持裕量保持时间所有违规路径的总和= 0

一个简单的类比:

想象一场考试,60分及格(Slack = 0)。

  • WNS: 全班最低分是50分(WNS = -10)。说明最差的学生差了10分。

  • TNS: 把所有不及格同学的“负分差”加起来。比如有3个学生不及格,分别差了10分、5分、5分,那么 TNS = (-10) + (-5) + (-5) = -20。这个数值反映了不及格的严重程度。

  • WHS / THS: 可以理解为另一门课的考试,概念完全一样,只是科目(检查类型)不同。

四、在 Vivado 中查看

       在实现(Implementation)后的 时序总结(Timing Summary) 报告中,您可以清晰地看到这四项指标:

  • Setup 部分: 查看 WNS 和 TNS

  • Hold 部分: 查看 WHS 和 THS

  • Pulse Width 部分: 查看时钟脉宽相关的裕量。

       一个成功的设计,在Corner下,其建立时间和保持时间的 WNS/TNS/WHS/THS 都必须满足要求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值