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

作者:admin  来源:本站  发布时间:2021-05-28  访问量:11624

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

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

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

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

T CQ : TCQ定义为一旦时钟C被触发(正沿或负沿),数据出现在输出Q上所花费的时间。

052801.png

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

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

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

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

052802.png

图2:顺序路径

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

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

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

任何数字设计均可分为静态时序分析的四类路径。

  1. 输入到输出(I2O)

  2. 输入到寄存器(I2R)

  3. 注册到注册(R2R)

  4. 寄存器到输出(R2O)

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

052803.png

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

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

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

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

052804.png

图4:R2R路径的设置约束

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

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

下图中的comb_delay应该是通过组合云的最小延迟。可以看到,保持时间不取决于时钟的计时周期。

052805.png

图5:R2R路径的保持约束

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

052806.png

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

如果输入端口与外部时钟同步,则可以限制路径以进行设置,例如:

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

并且对于保持约束为

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

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

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

input_delay + comb_delay(min)> min_delay(必填)

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

052807.png

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

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

TCQ + comb_delay(最大值)+ output_delay <时钟延迟路径(时钟偏斜)+ T(时钟的时钟周期)–锁存器FF的建立时间

并且对于保持约束为

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

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

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

TCQ + comb_delay(min)+ output_delay> min_delay(必填)

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

052808.png

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

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

input_delay + comb_delay(min)+ output_delay> min_delay(必需)

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

静态时序分析技巧和窍门

  • 通过定义时钟开始约束您的设计。

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

  • 约束设计中的所有路径。如果约束文件不完整,则静态时序分析将无法完成。请记住,静态时序分析适用于垃圾回收原理。

  • 如果从时序角度来看某个路径不是很关键,则可以为这些路径定义时序例外(错误路径,多循环路径等)。