当前位置: 代码迷 >> 综合 >> 【数字芯片前端】STA时序分析的小练习1
  详细解决方案

【数字芯片前端】STA时序分析的小练习1

热度:62   发布时间:2024-03-10 00:56:12.0

前言

最近又从验证岗转回设计岗,对设计方向的东西关注又变多了。最近想把之前看过的一些小知识和电路归纳下,以备万一。

继续上次的这两个题来写一写,哈哈起始就是引个流。

setup time的一些思考点

hold time的一些思考点

这次的题目是偶然看到的,楞凭着小脑袋瓜记了住,分享一下。

题目

电路图如上所示,时钟周期为Tcyc,其他时序信息已在途中标注,已知两个寄存器是相同规格器件,那么求解寄存器的setup time和hold time要满足的条件。

分析

要确定满足的关系呢,我发现必须得定一个0时刻,这样后面分析起来都会顺很多,那么就定D1上升沿时刻为0时刻。

之后观察D2寄存器:

数据到达时刻为——T1+T2

时钟到达时刻为——Tcyc+T3

那么对于D2寄存器,可以得到两个需要满足的条件:

1.时钟到达时间 - 数据到达时间 > Tsetup

即Tcyc+T3-T1-T2 > Tsetup

2.时钟周期 - 数据setup > Thold

即Tcyc - (Tcyc+T3-T1-T2)> Thold

进一步求解为:

Tsetup < Tcyc + T3 - T1 - T2

Thold < T1 + T2 - T3

推进

上面这个式子的左侧是要求的setup/hold time,右侧是实际的setup/hold time,上学时候老师跟我们说过的:

时钟最早的到达时间 - 数据最晚要求的到达时间 = 实际的Tsetup

时钟周期 - (时钟最晚的到达时间 - 数据最早要求的到达时间)= 实际的Thold

当然了,左右一减,也就得到了另外一个公式:

Setup slack = 实际的Tsetup - 要求的Tsetup

Hold slack = 实际的Thold - 要求的Thold

 

  相关解决方案