TimeQuest时序路径详解

1 TimeQuest时序路径详解01

  1. 基于TimeQuest软件来查看时序报告和分析时序路径
  2. 并回顾基于RTL的逻辑时需优化的基本思路
  3. 在关键路径中插入寄存器来优化时序

  如果不对设计中加入约束,软件就会自动分析设计中的时钟,给出默认的约束,然后布局布线。

1.1 时序报告

在这里插入图片描述

图1 报告信息
  • 从上到下、从左到右依次介绍图中红色框
    • Clocks Summary:查看时钟报告,看设计中有哪些时钟,以及其属性

    • Fmax Summary:报告时钟最大频率

    • Top Falling Paths:最坏路径

      • Setup:Clk9M:这个时钟的最坏路径
    • Report Top Failling Paths:查看关键路径余量

      • Slack:建立时间余量
      • From Node:起点,源寄存器
      • To Node:重点,目的寄存器
      • Launch Clock:源寄存器发射数据的时钟 Clk9M
      • Latch Clock:目的寄存器接收数据的时钟 Clk9M
      • Relationship:Launch Clock edge 和 Latch Clock edge 的时间差 (同时钟则相差一个时钟周期)
      • Clock Skew:时钟偏斜(前面章节介绍过)

      在图3或图7中有

      • Clock Delay(Data Delay上面的):时钟信号到源寄存器的延迟(Tclk1max。软件在分析这个值时,会认为时钟从源端口出发按照最慢速度到达目的寄存器时钟端口。实际Tclk1<=该值

      • Clock Delay(Data Delay下面的):时钟信号到源寄存器的延迟(Tclk2min 。软件在分析这个值时,会认为时钟从源端口出发按照最快速度到达目的寄存器时钟端口。实际Tclk2>=该值

        • 此时计算出来的TSkew=(Clock Skew)min=(Tclk2min - (Tclk1max值与图1中Clock Skew值不同(也就是我们报告中分析出来的)。这个分析出来的值对于Slack时最糟糕的情况。因为Clock Skew越大,Slack越大。所以分析的是Slack的最小值。
        • 但是这就出现了一个矛盾:时钟在传输过程中,到达目的寄存器和源寄存器时,开头有一段路径是重合的。时钟通过同一段路径按照不同的速率计算出的时间在真实情况下是不存在的,我们在分析时钟的时候过度悲观,导致图中Clock Skew值偏小,所以需要把这一段路径过度悲观值补偿回来,这个值就是图中的(Clock Pessimism)。
        • 所以有Clock Pessimism + TSkew(=(Clock Skew)min) = 图中上方Clock Skew
      • Clock Uncertainty:时钟不确定,可能提前或延后Clock Uncertainty出现,该值会被算入**data require time(数据需求时间)**中。

      • Data Delay:Clock Delay(Data Delay上面的) + Data Dealy (Tco+Tdata)= Data Arrival(数据实际到达时间)。

      • uTsu:目的寄存器的建立时间。建立时间可能小于零,这是合理的。起码对于Alter Cyclone IV E 这个系列的FPGA的寄存器时序模型是合理的,它是一个等效值

    • 所以图中计算数据到达时间的公式为:Tclk1+Tdata + Tco ,与前面几节课中相同。

    • 所以图中计算数据需求时间的公式为:Tclk+Tclk2-Tsu+Clock Uncertainty + Clock Pessimism。前几节课中介绍的是Tclk+Tclk2-Tsu

    • 所以图中计算时间余量为:Slack = Tclk+(Tclk2min -(Tclk1)max + Clock Pessimism + Clock Uncertainty - Tsu - Tco - Tdata。前几节课中为Slack = Tclk + Clock Skew - Tsu - Tco - Tdata(其中Clock Skew =Tclk2 -Tclk1)

    • 带入数据图中数据进去算,就可以得到计算出来的Slack值与报告中此条路径的Slack值相同

1.2 分析时序路径

  • 使用TimeQuest查看具体路径信息
    • 选中图1中一条路径,然后右击,点击report Timing ,如图2所示。
    • 点击图2中的Report Timing,出现如图3所示界面。
    • 但是图3中约束时钟不是我们想要的,可直接从Clocks Summary中修改约束的时钟,然后再分析。修改如图4所示。一旦修改成功后,图4中左侧界面选项都会变味黄色,代表需要重新分析(因为约束已经改变了)。再次双击Report Top Falling Paths重新运行,如果约束满足条件,则会显示没有失效路径。
    • 但是如果我们仍然像查看这条路径的时序信息,此时可以手动报告路径。双击Tasks中Custom Reports下的Report Timing。如图5所示,补充后的界面如图6所示。结果显示界面如图7所示。

在这里插入图片描述

图2 Report Timing
![在这里插入图片描述](https://img-blog.csdnimg.cn/10935a0178b144e8ac7773e12240f070.png#pic_center)
图3 Report Timing结果界面
![在这里插入图片描述](https://img-blog.csdnimg.cn/7fb01c5f3e7b4f1bb3e2862e1dc33a1a.png#pic_center)
图4 修改时钟约束

在这里插入图片描述

图5 手动查看相应路径

在这里插入图片描述

图6 补充路径后的界面

在这里插入图片描述

图7 手动添加路径分析结果
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TimeQuest是FPGA的静态时序分析工具,它用于评估和优化FPGA设计中的时序关系。在FPGA设计中,数据的传输速度非常重要,因此时序分析非常关键。TimeQuest可以帮助设计人员分析和验证设计时序约束是否满足,并指导优化设计以满足时序要求。 TimeQuest的静态时序分析过程是基于用户提供的约束条件进行的。首先,设计人员需要定义时钟约束,包括时钟频率、时钟延迟等信息。然后,根据设计中各个模块之间的数据传输关系,定义数据路径约束和时序约束。这些约束条件将被TimeQuest用于评估时序关系,以确定是否满足设计要求。 TimeQuest使用的一种关键方法是时钟缓存优化(Clock Buffer Optimization,CBO)。CBO会优化时钟延迟,使时钟信号在设计中的传输延迟尽可能小。通过提前优化时钟延迟,可以最大限度地减少数据路径中的延迟,以满足更严格的时序要求。 另一个重要的功能是路径延迟分析(Path Delay Analysis),它可以找到设计中最长的延迟路径。这对于确定需要进一步优化的关键路径非常有帮助。 TimeQuest还提供了丰富的时序分析报告和可视化工具,以便设计人员更好地理解和解决时序问题。通过这些报告和工具,设计人员可以查看数据传输路径、时钟间隔等关键信息,并根据需要进行优化。 总之,TimeQuest是FPGA设计中不可或缺的静态时序分析工具。它帮助设计人员评估和优化时序关系,保证设计的稳定性和最佳性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值