【FPGA】STA静态时序分析

发布于:2024-07-03 ⋅ 阅读:(13) ⋅ 点赞:(0)

一.定义

时序分析:检查电路是否满足时序要求;

二.分类

1. 静态时序分析

STA,遍历所有的时序路径,根据时序库(.lib文件)计算时序路径的延时,判定是否满足时序要求,会根据最大延时路径和最小延时路径找出违背时序约束的错误;具有速度快,完备性好的特点;

2. 静态时序分析

STD,给定特定激励,根据对应激励下的输出,检查时序是否满足要求;时序结果更准确,但是不完备。

三. 概念

1.分析场景
两级触发器,第二级触发器采集第一级触发器输出的数据;
在这里插入图片描述
在这里插入图片描述
2.建立时间(Tsu)
触发器时钟触发沿到来之,信号需要稳定不变的最小时间;
3.保持时间(Th)
触发器时钟触发沿到来之,信号需要稳定不变的最小时间;
4.数据输出延迟(Tco)
时钟触发沿到来之,到触发器更新输出的时间;
5.数据传输延迟(Tdata)
数据在触发器之间的传输延时,由于数据传输线和组合逻辑引起的延时;
这部分通常包含两部分:传输线延时(Tline)和组合逻辑延时(Tlogic);
6.时钟传输延迟(Tclk)
时钟到达触发器的传输延迟;
7.时钟偏移(Tskew)
时钟到达不同触发器的传输延迟差;
两级触发器场景下的时钟偏移:Tskew = Tclk2-Tclk1;
8.发射沿(Launch Edge)
前一级触发器使用的时钟采样沿;
9.锁存沿(Latch Edge)
后一级(当前级)时钟触发器使用的时钟采样沿;

四. 时间余量

1.场景

场景仍然使用三中所述两级触发器,第一级触发器更新数据后,第二级触发器进行采集;

2.建立时间余量

(1)第二级触发器数据到达时间:
Data_arrived_time = Launch Edge +Tclk1+Tco+Tdata;
说明:
(i)前提是第一级触发器数据已经准备好了
(ii)第一级触发器采样时钟(Launch Edge)要经过时钟传输延迟(Tclk1)到达第一级触发器;
(iii)第一级触发器采样后要经过Tco更新输出数据;
(iv)第一级触发器输出要经过Tdata到达第二级触发器;
(2)要满足建立时间,第二级触发器数据要求到达时间
Data_required_time = LatchEdge+Tclk2-Tsu
说明:
(i)第二级触发器时钟采样沿是锁存沿(Latch Edge)
(ii)锁存沿要经过时钟传输延迟(Tclk2)达到第二级触发器;
(iii)要满足建立时间,第二级触发器的数据,应该提前于存沿(Latch Edge)建立时间(Tsu)时刻;
(3)建立时间余量
Setup slack = Data_required_time - Data_arrived_time
=(LatchEdge-Launch Edge)+(Tclk2-Tclk1)-Tsu-Tco-Tdata
= T + Tskew -Tsu-Tco-Tdata

说明:
建立时间余量:就是数据实际到达的时间,比为满足建立时间而要求的数据到达时间,提前的时间;
T:表示时钟周期,两级触发器,锁存沿(Latch Edge)比发射沿(Launch Edge)滞后一个时钟周期;
时钟传输延迟差(Tclk2-Tclk1)为时钟偏移(Tskew );
要求:
建立时间为正,满足时序要求;

如图:
在这里插入图片描述

3.保持时间余量

(1)第二级触发器输入数据改变时间:
Data_arrived_time = Latch Edge +Tclk1+Tco+Tdata;
说明:
(i)第一级触发器,在发射沿(Launch Edge)更新输出数据,会保持到锁存沿(Latch Edge)采样数据后发生改变;
(ii) 第一级触发器改变数据采样时钟(锁存沿,Latch Edge)要经过时钟传输延迟(Tclk1)到达第一级触发器;
(iii)第一级触发器采样后要经过Tco更新输出数据;
(iv)第一级触发器输出要经过Tdata到达第二级触发器;
(2)要满足保持时间,第二级触发器数据要求输入数据至少的保持时刻
Data_required_time = Latch Edge+Tclk2+Th;
说明:
(i)第二级触发器时钟采样沿是锁存沿(Latch Edge);
(ii)锁存沿要经过时钟传输延迟(Tclk2)达到第二级触发器;
(iii)要满足保持时间,第二级触发器的数据,应该滞后于锁存沿(Latch Edge)保持时间(Tsu)再发送改变;
(3)保持时间余量
Hold slack = Data_arrived_time - Data_required_time
=Tclk1+Tco+Tdata-(Tclk2+Th);
= Tco+Tdata-Th-Tskew

说明:
保持时间余量:就是第二级触发器输入数据实际发送改变的时间,比为满足保持时间而要求的数据改变时间,滞后的时间;
要求:
保持时间为正,满足时序要求;

如图:
在这里插入图片描述