STA,如何计算setup,hold slack以及如何计算电路的最高工作频率

转载:https://zhuanlan.zhihu.com/p/35189753

介绍STA中最基本的概念以及教你如何计算setup,hold slack以及如何计算电路的最高工作频率。

 

什么是STA(Staic Timing Analysis)?

 

  • 静态时序分析是用于验证数字设计时序的技术之一
  • STA是静态的,因为设计的分析是静态执行的,并且不依赖于在设计的输入所施加的数据值
  • STA是对设计的所有时序检查的完整和详尽的验证

 

为什么要做 STA ?

  • 时序分析方法只能验证由simulus执行的设计部分
  • 通过时序仿真进行验证只与使用的测试向量一样详尽。
  • 为了模拟和验证具有10-100万个门的设计的所有时序条件非常缓慢并且不能完全验证时序。

所以,STA提供了更快,更简单的方法来检查和分析设计中的所有时序路径,以防止任何时序违规。

 

Dynamic Timing Analysis (DTA) :

  • 动态时序分析需要全面的输入向量来检查设计中的时序路径
  • 它确定给定输入向量集合的电路的完整行为
  • 动态仿真可以验证设计的功能以及时序要求

 

动态时序分析和静态时序分析的区别如下图一所示。

STA,如何计算setup,hold slack以及如何计算电路的最高工作频率

 

图1 DTA和STA的对比

 

举个例子,如果我们有100个输入,那么我们需要2的100次方次才能遍历完成整个分析。与静态分析相比,分析量简直是天文数字。

 

STA,如何计算setup,hold slack以及如何计算电路的最高工作频率

 

图2 静态时序分析的输入和输出文件

 

静态时序分析中的一些专业术语:

  • Setup Time : 在时钟有效沿之前,输入数据必须保持稳定的最小时间,称之为建立时间。
  • Hold Time : 在时钟的有效沿之后,输入数据必须保持稳定的最小时间,称之为保持时间。

 

STA,如何计算setup,hold slack以及如何计算电路的最高工作频率

 

 

 

STA,如何计算setup,hold slack以及如何计算电路的最高工作频率

 

图3 setup time 和hold time

 

Launch 和Capture edge :

·

  • Launch edge是指时钟通过触发器来发射数据的沿edge
  • Capture edge是指时钟通过触发器捕获数据的沿edge

 

Setup timing checks:

setup检查确保数据在时钟的有效沿之前在触发器的输入端可用。

在时钟的有效边沿到达触发器之前,数据应该稳定一段时间,即触发器的建立时间,以便将数据可靠地捕获到触发器中。

setup检查可确保从前一时钟周期启动的数据,在一个周期后能够正确捕获。

 

 

STA,如何计算setup,hold slack以及如何计算电路的最高工作频率

 

图 4 setup检查波形图

 

Setup 万能套用公式:

 

[Tlaunch + Tck2q + Tdp] <= [Tcapture + TCLK – Tsetup]

 

Hold timing checks :

 

hold检查是确保时钟有效沿来临之后的一段时间内,数据仍然保持稳定,从而确保capture时不至于采集到不稳定或者错误的数据。

 

 

STA,如何计算setup,hold slack以及如何计算电路的最高工作频率

 

图 5 hold 检查波形图

 

Hold 万能套用公式:

 

[Tlaunch + Tck2q + Tdp] >= [Tcapture + Thold]

 

setup和hold的检查机制,也可以阅读之前推送的文章。

深入浅出讲透set_multicycle_path,从此彻底掌握它

 

Slack(裕量) :

Slack是指数据需要达到时间和实际达到时间之差。

Data Arrival Time : 数据在datapath上传输的时间

Data Required Time : 时钟在clock path上传输的时间

Setup Slack = Data Required Time – Data Arrival Time

Hold Slack = Data Arrival Time – Data Required Time

 

有了setup和hold概念和计算公式后,很容易就能知道如何去fix setup and hold violation。这个很简单,大家自己多多总结。之前推送的文章数字芯片设计实现中修复setup违例的方法汇总 系统全面介绍过修复setup violation的方法,各位可以前往复习下。

 

介绍这些基本概念后,我们来个实战。下面这道题是某公司应届生校园招聘的笔试题目,大家做做看。计算电路最高工作频率的面试题数不胜数,几乎一大半的公司都会考这种题。目的是考察应聘者是否熟悉setup,hold检查的方式,是否具备基本的时序分析能力。这道题如果你还不会做或者会做错,请给自己敲个警钟。其实这道题还算简单的,如果存在多条路径到FF2的情况,你是否也能正确算出电路的最高工作频率呢?反正原理是一样的。

 

 

STA,如何计算setup,hold slack以及如何计算电路的最高工作频率

 

图6 电路最高工作频率思考题

上一篇:Largest Rectangle in a Histogram 题解(最大子矩阵模板)


下一篇:君君算法课堂-动态规划优化方法类型选讲