STA(静态时序分析) 详解:如何计算最大时钟频率,以及判断电路是否出现时钟违例(timing violation)?-CSDN博客
DFF1:
到达时间:
Tclk1 = 1+1.1+1.1
Tdata1 = 1.5
Tco1 = 2
到达时间:3.2+1.5+2=6.7ns
需求时间:Tperiod + Tclk2-Tsu
1+1.1+1.1 = Tclk2
Tsu = 2.5
Tperiod + Tclk2-Tsu - 6.7 = 0
Tperiod = 6.7-3.2+2.5
= 6ns
1/6ns = Max
DFF2:
1+1.1+1.1 = Tclk1
2 = Tco1 + Tdata1
到达时间:3.2+2=5.2ns
1+1.2+1.2 + 1.4 = Tclk2 = 4.8
Tperiod + Tclk2-Tsu - 5.2 = 0
Tperiod = 5.2+2.5-4.8 = 2.9ns
如何判断电路是否出现时钟违例
判断电路是否出现时钟违例,就是检查每个DFF的hold time。
对于DFF1的hold time分析:
数据到达D端的时间:Tdata_arrive = 1 + 1.1 + 1.1 + 2 + 1.5 = 6.7ns
数据所需时间: Thold_time = 1 + 1.1 + 1.1 + Thold = 1 + 1.1 + 1.1 + 1 = 4.2ns
稳定时间裕量:Thold_slack = Tdata_arrive - Tdata_require = 2.5 ns > 0.
所以DFF1没有出现时钟违例。
对于DFF2的hold time分析:
数据到达D端的时间:Tdata_arrive = 1 + 1.1 + 1.1 + 2 = 5.2ns
数据所需时间: Thold_time = 1 + 1.2 + 1.2 + 1.4 + 1 = 5.8ns
稳定时间裕量:Thold_slack = Tdata_arrive - Tdata_require = -0.6ns < 0
所以DFF2存在时钟违例。修正方法为去除1.4ns延迟的buffer。
标签:Tperiod,1.1,Tdata,时序,习题,ns,Thold,时钟 From: https://www.cnblogs.com/VerweileDoch/p/18136515