静态时序分析 (STA) 终极指南

作者:admin  来源:本站  发布时间:2021-06-03  访问量:5399

静态时序分析定义为:确保各种电路时序是否满足各种时序要求的时序验证。

ASIC/FPGA 设计流程中最重要和最具挑战性的方面之一是时序收敛。时序收敛可以看作是数字电路的时序验证。时序闭合的数字电路将在指定频率(由设计人员在时序约束中定义)工作,从而可以实现承诺的 PPA(性能、功率和面积)。静态时序分析是一种通过对数字电路中的所有路径进行时序分析来确定是否实现时序收敛的方法。顾名思义,这种数字电路的验证是静态完成的(不需要数字逻辑的模拟)。静态时序分析利用数字电路所有起点和终点之间的时序弧(由技术库定义)。

在我们深入研究静态时序分析的工作原理之前,了解一些稍后使用的术语的基本知识是很有价值的。

计时弧:计时弧是在工艺库中为每个单元定义的参数,这些参数定义了单元在不同 PVT 角上的延迟。静态时序分析使用这些参数来计算通过任何库单元的最大和最小延迟。例如,对于 D 触发器,技术库将包括定义建立时间、保持时间和 C(时钟)到 Q(输出)时间 (TCQ) 的参数。

T CQ : TCQ 定义为一旦时钟 C 被触发(pos 边沿或 neg 边沿),数据出现在输出 Q 上所需的时间

0603-1.png

图 1:D – 触发器 TCQ 时序弧

建立时间:在触发时钟 C 之前输入 D 必须稳定的时间(pos 边沿或 neg 边沿)被定义为建立时间。如果数据至少在时钟边沿之前的建立时间不稳定,则输出将不确定。

保持时间:时钟 C 触发后输入 D 必须稳定的时间(pos 边沿或 neg 边沿)。如果数据在时钟边沿后至少保持时间不稳定,则输出将不确定。

可以对设计的顺序和组合部分进行静态时序分析。在任何顺序设计路径中,总是有一个启动触发器(驱动数据)和一个锁存触发器(捕获数据)。通过假设驱动虚拟启动或虚拟锁存触发器的虚拟时钟,也可以将组合路径视为顺序路径。

0603-2.png

图 2:顺序路径

设置约束:任何数字电路的设置约束都被定义为时序约束,因此设计中最慢的路径必须满足锁存触发器的设置时间。

保持约束:任何数字电路的保持约束都被定义为时序约束,因此设计中的最快路径必须满足锁存触发器的保持时间。

如果设计同时满足建立和保持约束,则称该设计已实现时序收敛。静态时序分析将通过分析设计中的所有时序路径来证明/反驳建立和保持约束。

任何数字设计都可以分为四类路径进行静态时序分析。

  1. 输入到输出 (I2O)

  2. 寄存器输入 (I2R)

  3. 注册到注册 (R2R)

  4. 寄存器到输出 (R2O)

静态时序分析对所有这些路径一一进行。通过定义该路径中的起点和终点来分别分析每条路径。让我们首先考虑 R2R 路径的静态时序分析。它们很简单,并成为其他路径的基础。

0603-3.jpg

图 3:静态时序分析的设计实例

对于R2R路径,起点是启动触发器的时钟输入引脚,终点是锁存触发器的 D 输入引脚。对于设置约束,目标是确保从起点到终点的延迟至少是锁存触发器的设置时间小于锁存时钟的时钟周期。这意味着

TCQ + comb_delay(max) < 时钟延迟路径(时钟偏移)+ T(时钟的时钟周期)——锁存器 FF 的建立时间

下图中的 comb_delay 应该是通过组合云的最大延迟。

0603-4.png

图 4:R2R 路径的设置约束

对于保持约束,目标是确保通过起点和终点的延迟至少大于相同时钟周期内锁存触发器的保持时间。

TCQ + comb_delay (min) > 锁存器 FF 的保持时间 + 时钟延迟路径(时钟偏移)。

下图中的 comb_delay 应该是通过组合云的最小延迟。可以观察到保持时间不依赖于时钟的计时周期。

0603-5.jpg

图 5:R2R 路径的保持约束

对于I2R路径,起点将是输入端口,终点将是锁存触发器的 D 引脚。可以假设从输入端口到组合云的输入延迟,如下所示。输入延迟可以包括填充延迟或任何网络延迟。

0603-6.jpg

图 6:I2R 路径的建立/保持约束

如果输入端口与外部时钟同步,则可以将路径限制为设置为,

input_delay + comb_delay (max) < 时钟延迟路径 (clock skew) + T (clock 的时钟周期) – 锁存器 FF 的建立时间

并且对于保持约束为

input_delay + comb_delay (min) > 锁存器 FF 的保持时间 + 时钟延迟路径(时钟偏移)。

如果输入与时钟不同步,则路径可能会受到从输入端口到锁存器 FF 的 D 引脚的路径的最大和最小延迟的约束。通常在这种情况下(由时钟锁存的同步路径)需要两个锁存的 FF 背靠背以消除亚稳态问题。

input_delay + comb_delay(max) < max_delay(必需)

input_delay +comb_delay (min) > min_delay (required)

对于R2O路径,起点将是启动触发器的时钟引脚,终点将是输出端口。可以假设来自组合云输出的输出延迟,如下所示。输出延迟可以包括填充延迟或从组合云到填充的净延迟。

0603-7.png

图 7:R2O 路径的建立/保持约束

如果输出端口与时钟同步,则可以将路径限制为设置为,

TCQ + comb_delay (max) + output_delay < 时钟延迟路径 (clock skew) + T (clock 的时钟周期) – 锁存器 FF 的建立时间

并且对于保持约束为

TCQ + comb_delay (min) > 锁存器 FF 的保持时间 + 时钟延迟路径(时钟偏移)。

如果输出路径与时钟不同步,则数据路径可能会受到最小和最大延迟的约束。

TCQ + comb_delay(max) + output_delay < max_delay(必需)

TCQ + comb_delay (min) + output_delay > min_delay (required)

对于I2O路径,起点是输入端口,而终点是输出端口。可以假设输入端口的输入延迟和输出端口的输出延迟。通常,输入和输出端口之间的组合路径受到约束,以便满足最小和最大延迟约束。

0603-8.jpg

图 8:I2O 路径的最小/最大延迟约束

input_delay + comb_delay (max) + output_delay < max_delay (required)

input_delay + comb_delay (min) + output_delay > min_delay (required)

还可以假设虚拟启动触发器驱动输入端口,虚拟锁存触发器锁定输出端口。在这种情况下,可以像 R2R 路径一样进行分析。

静态时序分析技巧和窍门

  • 通过定义时钟开始限制您的设计。

  • 始终为所有主要输入(输入延迟)和主要输出(输出延迟)定义约束。

  • 约束设计中的所有路径。如果约束文件不完整,静态时序分析分析将不完整。请记住,静态时序分析与垃圾进垃圾出原则一起工作。

  • 如果路径从时序角度来看并不重要,您可以为这些路径定义时序异常(假路径、多周期路径等)