静态时序分析,也称静态时序验证,STA(Static Timing Analysis),是一种与输入激励无关的方式进行的,其目的是通过遍历所有传输路径,寻找所有输入组合下电路的最坏延迟情况(以及毛刺、时钟偏移等等),主要是通过检查建立时间和保持时间是否满足要求,而它们又是通过最大路径延迟和最小路径延迟的分析得到的。
两大静态时序分析原因:
器件内延时:逻辑门、寄存器等等。
互连线延时:时钟等等
四大静态时序分析路径:
(1)寄存器到寄存器:Reg2Reg;
(2)输入引脚到寄存器:Pin2Reg;
(3)寄存器到输出引脚类:Reg2Pin;
(4)输入引脚到输出引脚:Pin2Pin;
最关心的依旧是数据信号和时钟上升沿之间的建立时间和保持时间的关系(不同的 FPGA 厂家的器件时序参数各有不同)。
建立时间、保持时间在静态时序分析中的要求(这里不考虑时钟偏差与时钟抖动):
时钟周期应该大于寄存器最大传播延时、组合逻辑最大延时与目标寄存器建立时间之和:
Tcycle > Tcq + Tlogic + Tsu
目标寄存器保持时间应该小于寄存器污染延时与组合逻辑污染延时之和:
Th < Tcq,cd + Tlogic,cd
这里
1、寄存器最大传播延时 Tcq,是指时钟翻转之后(0→1),数据从寄存器的输入端 D 到输出端 Q 的最大延时;
2、电路的线延时和组合逻辑最大延时 Tlogic,是指本级寄存器的输出到下级寄存器的输入之间的最大延时;
3、最大延时和污染延时相对应,污染延时表示最小延时的意思,一般添加后缀名 “cd” 加以表示。
另外
建立时间裕量:Tsu_slack = Tcycle - Tcq - Tlogic - Tsu
保持时间裕量:Th_slack = Tcq,cd + Tlogic,cd - Th
二者都应该大于零。
这里
数据要求时间 = Tcycle - Tcq
数据到达时间 = Tlogic + Tsu
裕量 = 数据要求时间 - 数据到达时间(Slack = Data Required Time - Data Arrival Time)。