时序分析习题练习(一):最大时钟频率

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。

posted @ 2024-04-15 17:15  NoNounknow  阅读(205)  评论(0)    收藏  举报